; assembly | /* r2dec pseudo code output */ | /* bdlat_symbolicconverter.t/assume @ 0x4108b0 */ | #include | ; (fcn) method.int_BloombergLP::bdlat_SymbolicConverter_Imp::convert_BloombergLP::test::CustomizedA__BloombergLP::test::EnumerationA::Value__BloombergLP::bdlat_TypeCategory.Enumeration__BloombergLP::test::CustomizedA__BloombergLP::bdlat_TypeCategory::Customized () | int64_t method_int_BloombergLP::bdlat_SymbolicConverter_Imp::convert_BloombergLP::test::CustomizedA_BloombergLP::test::EnumerationA::Value_BloombergLP::bdlat_TypeCategory_Enumeration_BloombergLP::test::CustomizedA_BloombergLP::bdlat_TypeCategory::Customized (int64_t arg3, int64_t arg2) { | int64_t var_8h; | int64_t var_20h; | uint32_t var_28h; | int64_t var_30h; | rdx = arg3; | rsi = arg2; | /* int BloombergLP::bdlat_SymbolicConverter_Imp::convert(BloombergLP::test::CustomizedA*, BloombergLP::bdlat_TypeCategory::CustomizedType, BloombergLP::test::EnumerationA::Value const&, BloombergLP::bdlat_TypeCategory::Enumeration) */ 0x004108b0 push rbp | 0x004108b1 push r15 | 0x004108b3 push r14 | 0x004108b5 push rbx | 0x004108b6 sub rsp, 0x38 | 0x004108ba mov rbp, rdx | 0x004108bd mov r14, rsi | r14 = rsi; 0x004108c0 mov qword [rsp + 8], 0 | *((rsp + 8)) = 0; 0x004108c9 movaps xmm0, xmmword [rip + 0x26ea0] | xmm0 = .comment; 0x004108d0 movups xmmword [rsp + 0x20], xmm0 | __asm ("movups xmmword [rsp + 0x20], xmm0"); 0x004108d5 mov rax, qword [rip + 0x23fe64] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004108dc test rax, rax | | if (rax != 0) { 0x004108df je 0x4108ed | 0x004108e1 lea rcx, [rsp + 8] | rcx = rsp + 8; 0x004108e6 mov qword [rsp + 0x30], rax | *((rsp + 0x30)) = rax; 0x004108eb jmp 0x41090b | | } else { 0x004108ed call 0x411f30 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004108f2 cmp qword [rsp + 0x28], 0x17 | 0x004108f8 mov qword [rsp + 0x30], rax | *((rsp + 0x30)) = rax; | if (*((rsp + 0x28)) != 0x17) { 0x004108fd je 0x410906 | 0x004108ff mov rcx, qword [rsp + 8] | rcx = *((rsp + 8)); 0x00410904 jmp 0x41090b | | } else { 0x00410906 lea rcx, [rsp + 8] | rcx = rsp + 8; | } | } 0x0041090b mov byte [rcx], 0 | *(rcx) = 0; 0x0041090e cmp dword [rbp], 1 | 0x00410912 mov eax, 0x437e97 | eax = "VALUE1"; 0x00410917 mov esi, 0x437e9e | esi = "VALUE2"; | if (*(rbp) == 1) { 0x0041091c cmove rsi, rax | rsi = rax; | } 0x00410920 mov rbp, qword [rsp + 0x20] | rbp = *((rsp + 0x20)); 0x00410925 mov qword [rsp + 0x20], 0 | *((rsp + 0x20)) = 0; 0x0041092e lea rbx, [rsp + 8] | rbx = rsp + 8; 0x00410933 mov edx, 6 | 0x00410938 mov ecx, 0x438d63 | 0x0041093d mov rdi, rbx | 0x00410940 call 0x414040 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (rbx, rsi, 6, "string<...>::assign(char*...): string too long"); 0x00410945 mov rdx, qword [rsp + 0x20] | rdx = *((rsp + 0x20)); 0x0041094a mov ebp, 0xffffffff | 0x0041094f cmp rdx, 5 | | if (rdx <= 5) { 0x00410953 ja 0x410985 | 0x00410955 xor ebp, ebp | ebp = 0; 0x00410957 cmp r14, rbx | | if (r14 == rbx) { 0x0041095a je 0x410985 | goto label_0; | } 0x0041095c cmp qword [rsp + 0x28], 0x17 | | if (*((rsp + 0x28)) != 0x17) { 0x00410962 je 0x410969 | 0x00410964 mov rbx, qword [rsp + 8] | rbx = *((rsp + 8)); | } 0x00410969 mov r15, qword [r14 + 0x18] | r15 = *((r14 + 0x18)); 0x0041096d mov qword [r14 + 0x18], 0 | *((r14 + 0x18)) = 0; 0x00410975 mov ecx, 0x438d03 | 0x0041097a mov rdi, r14 | 0x0041097d mov rsi, rbx | 0x00410980 call 0x414040 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (r14, rbx, rdx, "string<...>::operator=(const string&...): string too long"); | } | label_0: 0x00410985 cmp qword [rsp + 0x28], 0x17 | | if (*((rsp + 0x28)) != 0x17) { 0x0041098b je 0x41099d | 0x0041098d mov rsi, qword [rsp + 8] | rsi = *((rsp + 8)); 0x00410992 mov rdi, qword [rsp + 0x30] | rdi = *((rsp + 0x30)); 0x00410997 mov rax, qword [rdi] | rax = *(rdi); 0x0041099a call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041099d mov eax, ebp | eax = ebp; 0x0041099f add rsp, 0x38 | 0x004109a3 pop rbx | 0x004109a4 pop r14 | 0x004109a6 pop r15 | 0x004109a8 pop rbp | 0x004109a9 ret | return rax; | }