; assembly | /* r2dec pseudo code output */ | /* ball_administration.t/none @ 0x40bf00 */ | #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_4h; | 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*) */ 0x0040bf00 push rbp | 0x0040bf01 push r15 | 0x0040bf03 push r14 | 0x0040bf05 push r13 | 0x0040bf07 push r12 | 0x0040bf09 push rbx | 0x0040bf0a sub rsp, 0x38 | 0x0040bf0e mov r15, rcx | r15 = rcx; 0x0040bf11 mov r12d, edx | r12d = edx; 0x0040bf14 mov r13, rsi | r13 = rsi; 0x0040bf17 mov ebp, edi | 0x0040bf19 mov qword [rsp + 0x10], 0x6968a8 | *((rsp + 0x10)) = method.BloombergLP::ball._anonymous_namespace_::bslsLogQLock; 0x0040bf22 mov qword [rsp + 0x18], 0 | *((rsp + 0x18)) = 0; 0x0040bf2b xor eax, eax | eax = 0; 0x0040bf2d xor ecx, ecx | ecx = 0; 0x0040bf2f xchg qword [rsp + 0x20], rcx | tmp_0 = rsp + 0x20; | rsp + 0x20 = rcx; | rcx = tmp_0; 0x0040bf34 xchg qword [rsp + 0x28], rax | tmp_1 = rsp + 0x28; | rsp + 0x28 = rax; | rax = tmp_1; 0x0040bf39 mov byte [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x0040bf3e lea rdi, [rsp + 0x10] | 0x0040bf43 call 0x432040 | BloombergLP::bslmt::QLockGuard::lock() (rsp + 0x10); 0x0040bf48 mov rbx, qword [rip + 0x28a951] | rbx = BloombergLP::ball::LoggerManager::s_singleton_p; 0x0040bf4f test rbx, rbx | | if (rbx != 0) { 0x0040bf52 je 0x40c029 | 0x0040bf58 cmp qword [rip + 0x28ca18], 0 | | if (*(method.BloombergLP::ball._anonymous_namespace_::bslsLogCategoryPtr) == 0) { 0x0040bf60 jne 0x40bfa1 | 0x0040bf62 movzx edx, byte [rbx + 0x100] | edx = *((rbx + 0x100)); 0x0040bf69 movzx ecx, byte [rbx + 0x101] | ecx = *((rbx + 0x101)); 0x0040bf70 movzx r8d, byte [rbx + 0x102] | r8d = *((rbx + 0x102)); 0x0040bf78 movzx r9d, byte [rbx + 0x103] | r9d = *((rbx + 0x103)); 0x0040bf80 mov esi, 0x459c4d | 0x0040bf85 mov rdi, rbx | 0x0040bf88 call 0x410460 | BloombergLP::ball::LoggerManager::addCategory(char const*,int,int,int,int) (rbx, "BSLS.LOG", rdx, rcx, r8, r9); 0x0040bf8d mov esi, 0x459c4d | 0x0040bf92 mov rdi, rbx | 0x0040bf95 call 0x410660 | rax = BloombergLP::ball::LoggerManager::lookupCategory(char const*) (rbx, "BSLS.LOG"); 0x0040bf9a mov qword [rip + 0x28c9d7], rax | *(method.BloombergLP::ball._anonymous_namespace_::bslsLogCategoryPtr) = rax; | } 0x0040bfa1 mov dword [rsp + 4], ebp | *((rsp + 4)) = ebp; 0x0040bfa5 mov rdi, rbx | 0x0040bfa8 call 0x40c0a0 | rax = BloombergLP::ball::LoggerManager::getLogger() (rbx); 0x0040bfad mov rbp, rax | 0x0040bfb0 mov rdi, rax | 0x0040bfb3 call 0x411930 | rax = BloombergLP::bdlcc::ObjectPool,BloombergLP::bdlcc::ObjectPoolFunctors::Clear>::getObject() (rax); 0x0040bfb8 mov rbx, rax | rbx = rax; 0x0040bfbb lea r14, [rax + 0x30] | r14 = rax + 0x30; 0x0040bfbf mov rdi, r13 | 0x0040bfc2 call 0x405080 | rax = strlen (r13); 0x0040bfc7 mov rcx, qword [rbx + 0x48] | rcx = *((rbx + 0x48)); 0x0040bfcb mov qword [rsp + 8], rcx | *((rsp + 8)) = rcx; 0x0040bfd0 mov qword [rbx + 0x48], 0 | *((rbx + 0x48)) = 0; 0x0040bfd8 mov ecx, 0x459c1e | 0x0040bfdd mov rdi, r14 | 0x0040bfe0 mov rsi, r13 | 0x0040bfe3 mov rdx, rax | 0x0040bfe6 call 0x4361d0 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (r14, r13, rax, "string<...>::assign(char*...): string too long"); 0x0040bfeb mov rdi, rbx | 0x0040bfee add rdi, 0x18 | rdi += 0x18; 0x0040bff2 mov dword [rbx + 0x60], r12d | *((rbx + 0x60)) = r12d; 0x0040bff6 mov rsi, r15 | 0x0040bff9 call 0x414dd0 | BloombergLP::ball::RecordAttributes::setMessage(char const*) (rbx, r15); 0x0040bffe mov rsi, qword [rip + 0x28c973] | rsi = BloombergLP::ball::(anonymous namespace)::bslsLogCategoryPtr; 0x0040c005 mov ecx, dword [rsp + 4] | ecx = *((rsp + 4)); 0x0040c009 mov eax, ecx | eax = *((rsp + 4)); 0x0040c00b shl eax, 5 | eax <<= 5; 0x0040c00e add eax, 0x20 | eax += 0x20; 0x0040c011 cmp ecx, 6 | 0x0040c014 mov edx, 0x40 | edx = 0x40; | if (ecx < 6) { 0x0040c019 cmovb edx, eax | edx = eax; | } 0x0040c01c mov rdi, rbp | 0x0040c01f mov rcx, rbx | 0x0040c022 call 0x40bbb0 | BloombergLP::ball::Logger::logMessage(BloombergLP::ball::Categoryconst&,int,BloombergLP::ball::Record*) (rbp, rsi, rdx, rbx); 0x0040c027 jmp 0x40c039 | | } else { 0x0040c029 mov edi, ebp | edi = ebp; 0x0040c02b mov rsi, r13 | rsi = r13; 0x0040c02e mov edx, r12d | edx = r12d; 0x0040c031 mov rcx, r15 | rcx = r15; 0x0040c034 call 0x4333c0 | BloombergLP::bsls::Log::platformDefaultMessageHandler(BloombergLP::bsls::LogSeverity::Enum,char const*,int,char const*) (rdi, rsi, rdx, rcx, r8, r9); | } 0x0040c039 cmp byte [rsp + 0x30], 0 | | if (*((rsp + 0x30)) != 0) { 0x0040c03e je 0x40c04a | 0x0040c040 lea rdi, [rsp + 0x10] | 0x0040c045 call 0x431ff0 | BloombergLP::bslmt::QLockGuard::unlockRaw() (rsp + 0x10); | } 0x0040c04a add rsp, 0x38 | 0x0040c04e pop rbx | 0x0040c04f pop r12 | 0x0040c051 pop r13 | 0x0040c053 pop r14 | 0x0040c055 pop r15 | 0x0040c057 pop rbp | 0x0040c058 ret | return rax; | }