; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/none @ 0x4bfd40 */ | #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) { | char * var_8h; | char * var_10h; | int64_t var_18h; | char * var_20h; | int64_t 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; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::s_baltst::Sequence4::Sequence4(BloombergLP::s_baltst::Sequence4&&, BloombergLP::bslma::Allocator*) */ 0x004bfd40 push rbp | 0x004bfd41 push r15 | 0x004bfd43 push r14 | 0x004bfd45 push r13 | 0x004bfd47 push r12 | 0x004bfd49 push rbx | 0x004bfd4a sub rsp, 0x68 | 0x004bfd4e mov r15, rdx | r15 = rdx; 0x004bfd51 mov r14, rsi | r14 = rsi; 0x004bfd54 mov r12, rdi | r12 = rdi; 0x004bfd57 movsd xmm0, qword [rsi] | xmm0 = *(rsi); 0x004bfd5b movsd qword [rdi], xmm0 | *(rdi) = xmm0; 0x004bfd5f lea rbx, [rdi + 8] | rbx = rdi + 8; 0x004bfd63 lea rbp, [rsi + 8] | rbp = rsi + 8; 0x004bfd67 mov rax, rdx | rax = rdx; 0x004bfd6a test rdx, rdx | | if (rdx == 0) { 0x004bfd6d jne 0x4bfd80 | 0x004bfd6f mov rax, qword [rip + 0x40d332] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bfd76 test rax, rax | | if (rax != 0) { 0x004bfd79 jne 0x4bfd80 | goto label_2; | } 0x004bfd7b call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_2: 0x004bfd80 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x004bfd85 lea rdx, [rsp + 8] | 0x004bfd8a mov rdi, rbx | 0x004bfd8d mov rsi, rbp | 0x004bfd90 call 0x52ca90 | bsl::vector>::vector(bsl::vector>&&,bsl::allocatorconst&) (rbx, rbp, rsp + 8); 0x004bfd95 mov rax, r15 | rax = r15; 0x004bfd98 test r15, r15 | 0x004bfd9b mov qword [rsp + 0x60], rbx | *((rsp + 0x60)) = rbx; 0x004bfda0 mov qword [rsp], r12 | *(rsp) = r12; | if (r15 == 0) { 0x004bfda4 jne 0x4bfdb7 | 0x004bfda6 mov rax, qword [rip + 0x40d2fb] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bfdad test rax, rax | | if (rax != 0) { 0x004bfdb0 jne 0x4bfdb7 | goto label_3; | } 0x004bfdb2 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_3: 0x004bfdb7 lea rbx, [r12 + 0x28] | rbx = r12 + 0x28; 0x004bfdbc lea rsi, [r14 + 0x28] | 0x004bfdc0 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x004bfdc5 lea rdx, [rsp + 8] | 0x004bfdca mov rdi, rbx | 0x004bfdcd call 0x5354b0 | bsl::vector>::vector(bsl::vector>&&,bsl::allocatorconst&) (rbx, r14 + 0x28, rsp + 8); 0x004bfdd2 mov rax, r15 | rax = r15; 0x004bfdd5 test r15, r15 | | if (r15 == 0) { 0x004bfdd8 jne 0x4bfdeb | 0x004bfdda mov rax, qword [rip + 0x40d2c7] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bfde1 test rax, rax | | if (rax != 0) { 0x004bfde4 jne 0x4bfdeb | goto label_4; | } 0x004bfde6 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_4: 0x004bfdeb lea rdi, [r12 + 0x48] | 0x004bfdf0 lea rsi, [r14 + 0x48] | 0x004bfdf4 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x004bfdf9 lea rdx, [rsp + 8] | 0x004bfdfe mov qword [rsp + 0x58], rdi | *((rsp + 0x58)) = rdi; 0x004bfe03 call 0x526d50 | bsl::vector>::vector(bsl::vector>&&,bsl::allocatorconst&) (r12 + 0x48, r14 + 0x48, rsp + 8); 0x004bfe08 mov rax, r15 | rax = r15; 0x004bfe0b test r15, r15 | | if (r15 == 0) { 0x004bfe0e jne 0x4bfe21 | 0x004bfe10 mov rax, qword [rip + 0x40d291] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bfe17 test rax, rax | | if (rax != 0) { 0x004bfe1a jne 0x4bfe21 | goto label_5; | } 0x004bfe1c call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_5: 0x004bfe21 lea rdi, [r12 + 0x68] | 0x004bfe26 lea rsi, [r14 + 0x68] | 0x004bfe2a mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x004bfe2f lea rdx, [rsp + 8] | 0x004bfe34 mov qword [rsp + 0x40], rdi | *((rsp + 0x40)) = rdi; 0x004bfe39 call 0x4c7900 | bsl::vector>,bsl::allocator>>>::vector(bsl::vector>,bsl::allocator>>>&&,bsl::allocator>>const&) (r12 + 0x68, r14 + 0x68, rsp + 8); 0x004bfe3e mov rax, r15 | rax = r15; 0x004bfe41 test r15, r15 | | if (r15 == 0) { 0x004bfe44 jne 0x4bfe57 | 0x004bfe46 mov rax, qword [rip + 0x40d25b] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bfe4d test rax, rax | | if (rax != 0) { 0x004bfe50 jne 0x4bfe57 | goto label_6; | } 0x004bfe52 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_6: 0x004bfe57 lea rdi, [r12 + 0x88] | 0x004bfe5f lea rsi, [r14 + 0x88] | 0x004bfe66 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x004bfe6b lea rdx, [rsp + 8] | 0x004bfe70 mov qword [rsp + 0x50], rdi | *((rsp + 0x50)) = rdi; 0x004bfe75 call 0x525b60 | bsl::vector>::vector(bsl::vector>&&,bsl::allocatorconst&) (r12 + 0x88, r14 + 0x88, rsp + 8); 0x004bfe7a mov rax, r15 | rax = r15; 0x004bfe7d test r15, r15 | | if (r15 == 0) { 0x004bfe80 jne 0x4bfe93 | 0x004bfe82 mov rax, qword [rip + 0x40d21f] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bfe89 test rax, rax | | if (rax != 0) { 0x004bfe8c jne 0x4bfe93 | goto label_7; | } 0x004bfe8e call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_7: 0x004bfe93 lea rcx, [r12 + 0xa8] | rcx = r12 + 0xa8; 0x004bfe9b xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004bfe9e movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x004bfea1 mov qword [rsp + 0x48], rcx | *((rsp + 0x48)) = rcx; 0x004bfea6 mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x004bfeae mov qword [r12 + 0xc0], rax | *((r12 + 0xc0)) = rax; 0x004bfeb6 cmp rax, qword [r14 + 0xc0] | | if (rax != *((r14 + 0xc0))) { 0x004bfebd jne 0x4c0233 | goto label_8; | } 0x004bfec3 lea rax, [r14 + 0xa8] | rax = r14 + 0xa8; 0x004bfeca mov rcx, qword [r14 + 0xa8] | rcx = *((r14 + 0xa8)); 0x004bfed1 mov qword [r12 + 0xa8], rcx | *((r12 + 0xa8)) = rcx; 0x004bfed9 mov rcx, qword [r14 + 0xb0] | rcx = *((r14 + 0xb0)); 0x004bfee0 mov qword [r12 + 0xb0], rcx | *((r12 + 0xb0)) = rcx; 0x004bfee8 mov rcx, qword [r14 + 0xb8] | rcx = *((r14 + 0xb8)); 0x004bfeef mov qword [r12 + 0xb8], rcx | *((r12 + 0xb8)) = rcx; 0x004bfef7 movups xmmword [rax], xmm0 | __asm ("movups xmmword [rax], xmm0"); 0x004bfefa mov qword [rax + 0x10], 0 | *((rax + 0x10)) = 0; | do { | label_0: 0x004bff02 mov rax, r15 | rax = r15; 0x004bff05 test r15, r15 | | if (r15 == 0) { 0x004bff08 jne 0x4bff1b | 0x004bff0a mov rax, qword [rip + 0x40d197] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bff11 test rax, rax | | if (rax != 0) { 0x004bff14 jne 0x4bff1b | goto label_9; | } 0x004bff16 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_9: 0x004bff1b lea rdi, [r12 + 0xc8] | 0x004bff23 lea rsi, [r14 + 0xc8] | 0x004bff2a mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x004bff2f lea rdx, [rsp + 8] | 0x004bff34 mov qword [rsp + 0x38], rdi | *((rsp + 0x38)) = rdi; 0x004bff39 call 0x4c7a60 | bsl::vector>::vector(bsl::vector>&&,bsl::allocatorconst&) (r12 + 0xc8, r14 + 0xc8, rsp + 8); 0x004bff3e mov rax, r15 | rax = r15; 0x004bff41 test r15, r15 | | if (r15 == 0) { 0x004bff44 jne 0x4bff57 | 0x004bff46 mov rax, qword [rip + 0x40d15b] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bff4d test rax, rax | | if (rax != 0) { 0x004bff50 jne 0x4bff57 | goto label_10; | } 0x004bff52 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_10: 0x004bff57 lea rdi, [r12 + 0xe8] | 0x004bff5f lea rsi, [r14 + 0xe8] | 0x004bff66 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x004bff6b lea rdx, [rsp + 8] | 0x004bff70 mov qword [rsp + 0x30], rdi | *((rsp + 0x30)) = rdi; 0x004bff75 call 0x4c7ba0 | bsl::vector>::vector(bsl::vector>&&,bsl::allocatorconst&) (r12 + 0xe8, r14 + 0xe8, rsp + 8); 0x004bff7a mov rax, r15 | rax = r15; 0x004bff7d test r15, r15 | | if (r15 == 0) { 0x004bff80 jne 0x4bff93 | 0x004bff82 mov rax, qword [rip + 0x40d11f] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bff89 test rax, rax | | if (rax != 0) { 0x004bff8c jne 0x4bff93 | goto label_11; | } 0x004bff8e call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_11: 0x004bff93 lea rbp, [r12 + 0x108] | rbp = r12 + 0x108; 0x004bff9b lea rsi, [r14 + 0x108] | 0x004bffa2 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x004bffa7 lea rdx, [rsp + 8] | 0x004bffac mov rdi, rbp | 0x004bffaf call 0x4c5e10 | bsl::vector>::vector(bsl::vector>&&,bsl::allocatorconst&) (rbp, r14 + 0x108, rsp + 8); 0x004bffb4 mov rdi, r15 | rdi = r15; 0x004bffb7 test r15, r15 | | if (r15 == 0) { 0x004bffba jne 0x4bffd4 | 0x004bffbc mov rdi, qword [rip + 0x40d0e5] | rdi = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bffc3 test rdi, rdi | | if (rdi != 0) { 0x004bffc6 jne 0x4bffd4 | goto label_12; | } 0x004bffc8 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004bffcd mov rdi, rax | rdi = rax; 0x004bffd0 mov r12, qword [rsp] | r12 = *(rsp); | } | label_12: 0x004bffd4 lea r13, [r12 + 0x128] | r13 = r12 + 0x128; 0x004bffdc mov rcx, r12 | rcx = r12; 0x004bffdf lea r12, [r14 + 0x128] | r12 = r14 + 0x128; 0x004bffe6 mov rax, qword [r12 + 0x20] | rax = *((r12 + 0x20)); 0x004bffeb mov qword [r13 + 0x20], rax | *((r13 + 0x20)) = rax; 0x004bffef movups xmm0, xmmword [r12] | __asm ("movups xmm0, xmmword [r12]"); 0x004bfff4 movups xmm1, xmmword [r12 + 0x10] | __asm ("movups xmm1, xmmword [r12 + 0x10]"); 0x004bfffa movups xmmword [r13 + 0x10], xmm1 | __asm ("movups xmmword [r13 + 0x10], xmm1"); 0x004bffff movups xmmword [r13], xmm0 | __asm ("movups xmmword [r13], xmm0"); 0x004c0004 mov qword [rcx + 0x150], rdi | *((rcx + 0x150)) = rdi; 0x004c000b cmp qword [rcx + 0x148], 0x17 | | if (*((rcx + 0x148)) != 0x17) { 0x004c0013 je 0x4c00c6 | 0x004c0019 cmp rdi, qword [r14 + 0x150] | | if (rdi != *((r14 + 0x150))) { 0x004c0020 je 0x4c00ac | 0x004c0026 mov rax, qword [r14 + 0x140] | rax = *((r14 + 0x140)); 0x004c002d cmp rax, 0x17 | 0x004c0031 mov esi, 0x17 | esi = 0x17; | if (rax > 0x17) { 0x004c0036 cmova rsi, rax | rsi = rax; | } 0x004c003a mov rcx, qword [rsp] | rcx = *(rsp); 0x004c003e mov qword [rcx + 0x128], 0 | *((rcx + 0x128)) = 0; 0x004c0049 mov qword [rcx + 0x140], rax | *((rcx + 0x140)) = rax; 0x004c0050 mov qword [rcx + 0x148], rsi | *((rcx + 0x148)) = rsi; 0x004c0057 cmp rax, 0x18 | | if (rax >= 0x18) { 0x004c005b jb 0x4c007b | 0x004c005d inc rsi | rsi++; 0x004c0060 mov rax, qword [rdi] | rax = *(rdi); 0x004c0063 call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x004c0066 mov rcx, qword [rsp] | rcx = *(rsp); 0x004c006a mov qword [rcx + 0x128], rax | *((rcx + 0x128)) = rax; 0x004c0071 cmp qword [rcx + 0x148], 0x17 | | if (*((rcx + 0x148)) != 0x17) { 0x004c0079 jne 0x4c007e | goto label_13; | } | } 0x004c007b mov rax, r13 | rax = r13; | label_13: 0x004c007e mov rcx, qword [rsp] | rcx = *(rsp); 0x004c0082 mov rdx, qword [rcx + 0x140] | rdx = *((rcx + 0x140)); 0x004c0089 inc rdx | rdx++; | if (rdx == 0) { 0x004c008c je 0x4c00c6 | goto label_14; | } 0x004c008e cmp qword [r14 + 0x148], 0x17 | | if (*((r14 + 0x148)) != 0x17) { 0x004c0096 je 0x4c009f | 0x004c0098 mov r12, qword [r14 + 0x128] | r12 = *((r14 + 0x128)); | } 0x004c009f mov rdi, rax | 0x004c00a2 mov rsi, r12 | 0x004c00a5 call 0x405c20 | memcpy (rax, r12, rdx); 0x004c00aa jmp 0x4c00c6 | | } else { 0x004c00ac mov qword [r14 + 0x128], 0 | *((r14 + 0x128)) = 0; 0x004c00b7 movaps xmm0, xmmword [rip + 0x7d572] | xmm0 = .comment; 0x004c00be movups xmmword [r14 + 0x140], xmm0 | __asm ("movups xmmword [r14 + 0x140], xmm0"); | } | } | label_14: 0x004c00c6 mov r13, rbx | r13 = rbx; 0x004c00c9 mov rax, r15 | rax = r15; 0x004c00cc test r15, r15 | 0x004c00cf mov rbx, qword [rsp] | rbx = *(rsp); | if (r15 == 0) { 0x004c00d3 jne 0x4c00e6 | 0x004c00d5 mov rax, qword [rip + 0x40cfcc] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c00dc test rax, rax | | if (rax != 0) { 0x004c00df jne 0x4c00e6 | goto label_15; | } 0x004c00e1 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_15: 0x004c00e6 mov byte [rbx + 0x178], 0 | *((rbx + 0x178)) = 0; 0x004c00ed mov qword [rbx + 0x180], rax | *((rbx + 0x180)) = rax; 0x004c00f4 cmp byte [r14 + 0x178], 0 | | if (*((r14 + 0x178)) != 0) { 0x004c00fc je 0x4c0138 | 0x004c00fe test rax, rax | | if (rax == 0) { 0x004c0101 jne 0x4c0114 | 0x004c0103 mov rax, qword [rip + 0x40cf9e] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c010a test rax, rax | | if (rax != 0) { 0x004c010d jne 0x4c0114 | goto label_16; | } 0x004c010f call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_16: 0x004c0114 lea rdi, [rbx + 0x158] | 0x004c011b lea rsi, [r14 + 0x158] | 0x004c0122 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x004c0127 lea rdx, [rsp + 8] | 0x004c012c call 0x526d50 | bsl::vector>::vector(bsl::vector>&&,bsl::allocatorconst&) (rbx + 0x158, r14 + 0x158, rsp + 8); 0x004c0131 mov byte [rbx + 0x178], 1 | *((rbx + 0x178)) = 1; | } 0x004c0138 mov byte [rbx + 0x188], 0 | *((rbx + 0x188)) = 0; 0x004c013f mov byte [rbx + 0x198], 0 | *((rbx + 0x198)) = 0; 0x004c0146 cmp byte [r14 + 0x198], 0 | | if (*((r14 + 0x198)) != 0) { 0x004c014e je 0x4c0182 | 0x004c0150 mov rax, qword [r14 + 0x188] | rax = *((r14 + 0x188)); 0x004c0157 mov qword [rbx + 0x188], rax | *((rbx + 0x188)) = rax; 0x004c015e test rax, rax | | if (rax >= 0) { 0x004c0161 jns 0x4c02bc | goto label_17; | } | label_1: 0x004c0167 mov qword [rbx + 0x188], rax | *((rbx + 0x188)) = rax; 0x004c016e mov eax, dword [r14 + 0x190] | eax = *((r14 + 0x190)); 0x004c0175 mov dword [rbx + 0x190], eax | *((rbx + 0x190)) = eax; 0x004c017b mov byte [rbx + 0x198], 1 | *((rbx + 0x198)) = 1; | } 0x004c0182 test r15, r15 | | if (r15 == 0) { 0x004c0185 jne 0x4c019b | 0x004c0187 mov r15, qword [rip + 0x40cf1a] | r15 = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c018e test r15, r15 | | if (r15 != 0) { 0x004c0191 jne 0x4c019b | goto label_18; | } 0x004c0193 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c0198 mov r15, rax | r15 = rax; | } | label_18: 0x004c019b mov byte [rbx + 0x1d0], 0 | *((rbx + 0x1d0)) = 0; 0x004c01a2 mov qword [rbx + 0x1d8], r15 | *((rbx + 0x1d8)) = r15; 0x004c01a9 cmp byte [r14 + 0x1d0], 0 | | if (*((r14 + 0x1d0)) != 0) { 0x004c01b1 je 0x4c01c9 | 0x004c01b3 lea rdx, [r14 + 0x1a0] | 0x004c01ba lea rdi, [rbx + 0x1a0] | 0x004c01c1 mov rsi, r15 | 0x004c01c4 call 0x4ccb80 | BloombergLP::s_baltst::CustomString&BloombergLP::bslstl::Optional_DataImp::emplace(BloombergLP::bslma::Allocator*,BloombergLP::s_baltst::CustomString&&) (rbx + 0x1a0, r15, r14 + 0x1a0); | } 0x004c01c9 mov eax, dword [r14 + 0x1e0] | eax = *((r14 + 0x1e0)); 0x004c01d0 mov dword [rbx + 0x1e0], eax | *((rbx + 0x1e0)) = eax; 0x004c01d6 mov al, byte [r14 + 0x1e8] | al = *((r14 + 0x1e8)); 0x004c01dd mov byte [rbx + 0x1e8], al | *((rbx + 0x1e8)) = al; 0x004c01e3 mov eax, dword [r14 + 0x1e4] | eax = *((r14 + 0x1e4)); 0x004c01ea mov dword [rbx + 0x1e4], eax | *((rbx + 0x1e4)) = eax; 0x004c01f0 mov eax, dword [r14 + 0x1ec] | eax = *((r14 + 0x1ec)); 0x004c01f7 mov dword [rbx + 0x1ec], eax | *((rbx + 0x1ec)) = eax; 0x004c01fd mov al, byte [r14 + 0x1f0] | al = *((r14 + 0x1f0)); 0x004c0204 mov byte [rbx + 0x1f0], al | *((rbx + 0x1f0)) = al; 0x004c020a mov eax, dword [r14 + 0x1f4] | eax = *((r14 + 0x1f4)); 0x004c0211 mov dword [rbx + 0x1f4], eax | *((rbx + 0x1f4)) = eax; 0x004c0217 mov al, byte [r14 + 0x1f8] | al = *((r14 + 0x1f8)); 0x004c021e mov byte [rbx + 0x1f8], al | *((rbx + 0x1f8)) = al; 0x004c0224 add rsp, 0x68 | 0x004c0228 pop rbx | 0x004c0229 pop r12 | 0x004c022b pop r13 | 0x004c022d pop r14 | 0x004c022f pop r15 | 0x004c0231 pop rbp | 0x004c0232 ret | return rax; | label_8: 0x004c0233 mov rbp, qword [r14 + 0xb0] | rbp = *((r14 + 0xb0)); 0x004c023a sub rbp, qword [r14 + 0xa8] | rbp -= *((r14 + 0xa8)); 0x004c0241 je 0x4bff02 | | } while (rbp == 0); 0x004c0247 mov rcx, qword [rax] | rcx = *(rax); 0x004c024a mov rdi, rax | rdi = rax; 0x004c024d mov rsi, rbp | rsi = rbp; 0x004c0250 call qword [rcx + 0x10] | rax = uint64_t (*rcx + 0x10)() (); 0x004c0253 sar rbp, 4 | rbp >>= 4; 0x004c0257 mov qword [r12 + 0xb0], rax | *((r12 + 0xb0)) = rax; 0x004c025f mov qword [r12 + 0xa8], rax | *((r12 + 0xa8)) = rax; 0x004c0267 mov qword [r12 + 0xb8], rbp | *((r12 + 0xb8)) = rbp; 0x004c026f mov rsi, qword [r14 + 0xa8] | rsi = *((r14 + 0xa8)); 0x004c0276 mov rdx, qword [r14 + 0xb0] | rdx = *((r14 + 0xb0)); 0x004c027d sub rdx, rsi | rdx -= rsi; | if (rdx == 0) { 0x004c0280 je 0x4c0332 | goto label_19; | } 0x004c0286 mov rdi, rax | 0x004c0289 call 0x405c20 | memcpy (rax, rsi, rdx); 0x004c028e mov rcx, qword [r14 + 0xb0] | rcx = *((r14 + 0xb0)); 0x004c0295 mov rax, qword [r12 + 0xb0] | rax = *((r12 + 0xb0)); 0x004c029d sub rcx, qword [r14 + 0xa8] | rcx -= *((r14 + 0xa8)); 0x004c02a4 sar rcx, 4 | rcx >>= 4; | do { 0x004c02a8 shl rcx, 4 | rcx <<= 4; 0x004c02ac add rcx, rax | rcx += rax; 0x004c02af mov qword [r12 + 0xb0], rcx | *((r12 + 0xb0)) = rcx; 0x004c02b7 jmp 0x4bff02 | goto label_0; | label_17: 0x004c02bc mov edi, 0x8ccfe0 | 0x004c02c1 call 0x518b80 | eax = BloombergLP::bsls::Review::updateCount(BloombergLP::bsls::Atomic_TypeTraits::Int*) (method.BloombergLP::bdlt::Datetime.validateAndTraceLogRepresentation___const::lambda__1::operator_____const::count); 0x004c02c6 mov qword [rsp + 8], 0x543d16 | *((rsp + 8)) = "detected invalid 'bdlt::Datetime'; see TEAM 579660115"; 0x004c02cf mov qword [rsp + 0x10], 0x543d4c | *((rsp + 0x10)) = "/home/parsa/experiments/assumptions/crush/ccm-none/groups/bdl/bdlt/bdlt_datetime.h"; 0x004c02d8 mov dword [rsp + 0x18], 0x466 | *((rsp + 0x18)) = 0x466; 0x004c02e0 mov qword [rsp + 0x20], 0x667872 | *((rsp + 0x20)) = "R-INV"; 0x004c02e9 mov dword [rsp + 0x28], eax | *((rsp + 0x28)) = eax; 0x004c02ed lea rdi, [rsp + 8] | rdi = rsp + 8; 0x004c02f2 call 0x518ba0 | BloombergLP::bsls::Review::invokeHandler(BloombergLP::bsls::ReviewViolationconst&) (); 0x004c02f7 mov rax, qword [rbx + 0x188] | rax = *((rbx + 0x188)); 0x004c02fe mov rcx, rax | rcx = *((rbx + 0x188)); 0x004c0301 shr rcx, 0x20 | rcx >>= 0x20; 0x004c0305 shl rax, 0x25 | rax <<= 0x25; 0x004c0309 movabs rdx, 0x7fffffe000000000 | rdx = 0x7fffffe000000000; 0x004c0313 add rdx, rax | rdx += rax; 0x004c0316 imul rcx, rcx, 0x3e8 | rcx *= 0x3e8; 0x004c031d movabs rax, 0x8000000000000000 | rax = 0x8000000000000000; 0x004c0327 or rax, rdx | rax |= rdx; 0x004c032a or rax, rcx | rax |= rcx; 0x004c032d jmp 0x4c0167 | goto label_1; | label_19: 0x004c0332 xor ecx, ecx | ecx = 0; 0x004c0334 jmp 0x4c02a8 | | } while (1); | }