; assembly | /* r2dec pseudo code output */ | /* bslstl_map_test3.t/none @ 0x57a270 */ | #include | ; (fcn) sym._anonymous_namespace_::IntToPairConverter_unsigned_long__unsigned_long__bsl::allocator_bsl::pair_unsigned_long_const__unsigned_long_____::createInplace_bsl::pair_unsigned_long__unsigned_long___int__bsl::allocator_bsl::pair_unsigned_long_const__unsigned_long____ () | uint64_t anonymous_namespace_::IntToPairConverter_unsigned_long_unsigned_long_bsl::allocator_bsl::pair_unsigned_long_const_unsigned_long_::createInplace_bsl::pair_unsigned_long_unsigned_long_int_bsl::allocator_bsl::pair_unsigned_long_const_unsigned_long_ (char * arg2, int64_t arg1) { | rsi = arg2; | rdi = arg1; | /* (anonymous namespace)::IntToPairConverter > >::createInplace(bsl::pair*, int, bsl::allocator >) */ 0x0057a270 push rbp | 0x0057a271 push r14 | 0x0057a273 push rbx | 0x0057a274 mov ebx, esi | ebx = esi; 0x0057a276 mov r14, rdi | r14 = rdi; 0x0057a279 call 0x402b40 | rax = ctype_b_loc (); 0x0057a27e mov rax, qword [rax] | rax = *(rax); 0x0057a281 movsxd rbp, ebx | rbp = (int64_t) ebx; 0x0057a284 test byte [rax + rbp*2 + 1], 2 | | if ((*((rax + rbp*2 + 1)) & 2) == 0) { 0x0057a289 jne 0x57a290 | 0x0057a28b lea ebp, [rbx - 0x11] | ebp = rbx - 0x11; 0x0057a28e jmp 0x57a2ab | | } else { 0x0057a290 lea eax, [rbx + 0x80] | eax = rbx + 0x80; 0x0057a296 cmp eax, 0x17f | | if (eax <= 0x17f) { 0x0057a29b ja 0x57a2a8 | 0x0057a29d call 0x402ad0 | rax = ctype_toupper_loc (); 0x0057a2a2 mov rax, qword [rax] | rax = *(rax); 0x0057a2a5 mov ebx, dword [rax + rbp*4] | ebx = *((rax + rbp*4)); | } 0x0057a2a8 lea ebp, [rbx + 1] | ebp = rbx + 1; | } 0x0057a2ab mov al, byte [rip + 0x2b476f] | al = guard variable for (anonymous namespace)::scratchSingleton()::scratch; 0x0057a2b1 test al, al | 0x0057a2b3 je 0x57a2c7 | | while (eax == 0) { | label_0: 0x0057a2b5 movsxd rax, ebx | rax = (int64_t) ebx; 0x0057a2b8 movsxd rcx, ebp | rcx = (int64_t) ebp; 0x0057a2bb mov qword [r14], rax | *(r14) = rax; 0x0057a2be mov qword [r14 + 8], rcx | *((r14 + 8)) = rcx; 0x0057a2c2 pop rbx | 0x0057a2c3 pop r14 | 0x0057a2c5 pop rbp | 0x0057a2c6 ret | return rax; 0x0057a2c7 mov edi, 0x82ea20 | edi = guard variable for (anonymous namespace)::scratchSingleton()::scratch; 0x0057a2cc call 0x402c90 | eax = cxa_guard_acquire (); 0x0057a2d1 test eax, eax | 0x0057a2d3 je 0x57a2b5 | | } 0x0057a2d5 movzx edx, byte [rip + 0x2b4547] | edx = *(obj.veryVeryVeryVerbose); 0x0057a2dc mov edi, 0x82e950 | 0x0057a2e1 mov esi, 0x5f72a5 | 0x0057a2e6 xor ecx, ecx | 0x0057a2e8 call 0x5ef430 | BloombergLP::bslma::TestAllocator::TestAllocator(char const*,bool,BloombergLP::bslma::Allocator*) (obj._anonymous_namespace_::scratchSingleton__::scratch, "scratch singleton", rdx, 0); 0x0057a2ed mov edi, 0x5ef500 | edi = BloombergLP::bslma::TestAllocator::~TestAllocator(); 0x0057a2f2 mov esi, 0x82e950 | esi = (anonymous namespace)::scratchSingleton()::scratch; 0x0057a2f7 mov edx, 0x5f1dc8 | edx = obj.__dso_handle; 0x0057a2fc call 0x402aa0 | cxa_atexit (); 0x0057a301 mov edi, 0x82ea20 | edi = guard variable for (anonymous namespace)::scratchSingleton()::scratch; 0x0057a306 call 0x402a70 | cxa_guard_release (); 0x0057a30b jmp 0x57a2b5 | goto label_0; | }