; assembly | /* r2dec pseudo code output */ | /* balcl_commandline.t/none @ 0x44b070 */ | #include | ; (fcn) sym._anonymous_namespace_::u::createOccurrenceInfo_BloombergLP::balcl::OccurrenceInfo::OccurrenceType__BloombergLP::balcl::OptionType::Enum__void_const_ () | int64_t anonymous_namespace_::u::createOccurrenceInfo_BloombergLP::balcl::OccurrenceInfo::OccurrenceType_BloombergLP::balcl::OptionType::Enum_void_const_ (int64_t arg4, int64_t arg3, int64_t arg2, int64_t arg1) { | int64_t var_1h; | int64_t var_4h; | uint32_t var_8h; | int64_t var_10h; | int64_t var_18h; | uint32_t var_20h; | int64_t var_28h; | uint32_t var_30h; | int64_t var_38h; | int64_t var_40h; | int64_t var_48h; | char * var_60h; | char * var_68h; | int64_t var_70h; | char * var_78h; | int64_t var_80h; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* (anonymous namespace)::u::createOccurrenceInfo(BloombergLP::balcl::OccurrenceInfo::OccurrenceType, BloombergLP::balcl::OptionType::Enum, void const*) */ 0x0044b070 push rbp | 0x0044b071 push r15 | 0x0044b073 push r14 | 0x0044b075 push r13 | 0x0044b077 push r12 | 0x0044b079 push rbx | 0x0044b07a sub rsp, 0x88 | 0x0044b081 mov r15, rcx | r15 = rcx; 0x0044b084 mov ebx, edx | ebx = edx; 0x0044b086 mov ebp, esi | 0x0044b088 mov r14, rdi | r14 = rdi; 0x0044b08b xor edx, edx | 0x0044b08d call 0x462190 | BloombergLP::balcl::OccurrenceInfo::OccurrenceInfo(BloombergLP::balcl::OccurrenceInfo::OccurrenceType,BloombergLP::bslma::Allocator*) (rdi, rsi, 0); 0x0044b092 test ebp, ebp | | if (ebp == 0) { 0x0044b094 je 0x44b72d | goto label_3; | } 0x0044b09a test r15, r15 | | if (r15 == 0) { 0x0044b09d je 0x44b72d | goto label_3; | } 0x0044b0a3 mov dword [rsp + 0x40], 0 | *((rsp + 0x40)) = 0; 0x0044b0ab mov rax, qword [rip + 0x2bab76] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0044b0b2 test rax, rax | | if (rax == 0) { 0x0044b0b5 jne 0x44b0bc | 0x0044b0b7 call 0x47ce20 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0044b0bc mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x0044b0c1 mov r13, rsp | r13 = rsp; 0x0044b0c4 mov rdi, r13 | 0x0044b0c7 mov esi, ebx | 0x0044b0c9 call 0x465350 | BloombergLP::balcl::OptionValue::init(BloombergLP::balcl::OptionType::Enum) (rsp, ebx); 0x0044b0ce dec ebx | ebx--; 0x0044b0d0 cmp ebx, 0x10 | | if (ebx > 0x10) { 0x0044b0d3 ja 0x44b70d | goto label_4; | } | /* switch table (17 cases) at 0x4a4b50 */ 0x0044b0d9 jmp qword [rbx*8 + 0x4a4b50] | 0x0044b0e0 mov al, byte [r15] | al = *(r15); 0x0044b0e3 mov byte [rsp], al | *(rsp) = al; 0x0044b0e6 mov byte [rsp + 1], 1 | *((rsp + 1)) = 1; 0x0044b0eb jmp 0x44b70d | goto label_4; 0x0044b0f0 mov eax, dword [r15] | eax = *(r15); 0x0044b0f3 mov dword [rsp], eax | *(rsp) = eax; 0x0044b0f6 mov byte [rsp + 4], 1 | *((rsp + 4)) = 1; 0x0044b0fb jmp 0x44b70d | goto label_4; 0x0044b100 mov rax, qword [r15] | rax = *(r15); 0x0044b103 jmp 0x44b2bf | goto label_5; 0x0044b108 movsd xmm0, qword [r15] | xmm0 = *(r15); 0x0044b10d movsd qword [rsp], xmm0 | *(rsp) = xmm0; 0x0044b112 mov byte [rsp + 8], 1 | *((rsp + 8)) = 1; 0x0044b117 jmp 0x44b70d | goto label_4; 0x0044b11c mov r12, qword [rsp + 0x38] | r12 = *((rsp + 0x38)); 0x0044b121 cmp byte [rsp + 0x30], 0 | | if (*((rsp + 0x30)) != 0) { 0x0044b126 je 0x44b14d | 0x0044b128 mov byte [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x0044b12d cmp qword [rsp + 0x20], 0x17 | | if (*((rsp + 0x20)) != 0x17) { 0x0044b133 je 0x44b144 | 0x0044b135 mov rsi, qword [rsp] | rsi = *(rsp); 0x0044b139 mov rdi, qword [rsp + 0x28] | rdi = *((rsp + 0x28)); 0x0044b13e mov rax, qword [rdi] | rax = *(rdi); 0x0044b141 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0044b144 mov qword [rsp + 0x18], 0xffffffffffffffff | *((rsp + 0x18)) = 0xffffffffffffffff; | } 0x0044b14d test r12, r12 | | if (r12 == 0) { 0x0044b150 jne 0x44b166 | 0x0044b152 mov r12, qword [rip + 0x2baacf] | r12 = BloombergLP::bslma::Default::s_defaultAllocator; 0x0044b159 test r12, r12 | | if (r12 != 0) { 0x0044b15c jne 0x44b166 | goto label_6; | } 0x0044b15e call 0x47ce20 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0044b163 mov r12, rax | r12 = rax; | } | label_6: 0x0044b166 mov rax, qword [r15 + 0x20] | rax = *((r15 + 0x20)); 0x0044b16a mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0044b16f movups xmm0, xmmword [r15] | __asm ("movups xmm0, xmmword [r15]"); 0x0044b173 movups xmm1, xmmword [r15 + 0x10] | __asm ("movups xmm1, xmmword [r15 + 0x10]"); 0x0044b178 movaps xmmword [rsp + 0x10], xmm1 | *((rsp + 0x10)) = xmm1; 0x0044b17d movaps xmmword [rsp], xmm0 | *(rsp) = xmm0; 0x0044b181 mov qword [rsp + 0x28], r12 | *((rsp + 0x28)) = r12; 0x0044b186 cmp rax, 0x17 | | if (rax != 0x17) { 0x0044b18a je 0x44b1f0 | 0x0044b18c mov rax, qword [r15 + 0x18] | rax = *((r15 + 0x18)); 0x0044b190 cmp rax, 0x17 | 0x0044b194 mov esi, 0x17 | esi = 0x17; | if (rax > 0x17) { 0x0044b199 cmova rsi, rax | rsi = rax; | } 0x0044b19d mov qword [rsp], 0 | *(rsp) = 0; 0x0044b1a5 mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x0044b1aa mov qword [rsp + 0x20], rsi | *((rsp + 0x20)) = rsi; 0x0044b1af cmp rax, 0x18 | | if (rax >= 0x18) { 0x0044b1b3 jb 0x44b1ce | 0x0044b1b5 inc rsi | rsi++; 0x0044b1b8 mov rax, qword [r12] | rax = *(r12); 0x0044b1bc mov rdi, r12 | rdi = r12; 0x0044b1bf call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x0044b1c2 mov qword [rsp], rax | *(rsp) = rax; 0x0044b1c6 cmp qword [rsp + 0x20], 0x17 | | if (*((rsp + 0x20)) != 0x17) { 0x0044b1cc jne 0x44b1d1 | goto label_7; | } | } 0x0044b1ce mov rax, r13 | rax = r13; | label_7: 0x0044b1d1 mov rdx, qword [rsp + 0x18] | rdx = *((rsp + 0x18)); 0x0044b1d6 inc rdx | rdx++; | if (rdx == 0) { 0x0044b1d9 je 0x44b1f0 | goto label_8; | } 0x0044b1db cmp qword [r15 + 0x20], 0x17 | | if (*((r15 + 0x20)) != 0x17) { 0x0044b1e0 je 0x44b1e5 | 0x0044b1e2 mov r15, qword [r15] | r15 = *(r15); | } 0x0044b1e5 mov rdi, rax | 0x0044b1e8 mov rsi, r15 | 0x0044b1eb call 0x404c70 | memcpy (rax, r15, rdx); | } | label_8: 0x0044b1f0 mov byte [rsp + 0x30], 1 | *((rsp + 0x30)) = 1; 0x0044b1f5 jmp 0x44b70d | goto label_4; 0x0044b1fa cmp byte [rsp + 8], 0 | | if (*((rsp + 8)) != 0) { 0x0044b1ff je 0x44b206 | 0x0044b201 mov byte [rsp + 8], 0 | *((rsp + 8)) = 0; | } 0x0044b206 mov rax, qword [r15] | rax = *(r15); 0x0044b209 mov qword [rsp], rax | *(rsp) = rax; 0x0044b20d test rax, rax | | if (rax >= 0) { 0x0044b210 js 0x44b2bf | 0x0044b216 mov edi, 0x7054ec | 0x0044b21b call 0x47f640 | eax = BloombergLP::bsls::Review::updateCount(BloombergLP::bsls::Atomic_TypeTraits::Int*) (method.BloombergLP::bdlt::Datetime.validateAndTraceLogRepresentation___const::lambda__1::operator_____const::count); 0x0044b220 mov qword [rsp + 0x60], 0x4ae3f8 | *((rsp + 0x60)) = "detected invalid 'bdlt::Datetime'; see TEAM 579660115"; 0x0044b229 mov qword [rsp + 0x68], 0x4ae42e | *((rsp + 0x68)) = "/home/parsa/experiments/assumptions/crush/ccm-none/groups/bdl/bdlt/bdlt_datetime.h"; 0x0044b232 mov dword [rsp + 0x70], 0x466 | *((rsp + 0x70)) = 0x466; 0x0044b23a mov qword [rsp + 0x78], 0x4cdd92 | *((rsp + 0x78)) = "R-INV"; 0x0044b243 mov dword [rsp + 0x80], eax | *((rsp + 0x80)) = eax; 0x0044b24a lea rdi, [rsp + 0x60] | rdi = rsp + 0x60; 0x0044b24f call 0x47f660 | BloombergLP::bsls::Review::invokeHandler(BloombergLP::bsls::ReviewViolationconst&) (); 0x0044b254 mov rax, qword [rsp] | rax = *(rsp); 0x0044b258 mov rcx, rax | rcx = *(rsp); 0x0044b25b shr rcx, 0x20 | rcx >>= 0x20; 0x0044b25f shl rax, 0x25 | rax <<= 0x25; 0x0044b263 movabs rdx, 0x7fffffe000000000 | rdx = 0x7fffffe000000000; 0x0044b26d add rdx, rax | rdx += rax; 0x0044b270 imul rcx, rcx, 0x3e8 | rcx *= 0x3e8; 0x0044b277 movabs rax, 0x8000000000000000 | rax = 0x8000000000000000; 0x0044b281 or rax, rdx | rax |= rdx; 0x0044b284 or rax, rcx | rax |= rcx; 0x0044b287 jmp 0x44b2bf | goto label_5; 0x0044b289 cmp byte [rsp + 8], 0 | | if (*((rsp + 8)) != 0) { 0x0044b28e je 0x44b295 | 0x0044b290 mov byte [rsp + 8], 0 | *((rsp + 8)) = 0; | } 0x0044b295 movabs rbx, 0x4000000000 | rbx = 0x4000000000; 0x0044b29f mov rax, qword [r15] | rax = *(r15); 0x0044b2a2 mov qword [rsp], rax | *(rsp) = rax; 0x0044b2a6 cmp rax, rbx | | if (rax < rbx) { 0x0044b2a9 jl 0x44b749 | goto label_9; | } 0x0044b2af movabs rcx, 0xffffffbfffffffff | rcx = 0xffffffbfffffffff; 0x0044b2b9 and rax, rcx | rax &= rcx; | label_1: 0x0044b2bc or rax, rbx | rax |= rbx; | } | label_5: 0x0044b2bf mov qword [rsp], rax | *(rsp) = rax; 0x0044b2c3 mov byte [rsp + 8], 1 | *((rsp + 8)) = 1; 0x0044b2c8 jmp 0x44b70d | goto label_4; 0x0044b2cd mov rbx, qword [rsp + 0x28] | rbx = *((rsp + 0x28)); 0x0044b2d2 cmp byte [rsp + 0x20], 0 | | if (*((rsp + 0x20)) != 0) { 0x0044b2d7 je 0x44b2f2 | 0x0044b2d9 mov byte [rsp + 0x20], 0 | *((rsp + 0x20)) = 0; 0x0044b2de mov rsi, qword [rsp] | rsi = *(rsp); 0x0044b2e2 test rsi, rsi | | if (rsi == 0) { 0x0044b2e5 je 0x44b2f2 | goto label_10; | } 0x0044b2e7 mov rdi, qword [rsp + 0x18] | rdi = *((rsp + 0x18)); 0x0044b2ec mov rax, qword [rdi] | rax = *(rdi); 0x0044b2ef call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_10: 0x0044b2f2 test rbx, rbx | | if (rbx == 0) { 0x0044b2f5 jne 0x44b30b | 0x0044b2f7 mov rbx, qword [rip + 0x2ba92a] | rbx = BloombergLP::bslma::Default::s_defaultAllocator; 0x0044b2fe test rbx, rbx | | if (rbx != 0) { 0x0044b301 jne 0x44b30b | goto label_11; | } 0x0044b303 call 0x47ce20 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0044b308 mov rbx, rax | rbx = rax; | } | label_11: 0x0044b30b mov qword [rsp + 0x60], rbx | *((rsp + 0x60)) = rbx; 0x0044b310 mov rdi, rsp | 0x0044b313 lea rdx, [rsp + 0x60] | 0x0044b318 mov rsi, r15 | 0x0044b31b call 0x48d7a0 | bsl::vector>::vector(bsl::vector>const&,bsl::allocatorconst&) (rsp, r15, rsp + 0x60); 0x0044b320 jmp 0x44b708 | goto label_12; 0x0044b325 mov rbx, qword [rsp + 0x28] | rbx = *((rsp + 0x28)); 0x0044b32a cmp byte [rsp + 0x20], 0 | | if (*((rsp + 0x20)) != 0) { 0x0044b32f je 0x44b34a | 0x0044b331 mov byte [rsp + 0x20], 0 | *((rsp + 0x20)) = 0; 0x0044b336 mov rsi, qword [rsp] | rsi = *(rsp); 0x0044b33a test rsi, rsi | | if (rsi == 0) { 0x0044b33d je 0x44b34a | goto label_13; | } 0x0044b33f mov rdi, qword [rsp + 0x18] | rdi = *((rsp + 0x18)); 0x0044b344 mov rax, qword [rdi] | rax = *(rdi); 0x0044b347 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_13: 0x0044b34a test rbx, rbx | | if (rbx == 0) { 0x0044b34d jne 0x44b363 | 0x0044b34f mov rbx, qword [rip + 0x2ba8d2] | rbx = BloombergLP::bslma::Default::s_defaultAllocator; 0x0044b356 test rbx, rbx | | if (rbx != 0) { 0x0044b359 jne 0x44b363 | goto label_14; | } 0x0044b35b call 0x47ce20 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0044b360 mov rbx, rax | rbx = rax; | } | label_14: 0x0044b363 mov qword [rsp + 0x60], rbx | *((rsp + 0x60)) = rbx; 0x0044b368 mov rdi, rsp | 0x0044b36b lea rdx, [rsp + 0x60] | 0x0044b370 mov rsi, r15 | 0x0044b373 call 0x4934d0 | bsl::vector>::vector(bsl::vector>const&,bsl::allocatorconst&) (rsp, r15, rsp + 0x60); 0x0044b378 jmp 0x44b708 | goto label_12; 0x0044b37d mov rbx, qword [rsp + 0x28] | rbx = *((rsp + 0x28)); 0x0044b382 cmp byte [rsp + 0x20], 0 | | if (*((rsp + 0x20)) != 0) { 0x0044b387 je 0x44b3a2 | 0x0044b389 mov byte [rsp + 0x20], 0 | *((rsp + 0x20)) = 0; 0x0044b38e mov rsi, qword [rsp] | rsi = *(rsp); 0x0044b392 test rsi, rsi | | if (rsi == 0) { 0x0044b395 je 0x44b3a2 | goto label_15; | } 0x0044b397 mov rdi, qword [rsp + 0x18] | rdi = *((rsp + 0x18)); 0x0044b39c mov rax, qword [rdi] | rax = *(rdi); 0x0044b39f call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_15: 0x0044b3a2 test rbx, rbx | | if (rbx == 0) { 0x0044b3a5 jne 0x44b3bb | 0x0044b3a7 mov rbx, qword [rip + 0x2ba87a] | rbx = BloombergLP::bslma::Default::s_defaultAllocator; 0x0044b3ae test rbx, rbx | | if (rbx != 0) { 0x0044b3b1 jne 0x44b3bb | goto label_16; | } 0x0044b3b3 call 0x47ce20 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0044b3b8 mov rbx, rax | rbx = rax; | } | label_16: 0x0044b3bb mov qword [rsp + 0x60], rbx | *((rsp + 0x60)) = rbx; 0x0044b3c0 mov rdi, rsp | 0x0044b3c3 lea rdx, [rsp + 0x60] | 0x0044b3c8 mov rsi, r15 | 0x0044b3cb call 0x498380 | bsl::vector>::vector(bsl::vector>const&,bsl::allocatorconst&) (rsp, r15, rsp + 0x60); 0x0044b3d0 jmp 0x44b708 | goto label_12; 0x0044b3d5 mov rbx, qword [rsp + 0x28] | rbx = *((rsp + 0x28)); 0x0044b3da cmp byte [rsp + 0x20], 0 | | if (*((rsp + 0x20)) != 0) { 0x0044b3df je 0x44b3fa | 0x0044b3e1 mov byte [rsp + 0x20], 0 | *((rsp + 0x20)) = 0; 0x0044b3e6 mov rsi, qword [rsp] | rsi = *(rsp); 0x0044b3ea test rsi, rsi | | if (rsi == 0) { 0x0044b3ed je 0x44b3fa | goto label_17; | } 0x0044b3ef mov rdi, qword [rsp + 0x18] | rdi = *((rsp + 0x18)); 0x0044b3f4 mov rax, qword [rdi] | rax = *(rdi); 0x0044b3f7 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_17: 0x0044b3fa test rbx, rbx | | if (rbx == 0) { 0x0044b3fd jne 0x44b413 | 0x0044b3ff mov rbx, qword [rip + 0x2ba822] | rbx = BloombergLP::bslma::Default::s_defaultAllocator; 0x0044b406 test rbx, rbx | | if (rbx != 0) { 0x0044b409 jne 0x44b413 | goto label_18; | } 0x0044b40b call 0x47ce20 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0044b410 mov rbx, rax | rbx = rax; | } | label_18: 0x0044b413 mov qword [rsp + 0x60], rbx | *((rsp + 0x60)) = rbx; 0x0044b418 mov rdi, rsp | 0x0044b41b lea rdx, [rsp + 0x60] | 0x0044b420 mov rsi, r15 | 0x0044b423 call 0x49bef0 | bsl::vector>::vector(bsl::vector>const&,bsl::allocatorconst&) (rsp, r15, rsp + 0x60); 0x0044b428 jmp 0x44b708 | goto label_12; 0x0044b42d mov r12, qword [rsp + 0x28] | r12 = *((rsp + 0x28)); 0x0044b432 cmp byte [rsp + 0x20], 0 | | if (*((rsp + 0x20)) == 0) { 0x0044b437 je 0x44b674 | goto label_19; | } 0x0044b43d mov byte [rsp + 0x20], 0 | *((rsp + 0x20)) = 0; 0x0044b442 mov rbx, qword [rsp] | rbx = *(rsp); 0x0044b446 test rbx, rbx | | if (rbx == 0) { 0x0044b449 je 0x44b674 | goto label_19; | } 0x0044b44f mov rbp, qword [rsp + 8] | rbp = *((rsp + 8)); 0x0044b454 cmp rbx, rbp | | if (rbx != rbp) { 0x0044b457 jne 0x44b475 | goto label_20; | } 0x0044b459 jmp 0x44b666 | goto label_21; | do { | label_0: 0x0044b460 mov qword [rbx + 0x18], 0xffffffffffffffff | *((rbx + 0x18)) = 0xffffffffffffffff; 0x0044b468 add rbx, 0x30 | rbx += 0x30; 0x0044b46c cmp rbp, rbx | | if (rbp == rbx) { 0x0044b46f je 0x44b662 | goto label_22; | } | label_20: 0x0044b475 cmp qword [rbx + 0x20], 0x17 | 0x0044b47a je 0x44b460 | | } while (*((rbx + 0x20)) == 0x17); 0x0044b47c mov rsi, qword [rbx] | rsi = *(rbx); 0x0044b47f mov rdi, qword [rbx + 0x28] | rdi = *((rbx + 0x28)); 0x0044b483 mov rax, qword [rdi] | rax = *(rdi); 0x0044b486 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x0044b489 jmp 0x44b460 | goto label_0; 0x0044b48b mov r12, qword [rsp + 0x28] | r12 = *((rsp + 0x28)); 0x0044b490 cmp byte [rsp + 0x20], 0 | | if (*((rsp + 0x20)) != 0) { 0x0044b495 je 0x44b4b0 | 0x0044b497 mov byte [rsp + 0x20], 0 | *((rsp + 0x20)) = 0; 0x0044b49c mov rsi, qword [rsp] | rsi = *(rsp); 0x0044b4a0 test rsi, rsi | | if (rsi == 0) { 0x0044b4a3 je 0x44b4b0 | goto label_23; | } 0x0044b4a5 mov rdi, qword [rsp + 0x18] | rdi = *((rsp + 0x18)); 0x0044b4aa mov rax, qword [rdi] | rax = *(rdi); 0x0044b4ad call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_23: 0x0044b4b0 test r12, r12 | | if (r12 == 0) { 0x0044b4b3 jne 0x44b4c9 | 0x0044b4b5 mov r12, qword [rip + 0x2ba76c] | r12 = BloombergLP::bslma::Default::s_defaultAllocator; 0x0044b4bc test r12, r12 | | if (r12 != 0) { 0x0044b4bf jne 0x44b4c9 | goto label_24; | } 0x0044b4c1 call 0x47ce20 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0044b4c6 mov r12, rax | r12 = rax; | } | label_24: 0x0044b4c9 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0044b4cc movaps xmmword [rsp], xmm0 | *(rsp) = xmm0; 0x0044b4d0 mov qword [rsp + 0x10], 0 | *((rsp + 0x10)) = 0; 0x0044b4d9 mov qword [rsp + 0x18], r12 | *((rsp + 0x18)) = r12; 0x0044b4de mov rbx, qword [r15 + 8] | rbx = *((r15 + 8)); 0x0044b4e2 sub rbx, qword [r15] | rbx -= *(r15); | if (rbx == 0) { 0x0044b4e5 je 0x44b708 | goto label_12; | } 0x0044b4eb mov rax, qword [r12] | rax = *(r12); 0x0044b4ef mov rdi, r12 | rdi = r12; 0x0044b4f2 mov rsi, rbx | rsi = rbx; 0x0044b4f5 call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x0044b4f8 jmp 0x44b61a | goto label_25; 0x0044b4fd mov r12, qword [rsp + 0x28] | r12 = *((rsp + 0x28)); 0x0044b502 cmp byte [rsp + 0x20], 0 | | if (*((rsp + 0x20)) != 0) { 0x0044b507 je 0x44b522 | 0x0044b509 mov byte [rsp + 0x20], 0 | *((rsp + 0x20)) = 0; 0x0044b50e mov rsi, qword [rsp] | rsi = *(rsp); 0x0044b512 test rsi, rsi | | if (rsi == 0) { 0x0044b515 je 0x44b522 | goto label_26; | } 0x0044b517 mov rdi, qword [rsp + 0x18] | rdi = *((rsp + 0x18)); 0x0044b51c mov rax, qword [rdi] | rax = *(rdi); 0x0044b51f call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_26: 0x0044b522 test r12, r12 | | if (r12 == 0) { 0x0044b525 jne 0x44b53b | 0x0044b527 mov r12, qword [rip + 0x2ba6fa] | r12 = BloombergLP::bslma::Default::s_defaultAllocator; 0x0044b52e test r12, r12 | | if (r12 != 0) { 0x0044b531 jne 0x44b53b | goto label_27; | } 0x0044b533 call 0x47ce20 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0044b538 mov r12, rax | r12 = rax; | } | label_27: 0x0044b53b xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0044b53e movaps xmmword [rsp], xmm0 | *(rsp) = xmm0; 0x0044b542 mov qword [rsp + 0x10], 0 | *((rsp + 0x10)) = 0; 0x0044b54b mov qword [rsp + 0x18], r12 | *((rsp + 0x18)) = r12; 0x0044b550 mov rbx, qword [r15 + 8] | rbx = *((r15 + 8)); 0x0044b554 sub rbx, qword [r15] | rbx -= *(r15); | if (rbx == 0) { 0x0044b557 je 0x44b708 | goto label_12; | } 0x0044b55d mov rax, qword [r12] | rax = *(r12); 0x0044b561 mov rdi, r12 | rdi = r12; 0x0044b564 mov rsi, rbx | rsi = rbx; 0x0044b567 call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x0044b56a sar rbx, 2 | rbx >>= 2; 0x0044b56e mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x0044b573 mov qword [rsp], rax | *(rsp) = rax; 0x0044b577 mov qword [rsp + 0x10], rbx | *((rsp + 0x10)) = rbx; 0x0044b57c mov rsi, qword [r15] | rsi = *(r15); 0x0044b57f mov rdx, qword [r15 + 8] | rdx = *((r15 + 8)); 0x0044b583 sub rdx, rsi | rdx -= rsi; | if (rdx == 0) { 0x0044b586 je 0x44b756 | goto label_28; | } 0x0044b58c mov rdi, rax | 0x0044b58f call 0x404c70 | memcpy (rax, rsi, rdx); 0x0044b594 mov rcx, qword [r15 + 8] | rcx = *((r15 + 8)); 0x0044b598 mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x0044b59d sub rcx, qword [r15] | rcx -= *(r15); 0x0044b5a0 sar rcx, 2 | rcx >>= 2; 0x0044b5a4 lea rax, [rax + rcx*4] | rax = rax + rcx*4; 0x0044b5a8 jmp 0x44b658 | goto label_2; 0x0044b5ad mov r12, qword [rsp + 0x28] | r12 = *((rsp + 0x28)); 0x0044b5b2 cmp byte [rsp + 0x20], 0 | | if (*((rsp + 0x20)) != 0) { 0x0044b5b7 je 0x44b5d2 | 0x0044b5b9 mov byte [rsp + 0x20], 0 | *((rsp + 0x20)) = 0; 0x0044b5be mov rsi, qword [rsp] | rsi = *(rsp); 0x0044b5c2 test rsi, rsi | | if (rsi == 0) { 0x0044b5c5 je 0x44b5d2 | goto label_29; | } 0x0044b5c7 mov rdi, qword [rsp + 0x18] | rdi = *((rsp + 0x18)); 0x0044b5cc mov rax, qword [rdi] | rax = *(rdi); 0x0044b5cf call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_29: 0x0044b5d2 test r12, r12 | | if (r12 == 0) { 0x0044b5d5 jne 0x44b5eb | 0x0044b5d7 mov r12, qword [rip + 0x2ba64a] | r12 = BloombergLP::bslma::Default::s_defaultAllocator; 0x0044b5de test r12, r12 | | if (r12 != 0) { 0x0044b5e1 jne 0x44b5eb | goto label_30; | } 0x0044b5e3 call 0x47ce20 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0044b5e8 mov r12, rax | r12 = rax; | } | label_30: 0x0044b5eb xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0044b5ee movaps xmmword [rsp], xmm0 | *(rsp) = xmm0; 0x0044b5f2 mov qword [rsp + 0x10], 0 | *((rsp + 0x10)) = 0; 0x0044b5fb mov qword [rsp + 0x18], r12 | *((rsp + 0x18)) = r12; 0x0044b600 mov rbx, qword [r15 + 8] | rbx = *((r15 + 8)); 0x0044b604 sub rbx, qword [r15] | rbx -= *(r15); | if (rbx == 0) { 0x0044b607 je 0x44b708 | goto label_12; | } 0x0044b60d mov rax, qword [r12] | rax = *(r12); 0x0044b611 mov rdi, r12 | rdi = r12; 0x0044b614 mov rsi, rbx | rsi = rbx; 0x0044b617 call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); | label_25: 0x0044b61a sar rbx, 3 | rbx >>= 3; 0x0044b61e mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x0044b623 mov qword [rsp], rax | *(rsp) = rax; 0x0044b627 mov qword [rsp + 0x10], rbx | *((rsp + 0x10)) = rbx; 0x0044b62c mov rsi, qword [r15] | rsi = *(r15); 0x0044b62f mov rdx, qword [r15 + 8] | rdx = *((r15 + 8)); 0x0044b633 sub rdx, rsi | rdx -= rsi; | if (rdx == 0) { 0x0044b636 je 0x44b742 | goto label_31; | } 0x0044b63c mov rdi, rax | 0x0044b63f call 0x404c70 | memcpy (rax, rsi, rdx); 0x0044b644 mov rcx, qword [r15 + 8] | rcx = *((r15 + 8)); 0x0044b648 mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x0044b64d sub rcx, qword [r15] | rcx -= *(r15); 0x0044b650 sar rcx, 3 | rcx >>= 3; | do { 0x0044b654 lea rax, [rax + rcx*8] | rax = rax + rcx*8; | label_2: 0x0044b658 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x0044b65d jmp 0x44b708 | goto label_12; | label_22: 0x0044b662 mov rbx, qword [rsp] | rbx = *(rsp); | label_21: 0x0044b666 mov rdi, qword [rsp + 0x18] | rdi = *((rsp + 0x18)); 0x0044b66b mov rax, qword [rdi] | rax = *(rdi); 0x0044b66e mov rsi, rbx | rsi = rbx; 0x0044b671 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | label_19: 0x0044b674 test r12, r12 | | if (r12 == 0) { 0x0044b677 jne 0x44b68d | 0x0044b679 mov r12, qword [rip + 0x2ba5a8] | r12 = BloombergLP::bslma::Default::s_defaultAllocator; 0x0044b680 test r12, r12 | | if (r12 != 0) { 0x0044b683 jne 0x44b68d | goto label_32; | } 0x0044b685 call 0x47ce20 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0044b68a mov r12, rax | r12 = rax; | } | label_32: 0x0044b68d xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0044b690 movaps xmmword [rsp], xmm0 | *(rsp) = xmm0; 0x0044b694 mov qword [rsp + 0x10], 0 | *((rsp + 0x10)) = 0; 0x0044b69d mov qword [rsp + 0x18], r12 | *((rsp + 0x18)) = r12; 0x0044b6a2 mov rbx, qword [r15 + 8] | rbx = *((r15 + 8)); 0x0044b6a6 sub rbx, qword [r15] | rbx -= *(r15); | if (rbx != 0) { 0x0044b6a9 je 0x44b708 | 0x0044b6ab mov rax, qword [r12] | rax = *(r12); 0x0044b6af mov rdi, r12 | rdi = r12; 0x0044b6b2 mov rsi, rbx | rsi = rbx; 0x0044b6b5 call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x0044b6b8 mov r12, rax | r12 = rax; 0x0044b6bb sar rbx, 4 | rbx >>= 4; 0x0044b6bf movabs rax, 0xaaaaaaaaaaaaaaab | rax = 0xaaaaaaaaaaaaaaab; 0x0044b6c9 imul rax, rbx | rax *= rbx; 0x0044b6cd mov qword [rsp + 8], r12 | *((rsp + 8)) = r12; 0x0044b6d2 mov qword [rsp], r12 | *(rsp) = r12; 0x0044b6d6 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0044b6db mov rsi, qword [r15] | 0x0044b6de mov rdx, qword [r15 + 8] | 0x0044b6e2 mov rax, qword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x0044b6e7 mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x0044b6ec lea rcx, [rsp + 0x60] | 0x0044b6f1 mov rdi, r12 | 0x0044b6f4 xor r8d, r8d | r8d = 0; 0x0044b6f7 call 0x454330 | voidBloombergLP::bslalg::ArrayPrimitives_Imp::copyConstruct,bsl::allocator>,bsl::basic_string,bsl::allocator>const*,bsl::allocator,bsl::allocator>>>(bsl::basic_string,bsl::allocator>*,bsl::basic_string,bsl::allocator>const*,bsl::basic_string,bsl::allocator>const*,bsl::allocator,bsl::allocator>>,BloombergLP::bslmf::MetaInt<0>*) (r12, *(r15), *((r15 + 8)), rsp + 0x60); 0x0044b6fc mov rax, qword [r15 + 8] | rax = *((r15 + 8)); 0x0044b700 sub rax, qword [r15] | rax -= *(r15); 0x0044b703 add qword [rsp + 8], rax | *((rsp + 8)) += rax; | } | label_12: 0x0044b708 mov byte [rsp + 0x20], 1 | *((rsp + 0x20)) = 1; | label_4: 0x0044b70d mov rsi, rsp | 0x0044b710 mov rdi, r14 | 0x0044b713 call 0x4626f0 | BloombergLP::balcl::OccurrenceInfo::setDefaultValue(BloombergLP::balcl::OptionValueconst&) (r14, rsp); 0x0044b718 mov edx, dword [rsp + 0x40] | edx = *((rsp + 0x40)); 0x0044b71c test edx, edx | | if (edx != 0) { 0x0044b71e je 0x44b72d | 0x0044b720 mov rdi, rsp | 0x0044b723 lea rsi, [rsp + 0x60] | 0x0044b728 call 0x454110 | _ZN11BloombergLP4bdlb10VariantImpINS_5bslmf8TypeListIJNS0_13NullableValueIbEENS4_IcEENS4_IiEENS4_IxEENS4_IdEENS4_IN3bsl12basic_stringIcNSt3_111char_traitsIcEENSA_9allocatorIcEEEEEENS4_INS_4bdlt8DatetimeEEENS4_INSJ_4DateEEENS4_INSJ_4TimeEEENS4_INSA_6vect (rsp, rsp + 0x60); | } | label_3: 0x0044b72d mov rax, r14 | rax = r14; 0x0044b730 add rsp, 0x88 | 0x0044b737 pop rbx | 0x0044b738 pop r12 | 0x0044b73a pop r13 | 0x0044b73c pop r14 | 0x0044b73e pop r15 | 0x0044b740 pop rbp | 0x0044b741 ret | return rax; | label_31: 0x0044b742 xor ecx, ecx | ecx = 0; 0x0044b744 jmp 0x44b654 | | } while (1); | label_9: 0x0044b749 mov rdi, rsp | 0x0044b74c call 0x478ca0 | BloombergLP::bdlt::Time::invalidMicrosecondsFromMidnight()const (rsp); 0x0044b751 jmp 0x44b2bc | goto label_1; | label_28: 0x0044b756 xor ecx, ecx | ecx = 0; 0x0044b758 lea rax, [rax + rcx*4] | rax = rax + rcx*4; 0x0044b75c jmp 0x44b658 | goto label_2; | }