; assembly | /* r2dec pseudo code output */ | /* balb_testmessages.t/assume @ 0x40f280 */ | #include | ; (fcn) method.BloombergLP::balb::Sequence1.Sequence1_BloombergLP::bslma::Allocator_ () | uint64_t method_BloombergLP::balb::Sequence1_Sequence1_BloombergLP::bslma::Allocator_ (int64_t arg2, int64_t arg1) { | int64_t var_10h; | int64_t var_18h; | int64_t var_20h; | int64_t var_28h; | rsi = arg2; | rdi = arg1; | /* BloombergLP::balb::Sequence1::Sequence1(BloombergLP::bslma::Allocator*) */ 0x0040f280 push rbp | 0x0040f281 push r15 | 0x0040f283 push r14 | 0x0040f285 push r13 | 0x0040f287 push r12 | 0x0040f289 push rbx | 0x0040f28a sub rsp, 0x38 | 0x0040f28e mov rbx, rdi | rbx = rdi; 0x0040f291 test rsi, rsi | | if (rsi != 0) { 0x0040f294 je 0x40f2f8 | 0x0040f296 mov qword [rbx], rsi | *(rbx) = rsi; 0x0040f299 lea rax, [rbx + 8] | rax = rbx + 8; 0x0040f29d mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x0040f2a2 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040f2a5 movups xmmword [rbx + 8], xmm0 | __asm ("movups xmmword [rbx + 8], xmm0"); 0x0040f2a9 mov qword [rbx + 0x18], 0 | *((rbx + 0x18)) = 0; 0x0040f2b1 lea rbp, [rbx + 0x20] | rbp = rbx + 0x20; 0x0040f2b5 mov qword [rbx + 0x20], rsi | *((rbx + 0x20)) = rsi; 0x0040f2b9 lea r14, [rbx + 0x28] | r14 = rbx + 0x28; 0x0040f2bd movups xmmword [rbx + 0x28], xmm0 | __asm ("movups xmmword [rbx + 0x28], xmm0"); 0x0040f2c1 mov qword [rbx + 0x38], 0 | *((rbx + 0x38)) = 0; 0x0040f2c9 lea rax, [rbx + 0x40] | rax = rbx + 0x40; 0x0040f2cd mov qword [rsp + 0x28], rax | *((rsp + 0x28)) = rax; 0x0040f2d2 mov qword [rbx + 0x40], rsi | *((rbx + 0x40)) = rsi; 0x0040f2d6 lea r13, [rbx + 0x48] | r13 = rbx + 0x48; 0x0040f2da movups xmmword [rbx + 0x48], xmm0 | __asm ("movups xmmword [rbx + 0x48], xmm0"); 0x0040f2de mov qword [rbx + 0x58], 0 | *((rbx + 0x58)) = 0; 0x0040f2e6 lea rax, [rbx + 0x60] | rax = rbx + 0x60; 0x0040f2ea mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0040f2ef mov qword [rbx + 0x60], rsi | *((rbx + 0x60)) = rsi; 0x0040f2f3 jmp 0x40f3be | | } else { 0x0040f2f8 mov rax, qword [rip + 0x270851] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040f2ff test rax, rax | | if (rax == 0) { 0x0040f302 jne 0x40f309 | 0x0040f304 call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040f309 mov qword [rbx], rax | *(rbx) = rax; 0x0040f30c lea rbp, [rbx + 8] | rbp = rbx + 8; 0x0040f310 mov rax, qword [rip + 0x270839] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040f317 test rax, rax | | if (rax == 0) { 0x0040f31a jne 0x40f321 | 0x0040f31c call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040f321 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040f324 movups xmmword [rbp], xmm0 | __asm ("movups xmmword [rbp], xmm0"); 0x0040f328 mov qword [rbp + 0x10], 0 | *((rbp + 0x10)) = 0; 0x0040f330 lea rcx, [rbx + 0x20] | rcx = rbx + 0x20; 0x0040f334 mov qword [rsp + 0x10], rcx | *((rsp + 0x10)) = rcx; 0x0040f339 mov qword [rbx + 0x20], rax | *((rbx + 0x20)) = rax; 0x0040f33d mov rax, qword [rip + 0x27080c] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040f344 test rax, rax | 0x0040f347 mov qword [rsp + 0x18], rbp | *((rsp + 0x18)) = rbp; | if (rax == 0) { 0x0040f34c jne 0x40f353 | 0x0040f34e call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040f353 lea r14, [rbx + 0x28] | r14 = rbx + 0x28; 0x0040f357 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040f35a movups xmmword [r14], xmm0 | __asm ("movups xmmword [r14], xmm0"); 0x0040f35e mov qword [r14 + 0x10], 0 | *((r14 + 0x10)) = 0; 0x0040f366 lea r15, [rbx + 0x40] | r15 = rbx + 0x40; 0x0040f36a mov qword [rbx + 0x40], rax | *((rbx + 0x40)) = rax; 0x0040f36e mov rax, qword [rip + 0x2707db] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040f375 test rax, rax | 0x0040f378 mov qword [rsp + 0x28], r15 | *((rsp + 0x28)) = r15; | if (rax == 0) { 0x0040f37d jne 0x40f384 | 0x0040f37f call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0040f384 lea r13, [rbx + 0x48] | r13 = rbx + 0x48; 0x0040f388 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0040f38b movups xmmword [r13], xmm0 | __asm ("movups xmmword [r13], xmm0"); 0x0040f390 mov qword [r13 + 0x10], 0 | *((r13 + 0x10)) = 0; 0x0040f398 lea rcx, [rbx + 0x60] | rcx = rbx + 0x60; 0x0040f39c mov qword [rsp + 0x20], rcx | *((rsp + 0x20)) = rcx; 0x0040f3a1 mov qword [rbx + 0x60], rax | *((rbx + 0x60)) = rax; 0x0040f3a5 mov rsi, qword [rip + 0x2707a4] | rsi = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040f3ac test rsi, rsi | | if (rsi == 0) { 0x0040f3af jne 0x40f3b9 | 0x0040f3b1 call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0040f3b6 mov rsi, rax | rsi = rax; | } 0x0040f3b9 mov rbp, qword [rsp + 0x10] | rbp = *((rsp + 0x10)); | } 0x0040f3be mov byte [rbx + 0x1e8], 0 | *((rbx + 0x1e8)) = 0; 0x0040f3c5 mov qword [rbx + 0x1f0], rsi | *((rbx + 0x1f0)) = rsi; 0x0040f3cc mov r12, qword [rbx] | r12 = *(rbx); 0x0040f3cf mov rax, qword [r12] | rax = *(r12); 0x0040f3d3 mov esi, 0x40 | esi = 0x40; 0x0040f3d8 mov rdi, r12 | rdi = r12; 0x0040f3db call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x0040f3de mov r15, rax | r15 = rax; 0x0040f3e1 mov rax, qword [rbx] | rax = *(rbx); 0x0040f3e4 mov dword [r15 + 0x30], 0xffffffff | *((r15 + 0x30)) = 0xffffffff; 0x0040f3ec test rax, rax | | if (rax == 0) { 0x0040f3ef jne 0x40f402 | 0x0040f3f1 mov rax, qword [rip + 0x270758] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040f3f8 test rax, rax | | if (rax != 0) { 0x0040f3fb jne 0x40f402 | goto label_0; | } 0x0040f3fd call 0x4206c0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_0: 0x0040f402 mov qword [r15 + 0x38], rax | *((r15 + 0x38)) = rax; 0x0040f406 mov qword [rbx + 0x1f8], r15 | *((rbx + 0x1f8)) = r15; 0x0040f40d add rsp, 0x38 | 0x0040f411 pop rbx | 0x0040f412 pop r12 | 0x0040f414 pop r13 | 0x0040f416 pop r14 | 0x0040f418 pop r15 | 0x0040f41a pop rbp | 0x0040f41b ret | return rax; | }