; assembly | /* r2dec pseudo code output */ | /* ball_administration.t/assume @ 0x40bea0 */ | #include | ; (fcn) method.BloombergLP::ball._anonymous_namespace_::bslsLogMessage_BloombergLP::bsls::LogSeverity::Enum__char_const__int__char_const_ () | uint64_t method_BloombergLP::ball_anonymous_namespace_::bslsLogMessage_BloombergLP::bsls::LogSeverity::Enum_char_const_int_char_const_ (int64_t arg4, int64_t arg3, int64_t arg2, int64_t arg1) { | int64_t var_8h; | int64_t var_10h; | int64_t var_18h; | int64_t var_20h; | int64_t var_28h; | uint32_t var_30h; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::ball::(anonymous namespace)::bslsLogMessage(BloombergLP::bsls::LogSeverity::Enum, char const*, int, char const*) */ 0x0040bea0 push rbp | 0x0040bea1 push r15 | 0x0040bea3 push r14 | 0x0040bea5 push r13 | 0x0040bea7 push r12 | 0x0040bea9 push rbx | 0x0040beaa sub rsp, 0x38 | 0x0040beae mov r14, rcx | r14 = rcx; 0x0040beb1 mov r15d, edx | r15d = edx; 0x0040beb4 mov r12, rsi | r12 = rsi; 0x0040beb7 mov ebx, edi | ebx = edi; 0x0040beb9 mov qword [rsp + 0x10], 0x695888 | *((rsp + 0x10)) = method.BloombergLP::ball._anonymous_namespace_::bslsLogQLock; 0x0040bec2 mov qword [rsp + 0x18], 0 | *((rsp + 0x18)) = 0; 0x0040becb xor eax, eax | eax = 0; 0x0040becd xor ecx, ecx | ecx = 0; 0x0040becf xchg qword [rsp + 0x20], rcx | tmp_0 = rsp + 0x20; | rsp + 0x20 = rcx; | rcx = tmp_0; 0x0040bed4 xchg qword [rsp + 0x28], rax | tmp_1 = rsp + 0x28; | rsp + 0x28 = rax; | rax = tmp_1; 0x0040bed9 mov byte [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x0040bede lea rdi, [rsp + 0x10] | 0x0040bee3 call 0x431900 | BloombergLP::bslmt::QLockGuard::lock() (rsp + 0x10); 0x0040bee8 mov rbp, qword [rip + 0x289991] | rbp = BloombergLP::ball::LoggerManager::s_singleton_p; 0x0040beef test rbp, rbp | | if (rbp != 0) { 0x0040bef2 je 0x40bfbc | 0x0040bef8 cmp qword [rip + 0x28ba58], 0 | | if (*(method.BloombergLP::ball._anonymous_namespace_::bslsLogCategoryPtr) == 0) { 0x0040bf00 jne 0x40bf41 | 0x0040bf02 movzx edx, byte [rbp + 0x100] | edx = *((rbp + 0x100)); 0x0040bf09 movzx ecx, byte [rbp + 0x101] | ecx = *((rbp + 0x101)); 0x0040bf10 movzx r8d, byte [rbp + 0x102] | r8d = *((rbp + 0x102)); 0x0040bf18 movzx r9d, byte [rbp + 0x103] | r9d = *((rbp + 0x103)); 0x0040bf20 mov esi, 0x459511 | 0x0040bf25 mov rdi, rbp | 0x0040bf28 call 0x4103f0 | BloombergLP::ball::LoggerManager::addCategory(char const*,int,int,int,int) (rbp, "BSLS.LOG", rdx, rcx, r8, r9); 0x0040bf2d mov esi, 0x459511 | 0x0040bf32 mov rdi, rbp | 0x0040bf35 call 0x4105f0 | rax = BloombergLP::ball::LoggerManager::lookupCategory(char const*) (rbp, "BSLS.LOG"); 0x0040bf3a mov qword [rip + 0x28ba17], rax | *(method.BloombergLP::ball._anonymous_namespace_::bslsLogCategoryPtr) = rax; | } 0x0040bf41 mov qword [rsp + 8], r14 | *((rsp + 8)) = r14; 0x0040bf46 mov rdi, rbp | 0x0040bf49 call 0x40c030 | rax = BloombergLP::ball::LoggerManager::getLogger() (rbp); 0x0040bf4e mov r13, rax | r13 = rax; 0x0040bf51 mov rdi, rax | 0x0040bf54 call 0x411840 | rax = BloombergLP::bdlcc::ObjectPool,BloombergLP::bdlcc::ObjectPoolFunctors::Clear>::getObject() (rax); 0x0040bf59 mov rbp, rax | 0x0040bf5c lea r14, [rax + 0x30] | r14 = rax + 0x30; 0x0040bf60 mov rdi, r12 | 0x0040bf63 call 0x405030 | rax = strlen (r12); 0x0040bf68 mov rcx, qword [rbp + 0x48] | rcx = *((rbp + 0x48)); 0x0040bf6c mov qword [rsp], rcx | *(rsp) = rcx; 0x0040bf70 mov qword [rbp + 0x48], 0 | *((rbp + 0x48)) = 0; 0x0040bf78 mov ecx, 0x4594e2 | 0x0040bf7d mov rdi, r14 | 0x0040bf80 mov rsi, r12 | 0x0040bf83 mov rdx, rax | 0x0040bf86 call 0x435a80 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (r14, r12, rax, "string<...>::assign(char*...): string too long"); 0x0040bf8b mov rdi, rbp | 0x0040bf8e add rdi, 0x18 | rdi += 0x18; 0x0040bf92 mov dword [rbp + 0x60], r15d | *((rbp + 0x60)) = r15d; 0x0040bf96 mov rsi, qword [rsp + 8] | 0x0040bf9b call 0x414c90 | BloombergLP::ball::RecordAttributes::setMessage(char const*) (rbp, *((rsp + 8))); 0x0040bfa0 mov rsi, qword [rip + 0x28b9b1] | 0x0040bfa7 shl ebx, 5 | ebx <<= 5; 0x0040bfaa add ebx, 0x20 | ebx += 0x20; 0x0040bfad mov rdi, r13 | 0x0040bfb0 mov edx, ebx | 0x0040bfb2 mov rcx, rbp | 0x0040bfb5 call 0x40bb50 | BloombergLP::ball::Logger::logMessage(BloombergLP::ball::Categoryconst&,int,BloombergLP::ball::Record*) (r13, *(method.BloombergLP::ball._anonymous_namespace_::bslsLogCategoryPtr), ebx, rbp); 0x0040bfba jmp 0x40bfcc | | } else { 0x0040bfbc mov edi, ebx | 0x0040bfbe mov rsi, r12 | 0x0040bfc1 mov edx, r15d | 0x0040bfc4 mov rcx, r14 | 0x0040bfc7 call 0x432c70 | BloombergLP::bsls::Log::platformDefaultMessageHandler(BloombergLP::bsls::LogSeverity::Enum,char const*,int,char const*) (ebx, r12, r15d, r14); | } 0x0040bfcc cmp byte [rsp + 0x30], 0 | | if (*((rsp + 0x30)) != 0) { 0x0040bfd1 je 0x40bfdd | 0x0040bfd3 lea rdi, [rsp + 0x10] | 0x0040bfd8 call 0x4318b0 | BloombergLP::bslmt::QLockGuard::unlockRaw() (rsp + 0x10); | } 0x0040bfdd add rsp, 0x38 | 0x0040bfe1 pop rbx | 0x0040bfe2 pop r12 | 0x0040bfe4 pop r13 | 0x0040bfe6 pop r14 | 0x0040bfe8 pop r15 | 0x0040bfea pop rbp | 0x0040bfeb ret | return rax; | }