; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/assume @ 0x4bfc30 */ | #include | ; (fcn) method.BloombergLP::s_baltst::Sequence4.Sequence4_BloombergLP::s_baltst::Sequence4__BloombergLP::bslma::Allocator_ () | int64_t method_BloombergLP::s_baltst::Sequence4_Sequence4_BloombergLP::s_baltst::Sequence4_BloombergLP::bslma::Allocator_ (int64_t arg3, int64_t arg2, int64_t arg1) { | int64_t var_8h; | char * var_10h; | char * var_18h; | int64_t var_20h; | char * var_28h; | int64_t var_30h; | int64_t var_38h; | int64_t var_40h; | int64_t var_48h; | int64_t var_50h; | int64_t var_58h; | int64_t var_60h; | int64_t var_68h; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::s_baltst::Sequence4::Sequence4(BloombergLP::s_baltst::Sequence4&&, BloombergLP::bslma::Allocator*) */ 0x004bfc30 push rbp | 0x004bfc31 push r15 | 0x004bfc33 push r14 | 0x004bfc35 push r13 | 0x004bfc37 push r12 | 0x004bfc39 push rbx | 0x004bfc3a sub rsp, 0x78 | 0x004bfc3e mov r15, rdx | r15 = rdx; 0x004bfc41 mov r14, rsi | r14 = rsi; 0x004bfc44 mov r12, rdi | r12 = rdi; 0x004bfc47 movsd xmm0, qword [rsi] | xmm0 = *(rsi); 0x004bfc4b movsd qword [rdi], xmm0 | *(rdi) = xmm0; 0x004bfc4f lea rbx, [rdi + 8] | rbx = rdi + 8; 0x004bfc53 lea rbp, [rsi + 8] | rbp = rsi + 8; 0x004bfc57 mov rax, rdx | rax = rdx; 0x004bfc5a test rdx, rdx | | if (rdx == 0) { 0x004bfc5d jne 0x4bfc70 | 0x004bfc5f mov rax, qword [rip + 0x40d442] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bfc66 test rax, rax | | if (rax != 0) { 0x004bfc69 jne 0x4bfc70 | goto label_2; | } 0x004bfc6b call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_2: 0x004bfc70 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x004bfc75 lea rdx, [rsp + 0x10] | 0x004bfc7a mov rdi, rbx | 0x004bfc7d mov rsi, rbp | 0x004bfc80 call 0x52be50 | bsl::vector>::vector(bsl::vector>&&,bsl::allocatorconst&) (rbx, rbp, rsp + 0x10); 0x004bfc85 mov rax, r15 | rax = r15; 0x004bfc88 test r15, r15 | 0x004bfc8b mov qword [rsp + 0x68], rbx | *((rsp + 0x68)) = rbx; 0x004bfc90 mov qword [rsp + 8], r12 | *((rsp + 8)) = r12; | if (r15 == 0) { 0x004bfc95 jne 0x4bfca8 | 0x004bfc97 mov rax, qword [rip + 0x40d40a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bfc9e test rax, rax | | if (rax != 0) { 0x004bfca1 jne 0x4bfca8 | goto label_3; | } 0x004bfca3 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_3: 0x004bfca8 lea rbx, [r12 + 0x28] | rbx = r12 + 0x28; 0x004bfcad lea rsi, [r14 + 0x28] | 0x004bfcb1 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x004bfcb6 lea rdx, [rsp + 0x10] | 0x004bfcbb mov rdi, rbx | 0x004bfcbe call 0x534870 | bsl::vector>::vector(bsl::vector>&&,bsl::allocatorconst&) (rbx, r14 + 0x28, rsp + 0x10); 0x004bfcc3 mov rax, r15 | rax = r15; 0x004bfcc6 test r15, r15 | | if (r15 == 0) { 0x004bfcc9 jne 0x4bfcdc | 0x004bfccb mov rax, qword [rip + 0x40d3d6] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bfcd2 test rax, rax | | if (rax != 0) { 0x004bfcd5 jne 0x4bfcdc | goto label_4; | } 0x004bfcd7 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_4: 0x004bfcdc lea rdi, [r12 + 0x48] | 0x004bfce1 lea rsi, [r14 + 0x48] | 0x004bfce5 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x004bfcea lea rdx, [rsp + 0x10] | 0x004bfcef mov qword [rsp + 0x60], rdi | *((rsp + 0x60)) = rdi; 0x004bfcf4 call 0x526110 | bsl::vector>::vector(bsl::vector>&&,bsl::allocatorconst&) (r12 + 0x48, r14 + 0x48, rsp + 0x10); 0x004bfcf9 mov rax, r15 | rax = r15; 0x004bfcfc test r15, r15 | | if (r15 == 0) { 0x004bfcff jne 0x4bfd12 | 0x004bfd01 mov rax, qword [rip + 0x40d3a0] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bfd08 test rax, rax | | if (rax != 0) { 0x004bfd0b jne 0x4bfd12 | goto label_5; | } 0x004bfd0d call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_5: 0x004bfd12 lea rdi, [r12 + 0x68] | 0x004bfd17 lea rsi, [r14 + 0x68] | 0x004bfd1b mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x004bfd20 lea rdx, [rsp + 0x10] | 0x004bfd25 mov qword [rsp + 0x48], rdi | *((rsp + 0x48)) = rdi; 0x004bfd2a call 0x4c7620 | bsl::vector>,bsl::allocator>>>::vector(bsl::vector>,bsl::allocator>>>&&,bsl::allocator>>const&) (r12 + 0x68, r14 + 0x68, rsp + 0x10); 0x004bfd2f mov rax, r15 | rax = r15; 0x004bfd32 test r15, r15 | | if (r15 == 0) { 0x004bfd35 jne 0x4bfd48 | 0x004bfd37 mov rax, qword [rip + 0x40d36a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bfd3e test rax, rax | | if (rax != 0) { 0x004bfd41 jne 0x4bfd48 | goto label_6; | } 0x004bfd43 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_6: 0x004bfd48 lea rdi, [r12 + 0x88] | 0x004bfd50 lea rsi, [r14 + 0x88] | 0x004bfd57 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x004bfd5c lea rdx, [rsp + 0x10] | 0x004bfd61 mov qword [rsp + 0x58], rdi | *((rsp + 0x58)) = rdi; 0x004bfd66 call 0x524f20 | bsl::vector>::vector(bsl::vector>&&,bsl::allocatorconst&) (r12 + 0x88, r14 + 0x88, rsp + 0x10); 0x004bfd6b mov rax, r15 | rax = r15; 0x004bfd6e test r15, r15 | | if (r15 == 0) { 0x004bfd71 jne 0x4bfd84 | 0x004bfd73 mov rax, qword [rip + 0x40d32e] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bfd7a test rax, rax | | if (rax != 0) { 0x004bfd7d jne 0x4bfd84 | goto label_7; | } 0x004bfd7f call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_7: 0x004bfd84 lea rcx, [r12 + 0xa8] | rcx = r12 + 0xa8; 0x004bfd8c xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004bfd8f movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x004bfd92 mov qword [rsp + 0x50], rcx | *((rsp + 0x50)) = rcx; 0x004bfd97 mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x004bfd9f mov qword [r12 + 0xc0], rax | *((r12 + 0xc0)) = rax; 0x004bfda7 cmp rax, qword [r14 + 0xc0] | | if (rax != *((r14 + 0xc0))) { 0x004bfdae jne 0x4c0129 | goto label_8; | } 0x004bfdb4 lea rax, [r14 + 0xa8] | rax = r14 + 0xa8; 0x004bfdbb mov rcx, qword [r14 + 0xa8] | rcx = *((r14 + 0xa8)); 0x004bfdc2 mov qword [r12 + 0xa8], rcx | *((r12 + 0xa8)) = rcx; 0x004bfdca mov rcx, qword [r14 + 0xb0] | rcx = *((r14 + 0xb0)); 0x004bfdd1 mov qword [r12 + 0xb0], rcx | *((r12 + 0xb0)) = rcx; 0x004bfdd9 mov rcx, qword [r14 + 0xb8] | rcx = *((r14 + 0xb8)); 0x004bfde0 mov qword [r12 + 0xb8], rcx | *((r12 + 0xb8)) = rcx; 0x004bfde8 movups xmmword [rax], xmm0 | __asm ("movups xmmword [rax], xmm0"); 0x004bfdeb mov qword [rax + 0x10], 0 | *((rax + 0x10)) = 0; | do { | label_0: 0x004bfdf3 mov rax, r15 | rax = r15; 0x004bfdf6 test r15, r15 | | if (r15 == 0) { 0x004bfdf9 jne 0x4bfe0c | 0x004bfdfb mov rax, qword [rip + 0x40d2a6] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bfe02 test rax, rax | | if (rax != 0) { 0x004bfe05 jne 0x4bfe0c | goto label_9; | } 0x004bfe07 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_9: 0x004bfe0c lea rdi, [r12 + 0xc8] | 0x004bfe14 lea rsi, [r14 + 0xc8] | 0x004bfe1b mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x004bfe20 lea rdx, [rsp + 0x10] | 0x004bfe25 mov qword [rsp + 0x40], rdi | *((rsp + 0x40)) = rdi; 0x004bfe2a call 0x4c7780 | bsl::vector>::vector(bsl::vector>&&,bsl::allocatorconst&) (r12 + 0xc8, r14 + 0xc8, rsp + 0x10); 0x004bfe2f mov rax, r15 | rax = r15; 0x004bfe32 test r15, r15 | | if (r15 == 0) { 0x004bfe35 jne 0x4bfe48 | 0x004bfe37 mov rax, qword [rip + 0x40d26a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bfe3e test rax, rax | | if (rax != 0) { 0x004bfe41 jne 0x4bfe48 | goto label_10; | } 0x004bfe43 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_10: 0x004bfe48 lea rdi, [r12 + 0xe8] | 0x004bfe50 lea rsi, [r14 + 0xe8] | 0x004bfe57 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x004bfe5c lea rdx, [rsp + 0x10] | 0x004bfe61 mov qword [rsp + 0x38], rdi | *((rsp + 0x38)) = rdi; 0x004bfe66 call 0x4c78c0 | bsl::vector>::vector(bsl::vector>&&,bsl::allocatorconst&) (r12 + 0xe8, r14 + 0xe8, rsp + 0x10); 0x004bfe6b mov rax, r15 | rax = r15; 0x004bfe6e test r15, r15 | | if (r15 == 0) { 0x004bfe71 jne 0x4bfe84 | 0x004bfe73 mov rax, qword [rip + 0x40d22e] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bfe7a test rax, rax | | if (rax != 0) { 0x004bfe7d jne 0x4bfe84 | goto label_11; | } 0x004bfe7f call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_11: 0x004bfe84 lea rbp, [r12 + 0x108] | rbp = r12 + 0x108; 0x004bfe8c lea rsi, [r14 + 0x108] | 0x004bfe93 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x004bfe98 lea rdx, [rsp + 0x10] | 0x004bfe9d mov rdi, rbp | 0x004bfea0 call 0x4c5a40 | bsl::vector>::vector(bsl::vector>&&,bsl::allocatorconst&) (rbp, r14 + 0x108, rsp + 0x10); 0x004bfea5 mov rdi, r15 | rdi = r15; 0x004bfea8 test r15, r15 | | if (r15 == 0) { 0x004bfeab jne 0x4bfec6 | 0x004bfead mov rdi, qword [rip + 0x40d1f4] | rdi = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bfeb4 test rdi, rdi | | if (rdi != 0) { 0x004bfeb7 jne 0x4bfec6 | goto label_12; | } 0x004bfeb9 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004bfebe mov rdi, rax | rdi = rax; 0x004bfec1 mov r12, qword [rsp + 8] | r12 = *((rsp + 8)); | } | label_12: 0x004bfec6 lea r13, [r12 + 0x128] | r13 = r12 + 0x128; 0x004bfece mov rcx, r12 | rcx = r12; 0x004bfed1 lea r12, [r14 + 0x128] | r12 = r14 + 0x128; 0x004bfed8 mov rax, qword [r12 + 0x20] | rax = *((r12 + 0x20)); 0x004bfedd mov qword [r13 + 0x20], rax | *((r13 + 0x20)) = rax; 0x004bfee1 movups xmm0, xmmword [r12] | __asm ("movups xmm0, xmmword [r12]"); 0x004bfee6 movups xmm1, xmmword [r12 + 0x10] | __asm ("movups xmm1, xmmword [r12 + 0x10]"); 0x004bfeec movups xmmword [r13 + 0x10], xmm1 | __asm ("movups xmmword [r13 + 0x10], xmm1"); 0x004bfef1 movups xmmword [r13], xmm0 | __asm ("movups xmmword [r13], xmm0"); 0x004bfef6 mov qword [rcx + 0x150], rdi | *((rcx + 0x150)) = rdi; 0x004bfefd cmp qword [rcx + 0x148], 0x17 | | if (*((rcx + 0x148)) != 0x17) { 0x004bff05 je 0x4bffbb | 0x004bff0b cmp rdi, qword [r14 + 0x150] | | if (rdi != *((r14 + 0x150))) { 0x004bff12 je 0x4bffa1 | 0x004bff18 mov rax, qword [r14 + 0x140] | rax = *((r14 + 0x140)); 0x004bff1f cmp rax, 0x17 | 0x004bff23 mov esi, 0x17 | esi = 0x17; | if (rax > 0x17) { 0x004bff28 cmova rsi, rax | rsi = rax; | } 0x004bff2c mov rcx, qword [rsp + 8] | rcx = *((rsp + 8)); 0x004bff31 mov qword [rcx + 0x128], 0 | *((rcx + 0x128)) = 0; 0x004bff3c mov qword [rcx + 0x140], rax | *((rcx + 0x140)) = rax; 0x004bff43 mov qword [rcx + 0x148], rsi | *((rcx + 0x148)) = rsi; 0x004bff4a cmp rax, 0x18 | | if (rax >= 0x18) { 0x004bff4e jb 0x4bff6f | 0x004bff50 inc rsi | rsi++; 0x004bff53 mov rax, qword [rdi] | rax = *(rdi); 0x004bff56 call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x004bff59 mov rcx, qword [rsp + 8] | rcx = *((rsp + 8)); 0x004bff5e mov qword [rcx + 0x128], rax | *((rcx + 0x128)) = rax; 0x004bff65 cmp qword [rcx + 0x148], 0x17 | | if (*((rcx + 0x148)) != 0x17) { 0x004bff6d jne 0x4bff72 | goto label_13; | } | } 0x004bff6f mov rax, r13 | rax = r13; | label_13: 0x004bff72 mov rcx, qword [rsp + 8] | rcx = *((rsp + 8)); 0x004bff77 mov rdx, qword [rcx + 0x140] | rdx = *((rcx + 0x140)); 0x004bff7e inc rdx | rdx++; | if (rdx == 0) { 0x004bff81 je 0x4bffbb | goto label_14; | } 0x004bff83 cmp qword [r14 + 0x148], 0x17 | | if (*((r14 + 0x148)) != 0x17) { 0x004bff8b je 0x4bff94 | 0x004bff8d mov r12, qword [r14 + 0x128] | r12 = *((r14 + 0x128)); | } 0x004bff94 mov rdi, rax | 0x004bff97 mov rsi, r12 | 0x004bff9a call 0x405bd0 | memcpy (rax, r12, rdx); 0x004bff9f jmp 0x4bffbb | | } else { 0x004bffa1 mov qword [r14 + 0x128], 0 | *((r14 + 0x128)) = 0; 0x004bffac movaps xmm0, xmmword [rip + 0x7ca5d] | xmm0 = .comment; 0x004bffb3 movups xmmword [r14 + 0x140], xmm0 | __asm ("movups xmmword [r14 + 0x140], xmm0"); | } | } | label_14: 0x004bffbb mov r13, rbx | r13 = rbx; 0x004bffbe mov rax, r15 | rax = r15; 0x004bffc1 test r15, r15 | 0x004bffc4 mov rbx, qword [rsp + 8] | rbx = *((rsp + 8)); | if (r15 == 0) { 0x004bffc9 jne 0x4bffdc | 0x004bffcb mov rax, qword [rip + 0x40d0d6] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bffd2 test rax, rax | | if (rax != 0) { 0x004bffd5 jne 0x4bffdc | goto label_15; | } 0x004bffd7 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_15: 0x004bffdc mov byte [rbx + 0x178], 0 | *((rbx + 0x178)) = 0; 0x004bffe3 mov qword [rbx + 0x180], rax | *((rbx + 0x180)) = rax; 0x004bffea cmp byte [r14 + 0x178], 0 | | if (*((r14 + 0x178)) != 0) { 0x004bfff2 je 0x4c002e | 0x004bfff4 test rax, rax | | if (rax == 0) { 0x004bfff7 jne 0x4c000a | 0x004bfff9 mov rax, qword [rip + 0x40d0a8] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c0000 test rax, rax | | if (rax != 0) { 0x004c0003 jne 0x4c000a | goto label_16; | } 0x004c0005 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_16: 0x004c000a lea rdi, [rbx + 0x158] | 0x004c0011 lea rsi, [r14 + 0x158] | 0x004c0018 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x004c001d lea rdx, [rsp + 0x10] | 0x004c0022 call 0x526110 | bsl::vector>::vector(bsl::vector>&&,bsl::allocatorconst&) (rbx + 0x158, r14 + 0x158, rsp + 0x10); 0x004c0027 mov byte [rbx + 0x178], 1 | *((rbx + 0x178)) = 1; | } 0x004c002e mov byte [rbx + 0x188], 0 | *((rbx + 0x188)) = 0; 0x004c0035 mov byte [rbx + 0x198], 0 | *((rbx + 0x198)) = 0; 0x004c003c cmp byte [r14 + 0x198], 0 | | if (*((r14 + 0x198)) != 0) { 0x004c0044 je 0x4c0078 | 0x004c0046 mov rax, qword [r14 + 0x188] | rax = *((r14 + 0x188)); 0x004c004d mov qword [rbx + 0x188], rax | *((rbx + 0x188)) = rax; 0x004c0054 test rax, rax | | if (rax >= 0) { 0x004c0057 jns 0x4c01b2 | goto label_17; | } | label_1: 0x004c005d mov qword [rbx + 0x188], rax | *((rbx + 0x188)) = rax; 0x004c0064 mov eax, dword [r14 + 0x190] | eax = *((r14 + 0x190)); 0x004c006b mov dword [rbx + 0x190], eax | *((rbx + 0x190)) = eax; 0x004c0071 mov byte [rbx + 0x198], 1 | *((rbx + 0x198)) = 1; | } 0x004c0078 test r15, r15 | | if (r15 == 0) { 0x004c007b jne 0x4c0091 | 0x004c007d mov r15, qword [rip + 0x40d024] | r15 = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c0084 test r15, r15 | | if (r15 != 0) { 0x004c0087 jne 0x4c0091 | goto label_18; | } 0x004c0089 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c008e mov r15, rax | r15 = rax; | } | label_18: 0x004c0091 mov byte [rbx + 0x1d0], 0 | *((rbx + 0x1d0)) = 0; 0x004c0098 mov qword [rbx + 0x1d8], r15 | *((rbx + 0x1d8)) = r15; 0x004c009f cmp byte [r14 + 0x1d0], 0 | | if (*((r14 + 0x1d0)) != 0) { 0x004c00a7 je 0x4c00bf | 0x004c00a9 lea rdx, [r14 + 0x1a0] | 0x004c00b0 lea rdi, [rbx + 0x1a0] | 0x004c00b7 mov rsi, r15 | 0x004c00ba call 0x4cc9b0 | BloombergLP::s_baltst::CustomString&BloombergLP::bslstl::Optional_DataImp::emplace(BloombergLP::bslma::Allocator*,BloombergLP::s_baltst::CustomString&&) (rbx + 0x1a0, r15, r14 + 0x1a0); | } 0x004c00bf mov eax, dword [r14 + 0x1e0] | eax = *((r14 + 0x1e0)); 0x004c00c6 mov dword [rbx + 0x1e0], eax | *((rbx + 0x1e0)) = eax; 0x004c00cc mov al, byte [r14 + 0x1e8] | al = *((r14 + 0x1e8)); 0x004c00d3 mov byte [rbx + 0x1e8], al | *((rbx + 0x1e8)) = al; 0x004c00d9 mov eax, dword [r14 + 0x1e4] | eax = *((r14 + 0x1e4)); 0x004c00e0 mov dword [rbx + 0x1e4], eax | *((rbx + 0x1e4)) = eax; 0x004c00e6 mov eax, dword [r14 + 0x1ec] | eax = *((r14 + 0x1ec)); 0x004c00ed mov dword [rbx + 0x1ec], eax | *((rbx + 0x1ec)) = eax; 0x004c00f3 mov al, byte [r14 + 0x1f0] | al = *((r14 + 0x1f0)); 0x004c00fa mov byte [rbx + 0x1f0], al | *((rbx + 0x1f0)) = al; 0x004c0100 mov eax, dword [r14 + 0x1f4] | eax = *((r14 + 0x1f4)); 0x004c0107 mov dword [rbx + 0x1f4], eax | *((rbx + 0x1f4)) = eax; 0x004c010d mov al, byte [r14 + 0x1f8] | al = *((r14 + 0x1f8)); 0x004c0114 mov byte [rbx + 0x1f8], al | *((rbx + 0x1f8)) = al; 0x004c011a add rsp, 0x78 | 0x004c011e pop rbx | 0x004c011f pop r12 | 0x004c0121 pop r13 | 0x004c0123 pop r14 | 0x004c0125 pop r15 | 0x004c0127 pop rbp | 0x004c0128 ret | return rax; | label_8: 0x004c0129 mov rbp, qword [r14 + 0xb0] | rbp = *((r14 + 0xb0)); 0x004c0130 sub rbp, qword [r14 + 0xa8] | rbp -= *((r14 + 0xa8)); 0x004c0137 je 0x4bfdf3 | | } while (rbp == 0); 0x004c013d mov rcx, qword [rax] | rcx = *(rax); 0x004c0140 mov rdi, rax | rdi = rax; 0x004c0143 mov rsi, rbp | rsi = rbp; 0x004c0146 call qword [rcx + 0x10] | rax = uint64_t (*rcx + 0x10)() (); 0x004c0149 sar rbp, 4 | rbp >>= 4; 0x004c014d mov qword [r12 + 0xb0], rax | *((r12 + 0xb0)) = rax; 0x004c0155 mov qword [r12 + 0xa8], rax | *((r12 + 0xa8)) = rax; 0x004c015d mov qword [r12 + 0xb8], rbp | *((r12 + 0xb8)) = rbp; 0x004c0165 mov rsi, qword [r14 + 0xa8] | rsi = *((r14 + 0xa8)); 0x004c016c mov rdx, qword [r14 + 0xb0] | rdx = *((r14 + 0xb0)); 0x004c0173 sub rdx, rsi | rdx -= rsi; | if (rdx == 0) { 0x004c0176 je 0x4c0228 | goto label_19; | } 0x004c017c mov rdi, rax | 0x004c017f call 0x405bd0 | memcpy (rax, rsi, rdx); 0x004c0184 mov rcx, qword [r14 + 0xb0] | rcx = *((r14 + 0xb0)); 0x004c018b mov rax, qword [r12 + 0xb0] | rax = *((r12 + 0xb0)); 0x004c0193 sub rcx, qword [r14 + 0xa8] | rcx -= *((r14 + 0xa8)); 0x004c019a sar rcx, 4 | rcx >>= 4; | do { 0x004c019e shl rcx, 4 | rcx <<= 4; 0x004c01a2 add rcx, rax | rcx += rax; 0x004c01a5 mov qword [r12 + 0xb0], rcx | *((r12 + 0xb0)) = rcx; 0x004c01ad jmp 0x4bfdf3 | goto label_0; | label_17: 0x004c01b2 mov edi, 0x8ccfe0 | 0x004c01b7 call 0x517f40 | eax = BloombergLP::bsls::Review::updateCount(BloombergLP::bsls::Atomic_TypeTraits::Int*) (method.BloombergLP::bdlt::Datetime.validateAndTraceLogRepresentation___const::lambda__1::operator_____const::count); 0x004c01bc mov qword [rsp + 0x10], 0x5430fa | *((rsp + 0x10)) = "detected invalid 'bdlt::Datetime'; see TEAM 579660115"; 0x004c01c5 mov qword [rsp + 0x18], 0x543130 | *((rsp + 0x18)) = "/home/parsa/experiments/assumptions/crush/ccm-assume/groups/bdl/bdlt/bdlt_datetime.h"; 0x004c01ce mov dword [rsp + 0x20], 0x466 | *((rsp + 0x20)) = 0x466; 0x004c01d6 mov qword [rsp + 0x28], 0x667d92 | *((rsp + 0x28)) = "R-INV"; 0x004c01df mov dword [rsp + 0x30], eax | *((rsp + 0x30)) = eax; 0x004c01e3 lea rdi, [rsp + 0x10] | rdi = rsp + 0x10; 0x004c01e8 call 0x517f60 | BloombergLP::bsls::Review::invokeHandler(BloombergLP::bsls::ReviewViolationconst&) (); 0x004c01ed mov rax, qword [rbx + 0x188] | rax = *((rbx + 0x188)); 0x004c01f4 mov rcx, rax | rcx = *((rbx + 0x188)); 0x004c01f7 shr rcx, 0x20 | rcx >>= 0x20; 0x004c01fb shl rax, 0x25 | rax <<= 0x25; 0x004c01ff movabs rdx, 0x7fffffe000000000 | rdx = 0x7fffffe000000000; 0x004c0209 add rdx, rax | rdx += rax; 0x004c020c imul rcx, rcx, 0x3e8 | rcx *= 0x3e8; 0x004c0213 movabs rax, 0x8000000000000000 | rax = 0x8000000000000000; 0x004c021d or rax, rdx | rax |= rdx; 0x004c0220 or rax, rcx | rax |= rcx; 0x004c0223 jmp 0x4c005d | goto label_1; | label_19: 0x004c0228 xor ecx, ecx | ecx = 0; 0x004c022a jmp 0x4c019e | | } while (1); | }