; assembly | /* r2dec pseudo code output */ | /* balcl_commandline.t/assume @ 0x457100 */ | #include | ; (fcn) method.BloombergLP::balcl::CommandLine.parse_std::__1::basic_ostream_char__std::__1::char_traits_char____ () | int64_t method_BloombergLP::balcl::CommandLine_parse_std::_1::basic_ostream_char_std::_1::char_traits_char_ (int64_t arg2, int64_t arg1) { | int64_t var_8h; | int64_t var_17h; | int64_t var_18h; | int64_t var_30h; | uint32_t var_38h; | int64_t var_40h; | int64_t var_48h; | int64_t var_50h; | int64_t var_58h; | uint32_t var_60h; | rsi = arg2; | rdi = arg1; | /* BloombergLP::balcl::CommandLine::parse(std::__1::basic_ostream >&) */ 0x00457100 push rbp | 0x00457101 push r15 | 0x00457103 push r14 | 0x00457105 push r13 | 0x00457107 push r12 | 0x00457109 push rbx | 0x0045710a sub rsp, 0x68 | 0x0045710e mov qword [rsp], rsi | *(rsp) = rsi; 0x00457112 mov r15, rdi | r15 = rdi; 0x00457115 mov rax, qword [rdi + 0x68] | rax = *((rdi + 0x68)); 0x00457119 mov rcx, qword [rdi + 0x70] | rcx = *((rdi + 0x70)); 0x0045711d sub rcx, rax | rcx -= rax; 0x00457120 sar rcx, 4 | rcx >>= 4; 0x00457124 movabs r12, 0xaaaaaaaaaaaaaaab | r12 = 0xaaaaaaaaaaaaaaab; 0x0045712e imul rcx, r12 | rcx *= r12; 0x00457132 cmp rcx, 2 | | if (rcx < 2) { 0x00457136 jb 0x457c7a | goto label_8; | } 0x0045713c mov r14d, 1 | r14d = 1; 0x00457142 mov edx, 1 | edx = 1; 0x00457147 xor ebx, ebx | ebx = 0; 0x00457149 lea r13, [rsp + 0x18] | r13 = rsp + 0x18; 0x0045714e movabs rdi, 0x100000000 | rdi = 0x100000000; 0x00457158 jmp 0x45718c | goto label_9; | label_0: 0x0045715a mov r14, qword [rsp + 8] | r14 = *((rsp + 8)); 0x0045715f nop | | do { 0x00457160 movabs r12, 0xaaaaaaaaaaaaaaab | r12 = 0xaaaaaaaaaaaaaaab; | label_3: 0x0045716a inc r14d | r14d++; 0x0045716d mov rax, qword [r15 + 0x68] | rax = *((r15 + 0x68)); 0x00457171 mov rcx, qword [r15 + 0x70] | rcx = *((r15 + 0x70)); 0x00457175 sub rcx, rax | rcx -= rax; 0x00457178 sar rcx, 4 | rcx >>= 4; 0x0045717c imul rcx, r12 | rcx *= r12; 0x00457180 mov rdx, r14 | rdx = r14; 0x00457183 cmp rcx, r14 | | if (rcx <= r14) { 0x00457186 jbe 0x457c7a | goto label_8; | } | label_9: 0x0045718c lea rcx, [rdx + rdx*2] | rcx = rdx * 3; 0x00457190 shl rcx, 4 | rcx <<= 4; 0x00457194 lea rsi, [rax + rcx] | rsi = rax + rcx; 0x00457198 mov qword [rsp + 0x50], rcx | *((rsp + 0x50)) = rcx; 0x0045719d mov rcx, qword [rax + rcx + 0x20] | rcx = *((rax + rcx + 0x20)); 0x004571a2 cmp rcx, 0x17 | | if (rcx == 0x17) { 0x004571a6 jne 0x4571d0 | 0x004571a8 cmp byte [rsi], 0x2d | | if (*(rsi) != 0x2d) { 0x004571ab jne 0x457210 | goto label_10; | } 0x004571ad mov qword [rsp + 0x60], rdx | *((rsp + 0x60)) = rdx; 0x004571b2 mov qword [rsp + 8], r14 | *((rsp + 8)) = r14; 0x004571b7 mov dl, byte [rsi + 1] | dl = *((rsi + 1)); 0x004571ba cmp dl, 0x2d | | if (dl == 0x2d) { 0x004571bd je 0x4572b6 | goto label_11; | } 0x004571c3 test dl, dl | | if (dl != 0) { 0x004571c5 jne 0x4572c6 | goto label_12; | } 0x004571cb jmp 0x457907 | goto label_13; | } 0x004571d0 mov rbp, qword [rsi] | rbp = *(rsi); 0x004571d3 cmp byte [rbp], 0x2d | | if (*(rbp) == 0x2d) { 0x004571d7 jne 0x457210 | 0x004571d9 mov qword [rsp + 0x60], rdx | *((rsp + 0x60)) = rdx; 0x004571de mov qword [rsp + 8], r14 | *((rsp + 8)) = r14; 0x004571e3 mov r12b, byte [rbp + 1] | r12b = *((rbp + 1)); 0x004571e7 cmp r12b, 0x2d | | if (r12b == 0x2d) { 0x004571eb je 0x4572e4 | goto label_14; | } 0x004571f1 test r12b, r12b | | if (r12b == 0) { 0x004571f4 je 0x457907 | goto label_13; | } 0x004571fa cmp r12b, 0x2d | | if (r12b == 0x2d) { 0x004571fe je 0x4572fb | goto label_15; | } 0x00457204 jmp 0x457370 | goto label_16; | } | label_10: 0x00457210 mov rax, qword [r15 + 0x40] | rax = *((r15 + 0x40)); 0x00457214 mov rcx, qword [r15 + 0x48] | rcx = *((r15 + 0x48)); 0x00457218 sub rcx, rax | rcx -= rax; 0x0045721b sar rcx, 2 | rcx >>= 2; 0x0045721f cmp rcx, rbx | | if (rcx <= rbx) { 0x00457222 jbe 0x45787f | goto label_17; | } 0x00457228 movsxd rbp, dword [rax + rbx*4] | rbp = *((rax + rbx*4)); 0x0045722c mov rdi, rbp | 0x0045722f shl rdi, 5 | rdi <<= 5; 0x00457233 add rdi, qword [r15 + 0x20] | rdi += *((r15 + 0x20)); 0x00457237 mov dword [rsp + 0x18], r14d | *((rsp + 0x18)) = r14d; 0x0045723c mov rsi, r13 | 0x0045723f call 0x493bd0 | bsl::vector>::push_back(int&&) (rbp, r13); 0x00457244 mov r13, rbx | r13 = rbx; 0x00457247 lea rbx, [rbp + rbp*4] | rbx = rbp + rbp*4; 0x0045724c shl rbx, 4 | rbx <<= 4; 0x00457250 add rbx, qword [r15 + 0xa8] | rbx += *((r15 + 0xa8)); 0x00457257 mov r12, qword [rsp + 0x50] | r12 = *((rsp + 0x50)); 0x0045725c add r12, qword [r15 + 0x68] | r12 += *((r15 + 0x68)); 0x00457260 imul rbp, rbp, 0x118 | rbp *= 0x118; 0x00457267 mov rdi, qword [r15] | 0x0045726a add rdi, rbp | rdi += rbp; 0x0045726d call 0x465000 | rax = BloombergLP::balcl::Option::typeInfo()const (*(r15)); 0x00457272 mov rdi, rbx | 0x00457275 mov rsi, r12 | 0x00457278 mov rdx, rax | 0x0045727b mov rcx, qword [rsp] | 0x0045727f call 0x46c0d0 | al = BloombergLP::balcl::TypeInfoUtil::parseAndValidate(BloombergLP::balcl::OptionValue*,bsl::basic_string,bsl::allocator>const&,BloombergLP::balcl::TypeInfoconst&,std::_1::basic_ostream>&) (rbx, r12, rax, *(rsp)); 0x00457284 test al, al | | if (al == 0) { 0x00457286 je 0x4578e3 | goto label_18; | } 0x0045728c add rbp, qword [r15] | rbp += *(r15); 0x0045728f mov rdi, rbp | 0x00457292 call 0x464f70 | al = BloombergLP::balcl::Option::isArray()const (rbp); 0x00457297 xor al, 1 | al ^= 1; 0x00457299 movzx eax, al | eax = (int32_t) al; 0x0045729c add r13, rax | r13 += rax; 0x0045729f mov rbx, r13 | rbx = r13; 0x004572a2 lea r13, [rsp + 0x18] | r13 = rsp + 0x18; 0x004572a7 movabs rdi, 0x100000000 | rdi = 0x100000000; 0x004572b1 jmp 0x457160 | | } while (1); | label_11: 0x004572b6 cmp byte [rsi + 2], 0 | | if (*((rsi + 2)) == 0) { 0x004572ba je 0x45790e | goto label_19; | } 0x004572c0 cmp rcx, 0x17 | | if (rcx == 0x17) { 0x004572c4 jne 0x4572ee | | label_12: 0x004572c6 mov r12b, byte [rsi + 1] | r12b = *((rsi + 1)); 0x004572ca mov rbp, rsi | 0x004572cd cmp r12b, 0x2d | | if (r12b != 0x2d) { 0x004572d1 jne 0x457370 | goto label_16; | } 0x004572d7 mov qword [rsp + 0x48], rbx | *((rsp + 0x48)) = rbx; 0x004572dc mov bl, byte [rsi + 2] | bl = *((rsi + 2)); 0x004572df mov rbp, rsi | 0x004572e2 jmp 0x457303 | goto label_20; | label_14: 0x004572e4 cmp byte [rbp + 2], 0 | | if (*((rbp + 2)) == 0) { 0x004572e8 je 0x45790e | goto label_19; | } | } 0x004572ee mov rbp, qword [rsi] | rbp = *(rsi); 0x004572f1 mov r12b, byte [rbp + 1] | r12b = *((rbp + 1)); 0x004572f5 cmp r12b, 0x2d | | if (r12b != 0x2d) { 0x004572f9 jne 0x457370 | goto label_16; | } | label_15: 0x004572fb mov qword [rsp + 0x48], rbx | *((rsp + 0x48)) = rbx; 0x00457300 mov bl, byte [rbp + 2] | bl = *((rbp + 2)); | label_20: 0x00457303 cmp bl, 0x2d | | if (bl == 0x2d) { 0x00457306 je 0x45792f | goto label_21; | } 0x0045730c lea r13, [rbp + 2] | r13 = rbp + 2; 0x00457310 lea r14d, [rbp + 3] | r14d = rbp + 3; 0x00457314 xor edx, edx | edx = 0; 0x00457316 xor r12d, r12d | r12d = 0; 0x00457319 test bl, bl | | if (bl == 0) { 0x0045731b je 0x45733c | goto label_22; | } 0x0045731d nop dword [rax] | | do { 0x00457320 cmp bl, 0x3d | | if (bl == 0x3d) { 0x00457323 je 0x4574fb | goto label_23; | } 0x00457329 movzx ebx, byte [rbp + r12 + 3] | ebx = *((rbp + r12 + 3)); 0x0045732f inc r14d | r14d++; 0x00457332 inc r12 | r12++; 0x00457335 add rdx, rdi | rdx += rdi; 0x00457338 test bl, bl | 0x0045733a jne 0x457320 | | } while (bl != 0); | label_22: 0x0045733c cmp rcx, 0x17 | | if (rcx != 0x17) { 0x00457340 je 0x457345 | 0x00457342 mov rsi, qword [rsi] | rsi = *(rsi); | } 0x00457345 add rsi, 2 | rsi += 2; 0x00457349 mov rcx, qword [rsp + 0x50] | rcx = *((rsp + 0x50)); 0x0045734e mov rdx, qword [rax + rcx + 0x18] | rdx = *((rax + rcx + 0x18)); 0x00457353 shl rdx, 0x20 | rdx <<= 0x20; 0x00457357 movabs rax, 0xfffffffe00000000 | rax = 0xfffffffe00000000; 0x00457361 add rdx, rax | rdx += rax; 0x00457364 jmp 0x4574fe | goto label_24; | label_16: 0x00457370 test r12b, r12b | | if (r12b == 0) { 0x00457373 je 0x45715a | goto label_0; | } 0x00457379 lea rax, [rbp + 1] | rax = rbp + 1; 0x0045737d mov qword [rsp + 0x48], rbx | *((rsp + 0x48)) = rbx; | label_2: 0x00457382 mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; 0x00457387 mov rdi, qword [r15] | rdi = *(r15); 0x0045738a mov r13d, 0xffffffff | r13d = 0xffffffff; 0x00457390 cmp qword [r15 + 8], rdi | | if (*((r15 + 8)) == rdi) { 0x00457394 je 0x4576ba | goto label_25; | } 0x0045739a mov r14d, 1 | r14d = 1; 0x004573a0 xor eax, eax | eax = 0; 0x004573a2 jmp 0x4573db | | while (eax == 2) { | label_1: 0x004573b0 mov eax, r14d | eax = r14d; 0x004573b3 mov rdi, qword [r15] | rdi = *(r15); 0x004573b6 mov rcx, qword [r15 + 8] | rcx = *((r15 + 8)); 0x004573ba sub rcx, rdi | rcx -= rdi; 0x004573bd sar rcx, 3 | rcx >>= 3; 0x004573c1 movabs rdx, 0xaf8af8af8af8af8b | rdx = 0xaf8af8af8af8af8b; 0x004573cb imul rcx, rdx | rcx *= rdx; 0x004573cf inc r14d | r14d++; 0x004573d2 cmp rcx, rax | | if (rcx <= rax) { 0x004573d5 jbe 0x4576ba | goto label_25; | } 0x004573db imul rbx, rax, 0x118 | rbx = rax * 0x118; 0x004573e2 add rdi, rbx | rdi += rbx; 0x004573e5 call 0x464f30 | eax = BloombergLP::balcl::Option::argType()const (rdi); 0x004573ea cmp eax, 2 | 0x004573ed je 0x4573b0 | | } 0x004573ef add rbx, qword [r15] | rbx += *(r15); 0x004573f2 mov rdi, rbx | 0x004573f5 call 0x464fd0 | al = BloombergLP::balcl::Option::shortTag()const (rbx); 0x004573fa cmp al, r12b | | if (al != r12b) { 0x004573fd jne 0x4573b0 | goto label_1; | } 0x004573ff mov eax, r14d | eax = r14d; 0x00457402 sub eax, 1 | eax--; | if (eax < 0) { 0x00457405 jb 0x4576ba | goto label_25; | } 0x0045740b movsxd rbx, eax | rbx = (int64_t) eax; 0x0045740e imul r12, rbx, 0x118 | r12 = rbx * 0x118; 0x00457415 mov rdi, qword [r15] | 0x00457418 add rdi, r12 | rdi += r12; 0x0045741b call 0x464f30 | eax = BloombergLP::balcl::Option::argType()const (*(r15)); 0x00457420 test eax, eax | | if (eax != 0) { 0x00457422 jne 0x4576b4 | goto label_26; | } 0x00457428 add r12, qword [r15] | r12 += *(r15); 0x0045742b lea rbp, [rbx + rbx*4] | rbp = rbx * 5; 0x0045742f shl rbp, 4 | rbp <<= 4; 0x00457433 add rbp, qword [r15 + 0xa8] | rbp += *((r15 + 0xa8)); 0x0045743a mov rax, qword [rip + 0x2ad7e7] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x00457441 test rax, rax | | if (rax == 0) { 0x00457444 jne 0x45744b | 0x00457446 call 0x47cad0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0045744b lea r13, [rsp + 0x18] | r13 = rsp + 0x18; 0x00457450 mov qword [rsp + 0x18], 0 | *((rsp + 0x18)) = 0; 0x00457459 mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x0045745e movaps xmm0, xmmword [rip + 0x4cc6b] | xmm0 = .comment; 0x00457465 movups xmmword [rsp + 0x30], xmm0 | __asm ("movups xmmword [rsp + 0x30], xmm0"); 0x0045746a mov esi, 0x4cd0c4 | 0x0045746f mov ecx, 0x4ae59e | 0x00457474 mov rdi, r13 | 0x00457477 xor edx, edx | 0x00457479 call 0x481b20 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (r13, 0x4cd0c4, 0, "string<...>::assign(char*...): string too long"); 0x0045747e mov rdi, r12 | 0x00457481 call 0x465000 | rax = BloombergLP::balcl::Option::typeInfo()const (r12); 0x00457486 mov rdi, rbp | 0x00457489 mov rsi, r13 | 0x0045748c mov rdx, rax | 0x0045748f mov rcx, qword [rsp] | 0x00457493 call 0x46c0d0 | BloombergLP::balcl::TypeInfoUtil::parseAndValidate(BloombergLP::balcl::OptionValue*,bsl::basic_string,bsl::allocator>const&,BloombergLP::balcl::TypeInfoconst&,std::_1::basic_ostream>&) (rbp, r13, rax, *(rsp)); 0x00457498 cmp qword [rsp + 0x38], 0x17 | 0x0045749e mov rbp, qword [rsp + 8] | rbp = *((rsp + 8)); | if (*((rsp + 0x38)) != 0x17) { 0x004574a3 je 0x4574b5 | 0x004574a5 mov rsi, qword [rsp + 0x18] | rsi = *((rsp + 0x18)); 0x004574aa mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); 0x004574af mov rax, qword [rdi] | rax = *(rdi); 0x004574b2 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004574b5 shl rbx, 5 | rbx <<= 5; 0x004574b9 add rbx, qword [r15 + 0x20] | rbx += *((r15 + 0x20)); 0x004574bd mov dword [rsp + 0x18], ebp | *((rsp + 0x18)) = ebp; 0x004574c1 mov rdi, rbx | 0x004574c4 mov rsi, r13 | 0x004574c7 call 0x493bd0 | bsl::vector>::push_back(int&&) (rbx, r13); 0x004574cc mov rbp, qword [rsp + 0x58] | rbp = *((rsp + 0x58)); 0x004574d1 lea rax, [rbp + 1] | rax = rbp + 1; 0x004574d5 mov r12b, byte [rbp + 1] | r12b = *((rbp + 1)); 0x004574d9 test r12b, r12b | 0x004574dc mov rbx, qword [rsp + 0x48] | rbx = *((rsp + 0x48)); | if (r12b != 0) { 0x004574e1 jne 0x457382 | goto label_2; | } 0x004574e7 mov r14, qword [rsp + 8] | r14 = *((rsp + 8)); 0x004574ec movabs r12, 0xaaaaaaaaaaaaaaab | r12 = 0xaaaaaaaaaaaaaaab; 0x004574f6 jmp 0x457870 | goto label_27; | label_23: 0x004574fb mov rsi, r13 | | label_24: 0x004574fe sar rdx, 0x20 | rdx >>= 0x20; 0x00457502 mov rdi, r15 | 0x00457505 call 0x458250 | eax = BloombergLP::balcl::CommandLine::findTag(char const*,unsigned long)const (r15, r13, rdx); 0x0045750a cmp eax, 0xffffffff | | if (eax != 0xffffffff) { 0x0045750d je 0x4579c6 | 0x00457513 cdqe | rax = (int64_t) eax; 0x00457515 mov rcx, rax | rcx = rax; 0x00457518 mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; 0x0045751d imul r13, rax, 0x118 | r13 = rax * 0x118; 0x00457524 add r13, qword [r15] | r13 += *(r15); 0x00457527 cmp byte [rbp + r12 + 2], 0x3d | | if (*((rbp + r12 + 2)) == 0x3d) { 0x0045752d jne 0x457536 | 0x0045752f lea r12, [rbp + r12 + 3] | r12 = rbp + r12 + 3; 0x00457534 jmp 0x457598 | | } else { 0x00457536 mov rdi, r13 | 0x00457539 call 0x464f30 | eax = BloombergLP::balcl::Option::argType()const (r13); 0x0045753e test eax, eax | | if (eax != 0) { 0x00457540 je 0x457592 | 0x00457542 mov rax, qword [r15 + 0x68] | rax = *((r15 + 0x68)); 0x00457546 mov rcx, qword [r15 + 0x70] | rcx = *((r15 + 0x70)); 0x0045754a sub rcx, rax | rcx -= rax; 0x0045754d sar rcx, 4 | rcx >>= 4; 0x00457551 movabs rdx, 0xaaaaaaaaaaaaaaab | rdx = 0xaaaaaaaaaaaaaaab; 0x0045755b imul rcx, rdx | rcx *= rdx; 0x0045755f dec rcx | rcx--; 0x00457562 cmp rcx, qword [rsp + 0x60] | | if (rcx == *((rsp + 0x60))) { 0x00457567 je 0x457d5f | goto label_28; | } 0x0045756d mov rcx, qword [rsp + 8] | rcx = *((rsp + 8)); 0x00457572 lea ebp, [rcx + 1] | ebp = rcx + 1; 0x00457575 movsxd rcx, ebp | rcx = (int64_t) ebp; 0x00457578 lea rcx, [rcx + rcx*2] | rcx *= 3; 0x0045757c shl rcx, 4 | rcx <<= 4; 0x00457580 lea r12, [rax + rcx] | r12 = rax + rcx; 0x00457584 cmp qword [rax + rcx + 0x20], 0x17 | | if (*((rax + rcx + 0x20)) == 0x17) { 0x0045758a je 0x45759f | goto label_29; | } 0x0045758c mov r12, qword [r12] | r12 = *(r12); 0x00457590 jmp 0x45759f | goto label_29; | } 0x00457592 mov r12d, 0x4cd0c4 | r12d = 0x4cd0c4; | } 0x00457598 mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x0045759d mov ebp, eax | | label_29: 0x0045759f mov rdi, r13 | 0x004575a2 call 0x464f70 | al = BloombergLP::balcl::Option::isArray()const (r13); 0x004575a7 test al, al | | if (al == 0) { 0x004575a9 jne 0x4575d3 | 0x004575ab mov rdi, r13 | 0x004575ae call 0x464f30 | eax = BloombergLP::balcl::Option::argType()const (r13); 0x004575b3 test eax, eax | | if (eax == 0) { 0x004575b5 je 0x4575d3 | goto label_30; | } 0x004575b7 mov rax, qword [r15 + 0x20] | rax = *((r15 + 0x20)); 0x004575bb mov rcx, qword [rsp + 0x58] | rcx = *((rsp + 0x58)); 0x004575c0 shl rcx, 5 | rcx <<= 5; 0x004575c4 mov rdx, qword [rax + rcx + 8] | rdx = *((rax + rcx + 8)); 0x004575c9 cmp rdx, qword [rax + rcx] | | if (rdx != *((rax + rcx))) { 0x004575cd jne 0x457d7d | goto label_31; | } | } | label_30: 0x004575d3 mov dword [rsp + 0x60], ebp | *((rsp + 0x60)) = ebp; 0x004575d7 mov rax, qword [rsp + 0x58] | rax = *((rsp + 0x58)); 0x004575dc lea rbp, [rax + rax*4] | rbp = rax * 5; 0x004575e0 shl rbp, 4 | rbp <<= 4; 0x004575e4 add rbp, qword [r15 + 0xa8] | rbp += *((r15 + 0xa8)); 0x004575eb mov rax, qword [rip + 0x2ad636] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004575f2 test rax, rax | | if (rax == 0) { 0x004575f5 jne 0x4575fc | 0x004575f7 call 0x47cad0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004575fc mov qword [rsp + 0x18], 0 | *((rsp + 0x18)) = 0; 0x00457605 movaps xmm0, xmmword [rip + 0x4cac4] | xmm0 = .comment; 0x0045760c movups xmmword [rsp + 0x30], xmm0 | __asm ("movups xmmword [rsp + 0x30], xmm0"); 0x00457611 mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x00457616 mov rdi, r12 | 0x00457619 call 0x4046c0 | rax = strlen (r12); 0x0045761e mov qword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x00457627 mov ecx, 0x4ae59e | 0x0045762c lea rbx, [rsp + 0x18] | rbx = rsp + 0x18; 0x00457631 mov rdi, rbx | 0x00457634 mov rsi, r12 | 0x00457637 mov rdx, rax | 0x0045763a call 0x481b20 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (rbx, r12, rax, "string<...>::assign(char*...): string too long"); 0x0045763f mov rdi, r13 | 0x00457642 call 0x465000 | rax = BloombergLP::balcl::Option::typeInfo()const (r13); 0x00457647 mov rdi, rbp | 0x0045764a mov rsi, rbx | 0x0045764d mov rdx, rax | 0x00457650 mov rcx, qword [rsp] | 0x00457654 call 0x46c0d0 | eax = BloombergLP::balcl::TypeInfoUtil::parseAndValidate(BloombergLP::balcl::OptionValue*,bsl::basic_string,bsl::allocator>const&,BloombergLP::balcl::TypeInfoconst&,std::_1::basic_ostream>&) (rbp, rbx, rax, *(rsp)); 0x00457659 mov ebx, eax | ebx = eax; 0x0045765b cmp qword [rsp + 0x38], 0x17 | 0x00457661 mov rbp, qword [rsp + 8] | rbp = *((rsp + 8)); 0x00457666 movabs r12, 0xaaaaaaaaaaaaaaab | r12 = 0xaaaaaaaaaaaaaaab; | if (*((rsp + 0x38)) != 0x17) { 0x00457670 je 0x457682 | 0x00457672 mov rsi, qword [rsp + 0x18] | rsi = *((rsp + 0x18)); 0x00457677 mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); 0x0045767c mov rax, qword [rdi] | rax = *(rdi); 0x0045767f call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x00457682 test bl, bl | | if (bl == 0) { 0x00457684 je 0x457a8c | goto label_32; | } 0x0045768a mov rdi, qword [rsp + 0x58] | 0x0045768f shl rdi, 5 | rdi <<= 5; 0x00457693 add rdi, qword [r15 + 0x20] | rdi += *((r15 + 0x20)); 0x00457697 mov dword [rsp + 0x18], ebp | *((rsp + 0x18)) = ebp; 0x0045769b lea r13, [rsp + 0x18] | r13 = rsp + 0x18; 0x004576a0 mov rsi, r13 | 0x004576a3 call 0x493bd0 | bsl::vector>::push_back(int&&) (*((rsp + 0x58)), r13); 0x004576a8 mov eax, dword [rsp + 0x60] | eax = *((rsp + 0x60)); 0x004576ac mov r14d, eax | r14d = *((rsp + 0x60)); 0x004576af jmp 0x45786b | goto label_33; | label_26: 0x004576b4 dec r14d | r14d--; 0x004576b7 mov r13d, r14d | r13d = r14d; | label_25: 0x004576ba cmp byte [rbp + 1], 0 | | if (*((rbp + 1)) != 0) { 0x004576be je 0x457733 | 0x004576c0 cmp r13d, 0xffffffff | | if (r13d == 0xffffffff) { 0x004576c4 je 0x457c99 | goto label_34; | } 0x004576ca movsxd rbx, r13d | rbx = (int64_t) r13d; 0x004576cd imul r12, rbx, 0x118 | r12 = rbx * 0x118; 0x004576d4 add r12, qword [r15] | r12 += *(r15); 0x004576d7 mov al, byte [rbp + 2] | al = *((rbp + 2)); 0x004576da cmp al, 0x3d | | if (al != 0x3d) { 0x004576dc je 0x45775b | 0x004576de test al, al | | if (al != 0) { 0x004576e0 jne 0x457761 | goto label_35; | } 0x004576e2 mov rax, qword [r15 + 0x68] | rax = *((r15 + 0x68)); 0x004576e6 mov rcx, qword [r15 + 0x70] | rcx = *((r15 + 0x70)); 0x004576ea sub rcx, rax | rcx -= rax; 0x004576ed sar rcx, 4 | rcx >>= 4; 0x004576f1 movabs rdx, 0xaaaaaaaaaaaaaaab | rdx = 0xaaaaaaaaaaaaaaab; 0x004576fb imul rcx, rdx | rcx *= rdx; 0x004576ff dec rcx | rcx--; 0x00457702 cmp rcx, qword [rsp + 0x60] | | if (rcx == *((rsp + 0x60))) { 0x00457707 je 0x457ecc | goto label_36; | } 0x0045770d mov rcx, qword [rsp + 8] | rcx = *((rsp + 8)); 0x00457712 lea r14d, [rcx + 1] | r14d = rcx + 1; 0x00457716 movsxd rcx, r14d | rcx = (int64_t) r14d; 0x00457719 lea rcx, [rcx + rcx*2] | rcx *= 3; 0x0045771d shl rcx, 4 | rcx <<= 4; 0x00457721 lea rbp, [rax + rcx] | rbp = rax + rcx; 0x00457725 cmp qword [rax + rcx + 0x20], 0x17 | | if (*((rax + rcx + 0x20)) == 0x17) { 0x0045772b je 0x45776d | goto label_37; | } 0x0045772d mov rbp, qword [rbp] | rbp = *(rbp); 0x00457731 jmp 0x45776d | | } else { 0x00457733 mov r14, qword [rsp + 8] | r14 = *((rsp + 8)); 0x00457738 movabs r12, 0xaaaaaaaaaaaaaaab | r12 = 0xaaaaaaaaaaaaaaab; 0x00457742 mov rbx, qword [rsp + 0x48] | rbx = *((rsp + 0x48)); 0x00457747 movabs rdi, 0x100000000 | rdi = 0x100000000; 0x00457751 lea r13, [rsp + 0x18] | r13 = rsp + 0x18; 0x00457756 jmp 0x45716a | goto label_3; | } 0x0045775b add rbp, 3 | rbp += 3; 0x0045775f jmp 0x457765 | goto label_38; | label_35: 0x00457761 add rbp, 2 | rbp += 2; | label_38: 0x00457765 mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x0045776a mov r14d, eax | r14d = eax; | } | label_37: 0x0045776d mov rdi, r12 | 0x00457770 call 0x464f70 | al = BloombergLP::balcl::Option::isArray()const (r12); 0x00457775 test al, al | | if (al == 0) { 0x00457777 jne 0x457793 | 0x00457779 mov rax, qword [r15 + 0x20] | rax = *((r15 + 0x20)); 0x0045777d mov rcx, rbx | rcx = rbx; 0x00457780 shl rcx, 5 | rcx <<= 5; 0x00457784 mov rdx, qword [rax + rcx + 8] | rdx = *((rax + rcx + 8)); 0x00457789 cmp rdx, qword [rax + rcx] | | if (rdx != *((rax + rcx))) { 0x0045778d jne 0x457e16 | goto label_39; | } | } 0x00457793 mov dword [rsp + 0x50], r14d | *((rsp + 0x50)) = r14d; 0x00457798 lea r13, [rbx + rbx*4] | r13 = rbx * 5; 0x0045779c shl r13, 4 | r13 <<= 4; 0x004577a0 add r13, qword [r15 + 0xa8] | r13 += *((r15 + 0xa8)); 0x004577a7 mov rax, qword [rip + 0x2ad47a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004577ae test rax, rax | | if (rax == 0) { 0x004577b1 jne 0x4577b8 | 0x004577b3 call 0x47cad0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004577b8 mov qword [rsp + 0x18], 0 | *((rsp + 0x18)) = 0; 0x004577c1 movaps xmm0, xmmword [rip + 0x4c908] | xmm0 = .comment; 0x004577c8 movups xmmword [rsp + 0x30], xmm0 | __asm ("movups xmmword [rsp + 0x30], xmm0"); 0x004577cd mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x004577d2 mov rdi, rbp | 0x004577d5 call 0x4046c0 | rax = strlen (rbp); 0x004577da mov qword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x004577e3 mov ecx, 0x4ae59e | 0x004577e8 lea r14, [rsp + 0x18] | r14 = rsp + 0x18; 0x004577ed mov rdi, r14 | 0x004577f0 mov rsi, rbp | 0x004577f3 mov rdx, rax | 0x004577f6 call 0x481b20 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (r14, rbp, rax, "string<...>::assign(char*...): string too long"); 0x004577fb mov rdi, r12 | 0x004577fe call 0x465000 | rax = BloombergLP::balcl::Option::typeInfo()const (r12); 0x00457803 mov rdi, r13 | 0x00457806 mov rsi, r14 | 0x00457809 mov rdx, rax | 0x0045780c mov rcx, qword [rsp] | 0x00457810 call 0x46c0d0 | eax = BloombergLP::balcl::TypeInfoUtil::parseAndValidate(BloombergLP::balcl::OptionValue*,bsl::basic_string,bsl::allocator>const&,BloombergLP::balcl::TypeInfoconst&,std::_1::basic_ostream>&) (r13, r14, rax, *(rsp)); 0x00457815 mov r12d, eax | r12d = eax; 0x00457818 cmp qword [rsp + 0x38], 0x17 | | if (*((rsp + 0x38)) != 0x17) { 0x0045781e je 0x457830 | 0x00457820 mov rsi, qword [rsp + 0x18] | rsi = *((rsp + 0x18)); 0x00457825 mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); 0x0045782a mov rax, qword [rdi] | rax = *(rdi); 0x0045782d call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x00457830 test r12b, r12b | 0x00457833 lea r13, [rsp + 0x18] | r13 = rsp + 0x18; | if (r12b == 0) { 0x00457838 je 0x457d28 | goto label_40; | } 0x0045783e shl rbx, 5 | rbx <<= 5; 0x00457842 add rbx, qword [r15 + 0x20] | rbx += *((r15 + 0x20)); 0x00457846 mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x0045784b mov dword [rsp + 0x18], eax | *((rsp + 0x18)) = eax; 0x0045784f mov rdi, rbx | 0x00457852 mov rsi, r13 | 0x00457855 call 0x493bd0 | bsl::vector>::push_back(int&&) (rbx, r13); 0x0045785a mov eax, dword [rsp + 0x50] | eax = *((rsp + 0x50)); 0x0045785e mov r14d, eax | r14d = *((rsp + 0x50)); 0x00457861 movabs r12, 0xaaaaaaaaaaaaaaab | r12 = 0xaaaaaaaaaaaaaaab; | label_33: 0x0045786b mov rbx, qword [rsp + 0x48] | rbx = *((rsp + 0x48)); | label_27: 0x00457870 movabs rdi, 0x100000000 | rdi = 0x100000000; 0x0045787a jmp 0x45716a | goto label_3; | label_17: 0x0045787f mov esi, 0x4af518 | 0x00457884 mov edx, 0xe | 0x00457889 mov rbp, qword [rsp] | rbp = *(rsp); 0x0045788d mov rdi, rbp | 0x00457890 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*(rsp), "The argument \", 0xe); 0x00457895 mov rsi, qword [rsp + 0x50] | 0x0045789a add rsi, qword [r15 + 0x68] | rsi += *((r15 + 0x68)); 0x0045789e mov rdi, rax | 0x004578a1 call 0x44fd10 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, *((rsp + 0x50))); 0x004578a6 mov esi, 0x4af537 | 0x004578ab mov edx, 0x11 | 0x004578b0 mov rdi, rax | 0x004578b3 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4af537, 0x11); 0x004578b8 mov byte [rsp + 0x18], 0xa | *((rsp + 0x18)) = 0xa; 0x004578bd lea rsi, [rsp + 0x18] | 0x004578c2 mov edx, 1 | 0x004578c7 mov rdi, rax | 0x004578ca call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x18, 1); 0x004578cf mov rdi, rax | rdi = rax; 0x004578d2 call 0x404980 | std::_1::basic_ostream>::flush() (); 0x004578d7 mov esi, 0x4af78c | esi = "The error occurred while parsing the "; 0x004578dc mov edx, 0x25 | edx = 0x25; 0x004578e1 jmp 0x4578f1 | goto label_41; | label_18: 0x004578e3 mov esi, 0x4af78c | 0x004578e8 mov edx, 0x25 | 0x004578ed mov rbp, qword [rsp] | rbp = *(rsp); | label_41: 0x004578f1 mov rdi, rbp | 0x004578f4 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*(rsp), "The error occurred while parsing the ", 0x25); 0x004578f9 mov rbx, rax | rbx = rax; 0x004578fc dec r14d | r14d--; | label_6: 0x004578ff movsxd rsi, r14d | rsi = (int64_t) r14d; 0x00457902 mov rdi, rax | rdi = rax; 0x00457905 jmp 0x457986 | goto label_42; | label_13: 0x00457907 mov esi, 0x4af527 | esi = "The character \"-\" was unexpected."; 0x0045790c jmp 0x457928 | goto label_43; | label_19: 0x0045790e mov rax, qword [r15 + 0x48] | rax = *((r15 + 0x48)); 0x00457912 sub rax, qword [r15 + 0x40] | rax -= *((r15 + 0x40)); 0x00457916 sar rax, 2 | rax >>= 2; 0x0045791a cmp rax, rbx | | if (rax != rbx) { 0x0045791d jne 0x457ac2 | goto label_44; | } 0x00457923 mov esi, 0x4af549 | esi = "The argument \"--\" was unexpected."; | label_43: 0x00457928 mov edx, 0x21 | edx = 0x21; 0x0045792d jmp 0x457939 | goto label_45; | label_21: 0x0045792f mov esi, 0x4af56e | 0x00457934 mov edx, 0x54 | | label_45: 0x00457939 mov rbp, qword [rsp] | rbp = *(rsp); 0x0045793d mov rdi, rbp | 0x00457940 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*(rsp), "Long option expected, instead of \"---\".\n(Note: long options may not begin with '-'.)", 0x54); 0x00457945 mov byte [rsp + 0x18], 0xa | *((rsp + 0x18)) = 0xa; 0x0045794a lea rsi, [rsp + 0x18] | 0x0045794f mov edx, 1 | 0x00457954 mov rdi, rax | 0x00457957 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x18, 1); 0x0045795c mov rdi, rax | rdi = rax; 0x0045795f call 0x404980 | std::_1::basic_ostream>::flush() (); 0x00457964 mov esi, 0x4af78c | 0x00457969 mov edx, 0x25 | 0x0045796e mov rdi, rbp | 0x00457971 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rbp, "The error occurred while parsing the ", 0x25); 0x00457976 mov rbx, rax | rbx = rax; 0x00457979 mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x0045797e dec eax | eax--; 0x00457980 movsxd rsi, eax | rsi = (int64_t) eax; 0x00457983 mov rdi, rbx | | label_42: 0x00457986 call 0x459900 | BloombergLP::balcl::(anonymousnamespace)::u::operator << (std::_1::basic_ostream>&,BloombergLP::balcl::(anonymousnamespace)::u::Ordinal) (rbx, rsi, rdx); 0x0045798b mov esi, 0x4af7cb | 0x00457990 mov edx, 0xa | 0x00457995 mov rdi, rbx | 0x00457998 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rbx, " argument.", 0xa); 0x0045799d mov byte [rsp + 0x18], 0xa | *((rsp + 0x18)) = 0xa; 0x004579a2 lea rsi, [rsp + 0x18] | 0x004579a7 mov edx, 1 | 0x004579ac mov rdi, rax | 0x004579af call 0x455a90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x18, 1); 0x004579b4 mov rdi, rbp | rdi = rbp; | label_7: 0x004579b7 call 0x404980 | std::_1::basic_ostream>::flush() (); 0x004579bc mov ebx, 0xffffffff | ebx = 0xffffffff; 0x004579c1 jmp 0x457c88 | goto label_5; | } 0x004579c6 mov esi, 0x4af5c3 | 0x004579cb mov edx, 0xc | 0x004579d0 mov rdi, qword [rsp] | 0x004579d4 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*(rsp), "The string \", 0xc); 0x004579d9 mov r14, rax | r14 = rax; 0x004579dc mov rax, qword [rip + 0x2ad245] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004579e3 test rax, rax | | if (rax == 0) { 0x004579e6 jne 0x4579ed | 0x004579e8 call 0x47cad0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004579ed mov qword [rsp + 0x18], 0 | *((rsp + 0x18)) = 0; 0x004579f6 mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x004579fb movaps xmm0, xmmword [rip + 0x4c6ce] | xmm0 = .comment; 0x00457a02 movups xmmword [rsp + 0x30], xmm0 | __asm ("movups xmmword [rsp + 0x30], xmm0"); 0x00457a07 lea rbp, [rsp + 0x18] | rbp = rsp + 0x18; 0x00457a0c mov ecx, 0x4ae59e | 0x00457a11 mov rdi, rbp | 0x00457a14 mov rsi, r13 | 0x00457a17 mov rdx, r12 | 0x00457a1a call 0x481b20 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (rbp, r13, r12, "string<...>::assign(char*...): string too long"); 0x00457a1f mov rdi, r14 | 0x00457a22 mov rsi, rbp | 0x00457a25 call 0x44fd10 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (r14, rbp); 0x00457a2a mov esi, 0x4af5d0 | 0x00457a2f mov edx, 0x1e | 0x00457a34 mov rdi, rax | 0x00457a37 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, "\" does not match any long tag.", 0x1e); 0x00457a3c mov byte [rsp + 0x17], 0xa | *((rsp + 0x17)) = 0xa; 0x00457a41 lea rsi, [rsp + 0x17] | 0x00457a46 mov edx, 1 | 0x00457a4b mov rdi, rax | 0x00457a4e call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x17, 1); 0x00457a53 mov rdi, rax | rdi = rax; 0x00457a56 call 0x404980 | std::_1::basic_ostream>::flush() (); 0x00457a5b cmp qword [rsp + 0x38], 0x17 | | if (*((rsp + 0x38)) != 0x17) { 0x00457a61 je 0x457a73 | 0x00457a63 mov rsi, qword [rsp + 0x18] | rsi = *((rsp + 0x18)); 0x00457a68 mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); 0x00457a6d mov rax, qword [rdi] | rax = *(rdi); 0x00457a70 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x00457a73 inc r12d | r12d++; 0x00457a76 mov rsi, qword [rsp] | rsi = *(rsp); 0x00457a7a mov rdx, qword [rsp + 8] | rdx = *((rsp + 8)); 0x00457a7f mov ecx, 2 | ecx = 2; 0x00457a84 mov r8d, r12d | r8d = r12d; 0x00457a87 jmp 0x457e07 | goto label_46; | label_32: 0x00457a8c mov rax, qword [r15 + 0x68] | rax = *((r15 + 0x68)); 0x00457a90 mov rdx, qword [rsp + 0x50] | rdx = *((rsp + 0x50)); 0x00457a95 lea rcx, [rax + rdx] | rcx = rax + rdx; 0x00457a99 cmp qword [rax + rdx + 0x20], 0x17 | | if (*((rax + rdx + 0x20)) != 0x17) { 0x00457a9f je 0x457aa4 | 0x00457aa1 mov rcx, qword [rcx] | rcx = *(rcx); | } 0x00457aa4 sub r14d, ecx | r14d -= ecx; 0x00457aa7 mov rcx, qword [rsp + 0x50] | rcx = *((rsp + 0x50)); 0x00457aac mov r8d, dword [rax + rcx + 0x18] | r8d = *((rax + rcx + 0x18)); 0x00457ab1 dec r8d | r8d--; 0x00457ab4 mov rsi, qword [rsp] | rsi = *(rsp); 0x00457ab8 mov edx, ebp | edx = ebp; 0x00457aba mov ecx, r14d | ecx = r14d; 0x00457abd jmp 0x457e07 | goto label_46; | label_44: 0x00457ac2 mov qword [rsp + 0x48], rbx | *((rsp + 0x48)) = rbx; 0x00457ac7 mov rdi, qword [r15] | rdi = *(r15); 0x00457aca cmp qword [r15 + 8], rdi | | if (*((r15 + 8)) == rdi) { 0x00457ace je 0x457b57 | goto label_47; | } 0x00457ad4 mov r12d, 1 | r12d = 1; 0x00457ada xor ebx, ebx | ebx = 0; 0x00457adc jmp 0x457b07 | | while (eax == 0) { | label_4: 0x00457ae0 mov ebx, r12d | ebx = r12d; 0x00457ae3 mov rdi, qword [r15] | rdi = *(r15); 0x00457ae6 mov rax, qword [r15 + 8] | rax = *((r15 + 8)); 0x00457aea sub rax, rdi | rax -= rdi; 0x00457aed sar rax, 3 | rax >>= 3; 0x00457af1 movabs rcx, 0xaf8af8af8af8af8b | rcx = 0xaf8af8af8af8af8b; 0x00457afb imul rax, rcx | rax *= rcx; 0x00457aff inc r12d | r12d++; 0x00457b02 cmp rax, rbx | | if (rax <= rbx) { 0x00457b05 jbe 0x457b57 | goto label_47; | } 0x00457b07 imul rbp, rbx, 0x118 | rbp = rbx * 0x118; 0x00457b0e add rdi, rbp | rdi += rbp; 0x00457b11 call 0x464f30 | eax = BloombergLP::balcl::Option::argType()const (rdi); 0x00457b16 test eax, eax | 0x00457b18 je 0x457ae0 | | } 0x00457b1a mov r14d, eax | r14d = eax; 0x00457b1d mov rax, qword [r15 + 0x20] | rax = *((r15 + 0x20)); 0x00457b21 shl rbx, 5 | rbx <<= 5; 0x00457b25 mov rcx, qword [rax + rbx] | rcx = *((rax + rbx)); 0x00457b29 cmp qword [rax + rbx + 8], rcx | | if (*((rax + rbx + 8)) != rcx) { 0x00457b2e jne 0x457ae0 | goto label_4; | } 0x00457b30 add rbp, qword [r15] | rbp += *(r15); 0x00457b33 mov rdi, rbp | 0x00457b36 call 0x464fc0 | rax = BloombergLP::balcl::Option::occurrenceInfo()const (rbp); 0x00457b3b mov rdi, rax | 0x00457b3e call 0x462dd0 | al = BloombergLP::balcl::OccurrenceInfo::isRequired()const (rax); 0x00457b43 cmp r14d, 1 | | if (r14d != 1) { 0x00457b47 jne 0x457ae0 | goto label_4; | } 0x00457b49 test al, al | | if (al == 0) { 0x00457b4b je 0x457ae0 | goto label_4; | } 0x00457b4d sub r12d, 1 | r12d--; | if (r12d >= 0) { 0x00457b51 jae 0x457f26 | goto label_48; | } | label_47: 0x00457b57 mov r14, qword [rsp + 8] | r14 = *((rsp + 8)); 0x00457b5c lea eax, [r14 + 1] | eax = r14 + 1; 0x00457b60 mov rbp, qword [r15 + 0x68] | rbp = *((r15 + 0x68)); 0x00457b64 mov rcx, qword [r15 + 0x70] | rcx = *((r15 + 0x70)); 0x00457b68 sub rcx, rbp | rcx -= rbp; 0x00457b6b sar rcx, 4 | rcx >>= 4; 0x00457b6f movabs rdx, 0xaaaaaaaaaaaaaaab | rdx = 0xaaaaaaaaaaaaaaab; 0x00457b79 imul rcx, rdx | rcx *= rdx; 0x00457b7d cmp rcx, rax | 0x00457b80 mov rdx, qword [rsp + 0x48] | rdx = *((rsp + 0x48)); | if (rcx <= rax) { 0x00457b85 jbe 0x457c7a | goto label_8; | } 0x00457b8b mov rcx, qword [r15 + 0x40] | rcx = *((r15 + 0x40)); 0x00457b8f movsxd r12, dword [rcx + rdx*4] | r12 = *((rcx + rdx*4)); 0x00457b93 lea rbx, [r12 + r12*4] | rbx = r12 * 5; 0x00457b97 shl rbx, 4 | rbx <<= 4; 0x00457b9b add rbx, qword [r15 + 0xa8] | rbx += *((r15 + 0xa8)); 0x00457ba2 lea rax, [rax + rax*2] | rax *= 3; 0x00457ba6 shl rax, 4 | rax <<= 4; 0x00457baa add rbp, rax | rbp += rax; 0x00457bad imul rdi, r12, 0x118 | rdi = r12 * 0x118; 0x00457bb4 add rdi, qword [r15] | rdi += *(r15); 0x00457bb7 call 0x465000 | rax = BloombergLP::balcl::Option::typeInfo()const (rdi); 0x00457bbc mov rdi, rbx | 0x00457bbf mov rsi, rbp | | do { 0x00457bc2 mov rdx, rax | 0x00457bc5 mov rcx, qword [rsp] | 0x00457bc9 call 0x46c0d0 | al = BloombergLP::balcl::TypeInfoUtil::parseAndValidate(BloombergLP::balcl::OptionValue*,bsl::basic_string,bsl::allocator>const&,BloombergLP::balcl::TypeInfoconst&,std::_1::basic_ostream>&) (rbx, rbp, rax, *(rsp)); 0x00457bce test al, al | | if (al == 0) { 0x00457bd0 je 0x457eae | goto label_49; | } 0x00457bd6 mov ebp, r14d | 0x00457bd9 lea r14d, [rbp + 1] | r14d = rbp + 1; 0x00457bdd mov rdi, r12 | 0x00457be0 shl rdi, 5 | rdi <<= 5; 0x00457be4 add rdi, qword [r15 + 0x20] | rdi += *((r15 + 0x20)); 0x00457be8 mov dword [rsp + 0x18], r14d | *((rsp + 0x18)) = r14d; 0x00457bed lea rsi, [rsp + 0x18] | 0x00457bf2 call 0x493bd0 | bsl::vector>::push_back(int&&) (r12, rsp + 0x18); 0x00457bf7 imul rdi, r12, 0x118 | rdi = r12 * 0x118; 0x00457bfe add rdi, qword [r15] | rdi += *(r15); 0x00457c01 call 0x464f70 | BloombergLP::balcl::Option::isArray()const (rdi); 0x00457c06 add ebp, 2 | ebp += 2; 0x00457c09 mov r13, qword [r15 + 0x68] | r13 = *((r15 + 0x68)); 0x00457c0d mov rcx, qword [r15 + 0x70] | rcx = *((r15 + 0x70)); 0x00457c11 sub rcx, r13 | rcx -= r13; 0x00457c14 sar rcx, 4 | rcx >>= 4; 0x00457c18 movabs rdx, 0xaaaaaaaaaaaaaaab | rdx = 0xaaaaaaaaaaaaaaab; 0x00457c22 imul rcx, rdx | rcx *= rdx; 0x00457c26 cmp rcx, rbp | 0x00457c29 mov rcx, qword [rsp + 0x48] | rcx = *((rsp + 0x48)); | if (rcx <= rbp) { 0x00457c2e jbe 0x457c7a | goto label_8; | } 0x00457c30 xor al, 1 | al ^= 1; 0x00457c32 movzx eax, al | eax = (int32_t) al; 0x00457c35 add rcx, rax | rcx += rax; 0x00457c38 mov rax, qword [r15 + 0x40] | rax = *((r15 + 0x40)); 0x00457c3c mov qword [rsp + 0x48], rcx | *((rsp + 0x48)) = rcx; 0x00457c41 movsxd r12, dword [rax + rcx*4] | r12 = *((rax + rcx*4)); 0x00457c45 lea rbx, [r12 + r12*4] | rbx = r12 * 5; 0x00457c49 shl rbx, 4 | rbx <<= 4; 0x00457c4d add rbx, qword [r15 + 0xa8] | rbx += *((r15 + 0xa8)); 0x00457c54 lea rax, [rbp + rbp*2] | rax = rbp + rbp*2; 0x00457c59 shl rax, 4 | rax <<= 4; 0x00457c5d add r13, rax | r13 += rax; 0x00457c60 imul rdi, r12, 0x118 | rdi = r12 * 0x118; 0x00457c67 add rdi, qword [r15] | rdi += *(r15); 0x00457c6a call 0x465000 | BloombergLP::balcl::Option::typeInfo()const (rdi); 0x00457c6f mov rdi, rbx | rdi = rbx; 0x00457c72 mov rsi, r13 | rsi = r13; 0x00457c75 jmp 0x457bc2 | | } while (1); | label_8: 0x00457c7a mov rdi, r15 | 0x00457c7d mov rsi, qword [rsp] | 0x00457c81 call 0x4583a0 | eax = BloombergLP::balcl::CommandLine::postParse(std::_1::basic_ostream>&) (r15, *(rsp)); 0x00457c86 mov ebx, eax | ebx = eax; | do { | label_5: 0x00457c88 mov eax, ebx | 0x00457c8a add rsp, 0x68 | 0x00457c8e pop rbx | 0x00457c8f pop r12 | 0x00457c91 pop r13 | 0x00457c93 pop r14 | 0x00457c95 pop r15 | 0x00457c97 pop rbp | 0x00457c98 ret | return rax; | label_34: 0x00457c99 mov esi, 0x4af652 | 0x00457c9e mov edx, 0xf | 0x00457ca3 mov rdi, qword [rsp] | 0x00457ca7 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*(rsp), "The character \", 0xf); 0x00457cac mov cl, byte [rbp + 1] | cl = *((rbp + 1)); 0x00457caf mov byte [rsp + 0x18], cl | *((rsp + 0x18)) = cl; 0x00457cb3 lea rsi, [rsp + 0x18] | 0x00457cb8 mov edx, 1 | 0x00457cbd mov rdi, rax | 0x00457cc0 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x18, 1); 0x00457cc5 mov esi, 0x4af662 | 0x00457cca mov edx, 0x1f | 0x00457ccf mov rdi, rax | 0x00457cd2 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, "\" does not match any short tag.", 0x1f); 0x00457cd7 mov byte [rsp + 0x18], 0xa | *((rsp + 0x18)) = 0xa; 0x00457cdc lea rsi, [rsp + 0x18] | 0x00457ce1 mov edx, 1 | 0x00457ce6 mov rdi, rax | 0x00457ce9 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x18, 1); 0x00457cee mov rdi, rax | rdi = rax; 0x00457cf1 call 0x404980 | std::_1::basic_ostream>::flush() (); 0x00457cf6 mov rcx, qword [r15 + 0x68] | rcx = *((r15 + 0x68)); 0x00457cfa mov rdx, qword [rsp + 0x50] | rdx = *((rsp + 0x50)); 0x00457cff lea rax, [rcx + rdx] | rax = rcx + rdx; 0x00457d03 cmp qword [rcx + rdx + 0x20], 0x17 | | if (*((rcx + rdx + 0x20)) != 0x17) { 0x00457d09 je 0x457d0e | 0x00457d0b mov rax, qword [rax] | rax = *(rax); | } 0x00457d0e mov rdx, qword [rsp + 8] | rdx = *((rsp + 8)); 0x00457d13 mov rcx, qword [rsp + 0x58] | rcx = *((rsp + 0x58)); 0x00457d18 sub ecx, eax | ecx -= eax; 0x00457d1a mov ebx, 0xffffffff | ebx = 0xffffffff; 0x00457d1f mov rsi, qword [rsp] | rsi = *(rsp); 0x00457d23 jmp 0x457e9e | goto label_50; | label_40: 0x00457d28 mov edx, dword [rsp + 0x50] | edx = *((rsp + 0x50)); 0x00457d2c movsxd rcx, edx | rcx = (int64_t) edx; 0x00457d2f mov rax, qword [r15 + 0x68] | rax = *((r15 + 0x68)); 0x00457d33 lea rcx, [rcx + rcx*2] | rcx *= 3; 0x00457d37 shl rcx, 4 | rcx <<= 4; 0x00457d3b lea rsi, [rax + rcx] | rsi = rax + rcx; 0x00457d3f cmp qword [rax + rcx + 0x20], 0x17 | | if (*((rax + rcx + 0x20)) != 0x17) { 0x00457d45 je 0x457d4a | 0x00457d47 mov rsi, qword [rsi] | rsi = *(rsi); | } 0x00457d4a sub ebp, esi | ebp -= esi; 0x00457d4c mov r8d, dword [rax + rcx + 0x18] | r8d = *((rax + rcx + 0x18)); 0x00457d51 dec r8d | r8d--; 0x00457d54 mov rsi, qword [rsp] | rsi = *(rsp); 0x00457d58 mov ecx, ebp | ecx = ebp; 0x00457d5a jmp 0x457e07 | goto label_46; | label_28: 0x00457d5f mov esi, 0x4af5ef | 0x00457d64 mov edx, 0x32 | 0x00457d69 mov rdi, qword [rsp] | 0x00457d6d call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*(rsp), "Error: No value has been provided for the option \", 0x32); 0x00457d72 mov rbx, rax | rbx = rax; 0x00457d75 mov rdi, r13 | rdi = r13; 0x00457d78 jmp 0x457ee5 | goto label_51; | label_31: 0x00457d7d mov esi, 0x4af622 | 0x00457d82 mov edx, 0x2f | 0x00457d87 mov rdi, qword [rsp] | 0x00457d8b call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*(rsp), "Only one value can be provided for the option \", 0x2f); 0x00457d90 mov rbx, rax | rbx = rax; 0x00457d93 mov rdi, r13 | 0x00457d96 call 0x464ff0 | rax = BloombergLP::balcl::Option::tagString()const (r13); 0x00457d9b mov rdi, rbx | 0x00457d9e mov rsi, rax | 0x00457da1 call 0x44fd10 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, rax); 0x00457da6 mov esi, 0x4af56b | 0x00457dab mov edx, 2 | 0x00457db0 mov rdi, rax | 0x00457db3 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4af56b, 2); 0x00457db8 mov byte [rsp + 0x18], 0xa | *((rsp + 0x18)) = 0xa; 0x00457dbd lea rsi, [rsp + 0x18] | 0x00457dc2 mov edx, 1 | 0x00457dc7 mov rdi, rax | 0x00457dca call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x18, 1); 0x00457dcf mov rdi, rax | rdi = rax; 0x00457dd2 call 0x404980 | std::_1::basic_ostream>::flush() (); 0x00457dd7 mov rcx, qword [r15 + 0x68] | rcx = *((r15 + 0x68)); 0x00457ddb mov rdx, qword [rsp + 0x50] | rdx = *((rsp + 0x50)); 0x00457de0 lea rax, [rcx + rdx] | rax = rcx + rdx; 0x00457de4 cmp qword [rcx + rdx + 0x20], 0x17 | | if (*((rcx + rdx + 0x20)) != 0x17) { 0x00457dea je 0x457def | 0x00457dec mov rax, qword [rax] | rax = *(rax); | } 0x00457def mov rdx, qword [rsp + 8] | 0x00457df4 sub r14d, eax | r14d -= eax; 0x00457df7 add r14d, 0xfffffffe | r14d += 0xfffffffe; 0x00457dfb mov rsi, qword [rsp] | 0x00457dff mov ecx, 2 | 0x00457e04 mov r8d, r14d | r8d = r14d; | label_46: 0x00457e07 call 0x458020 | BloombergLP::balcl::CommandLine::location(std::_1::basic_ostream>&,int,int,int)const (rdi, *(rsp), *((rsp + 8)), 2); 0x00457e0c mov ebx, 0xffffffff | ebx = 0xffffffff; 0x00457e11 jmp 0x457c88 | | } while (1); | label_39: 0x00457e16 mov esi, 0x4af682 | 0x00457e1b mov edx, 0x30 | 0x00457e20 mov rdi, qword [rsp] | 0x00457e24 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*(rsp), "Only one value can be provided for the option \"-", 0x30); 0x00457e29 mov rbx, rax | rbx = rax; 0x00457e2c mov rdi, r12 | 0x00457e2f call 0x464ff0 | rax = BloombergLP::balcl::Option::tagString()const (r12); 0x00457e34 mov rdi, rbx | 0x00457e37 mov rsi, rax | 0x00457e3a call 0x44fd10 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, rax); 0x00457e3f mov esi, 0x4af56b | 0x00457e44 mov edx, 2 | 0x00457e49 mov rdi, rax | 0x00457e4c call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4af56b, 2); 0x00457e51 mov byte [rsp + 0x18], 0xa | *((rsp + 0x18)) = 0xa; 0x00457e56 lea rsi, [rsp + 0x18] | 0x00457e5b mov edx, 1 | 0x00457e60 mov rdi, rax | 0x00457e63 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x18, 1); 0x00457e68 mov rdi, rax | rdi = rax; 0x00457e6b call 0x404980 | std::_1::basic_ostream>::flush() (); 0x00457e70 movsxd rax, r14d | rax = (int64_t) r14d; 0x00457e73 mov rcx, qword [r15 + 0x68] | rcx = *((r15 + 0x68)); 0x00457e77 lea rdx, [rax + rax*2] | rdx = rax * 3; 0x00457e7b shl rdx, 4 | rdx <<= 4; 0x00457e7f lea rax, [rcx + rdx] | rax = rcx + rdx; 0x00457e83 cmp qword [rcx + rdx + 0x20], 0x17 | | if (*((rcx + rdx + 0x20)) != 0x17) { 0x00457e89 je 0x457e8e | 0x00457e8b mov rax, qword [rax] | rax = *(rax); | } 0x00457e8e sub ebp, eax | ebp -= eax; 0x00457e90 mov ebx, 0xffffffff | ebx = 0xffffffff; 0x00457e95 mov rsi, qword [rsp] | 0x00457e99 mov edx, r14d | 0x00457e9c mov ecx, ebp | | label_50: 0x00457e9e mov r8d, 0xffffffff | r8d = 0xffffffff; 0x00457ea4 call 0x458020 | BloombergLP::balcl::CommandLine::location(std::_1::basic_ostream>&,int,int,int)const (rdi, *(rsp), r14d, ebp); 0x00457ea9 jmp 0x457c88 | goto label_5; | label_49: 0x00457eae mov esi, 0x4af78c | 0x00457eb3 mov edx, 0x25 | 0x00457eb8 mov rbp, qword [rsp] | rbp = *(rsp); 0x00457ebc mov rdi, rbp | 0x00457ebf call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*(rsp), "The error occurred while parsing the ", 0x25); 0x00457ec4 mov rbx, rax | rbx = rax; 0x00457ec7 jmp 0x4578ff | goto label_6; | label_36: 0x00457ecc mov esi, 0x4af5ef | 0x00457ed1 mov edx, 0x32 | 0x00457ed6 mov rdi, qword [rsp] | 0x00457eda call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*(rsp), "Error: No value has been provided for the option \", 0x32); 0x00457edf mov rbx, rax | rbx = rax; 0x00457ee2 mov rdi, r12 | | label_51: 0x00457ee5 call 0x464ff0 | rax = BloombergLP::balcl::Option::tagString()const (r12); 0x00457eea mov rdi, rbx | | do { 0x00457eed mov rsi, rax | 0x00457ef0 call 0x44fd10 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, rax); 0x00457ef5 mov esi, 0x4af56b | 0x00457efa mov edx, 2 | 0x00457eff mov rdi, rax | 0x00457f02 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4af56b, 2); 0x00457f07 mov byte [rsp + 0x18], 0xa | *((rsp + 0x18)) = 0xa; 0x00457f0c lea rsi, [rsp + 0x18] | 0x00457f11 mov edx, 1 | 0x00457f16 mov rdi, rax | 0x00457f19 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x18, 1); 0x00457f1e mov rdi, rax | rdi = rax; 0x00457f21 jmp 0x4579b7 | goto label_7; | label_48: 0x00457f26 mov esi, 0x4af6f1 | 0x00457f2b mov edx, 0x22 | 0x00457f30 mov rdi, qword [rsp] | 0x00457f34 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*(rsp), 0x4af6f1, 0x22); 0x00457f39 mov rbp, rax | 0x00457f3c movsxd rax, r12d | rax = (int64_t) r12d; 0x00457f3f imul rdi, rax, 0x118 | rdi = rax * 0x118; 0x00457f46 add rdi, qword [r15] | rdi += *(r15); 0x00457f49 call 0x464ff0 | BloombergLP::balcl::Option::tagString()const (rdi); 0x00457f4e mov rdi, rbp | rdi = rbp; 0x00457f51 jmp 0x457eed | | } while (1); | }