; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/none @ 0x4827c0 */ | #include | ; (fcn) method.int_BloombergLP::balb::Choice4::accessSelection_BloombergLP::baljsn.Encoder_SelectionVisitor__BloombergLP::baljsn::Encoder_SelectionVisitor__const () | int64_t method_int_BloombergLP::balb::Choice4::accessSelection_BloombergLP::baljsn_Encoder_SelectionVisitor_BloombergLP::baljsn::Encoder_SelectionVisitor_const (int64_t arg2, int64_t arg1) { | int64_t var_8h; | int64_t var_10h; | int64_t var_18h; | int64_t var_20h; | int64_t var_28h; | int64_t var_30h; | int64_t var_38h; | rsi = arg2; | rdi = arg1; | /* int BloombergLP::balb::Choice4::accessSelection(BloombergLP::baljsn::Encoder_SelectionVisitor&) const */ 0x004827c0 push rbx | 0x004827c1 sub rsp, 0x40 | 0x004827c5 mov rbx, rsi | rbx = rsi; 0x004827c8 mov r8, rdi | r8 = rdi; 0x004827cb mov ecx, dword [rdi + 0x20] | ecx = *((rdi + 0x20)); 0x004827ce cmp ecx, 1 | | if (ecx != 1) { 0x004827d1 je 0x482845 | 0x004827d3 mov eax, 0xffffffff | eax = 0xffffffff; 0x004827d8 test ecx, ecx | | if (ecx != 0) { 0x004827da jne 0x48289a | goto label_0; | } 0x004827e0 mov rsi, qword [rbx + 8] | rsi = *((rbx + 8)); 0x004827e4 mov rdx, qword [rbx + 0x10] | rdx = *((rbx + 0x10)); 0x004827e8 mov r10, qword [rip + 0xcb499] | r10 = *(str.selection1); 0x004827ef movsxd rdi, dword [rip + 0xcb49a] | rdi = *(0x0054dc90); 0x004827f6 mov r9d, dword [rip + 0xcb4a3] | r9d = *(0x0054dca0); 0x004827fd mov r11, qword [rbx + 0x18] | r11 = *((rbx + 0x18)); 0x00482801 movzx eax, byte [rbx + 0x20] | eax = *((rbx + 0x20)); 0x00482805 mov byte [rsp], 0 | *(rsp) = 0; 0x00482809 mov qword [rsp + 8], rsi | *((rsp + 8)) = rsi; 0x0048280e mov qword [rsp + 0x10], rdx | *((rsp + 0x10)) = rdx; 0x00482813 lea rcx, [rsp + 0x18] | rcx = rsp + 0x18; 0x00482818 mov qword [rsp + 0x18], r10 | *((rsp + 0x18)) = r10; 0x0048281d mov qword [rsp + 0x20], rdi | *((rsp + 0x20)) = rdi; 0x00482822 mov dword [rsp + 0x28], r9d | *((rsp + 0x28)) = r9d; 0x00482827 mov qword [rsp + 0x30], r11 | *((rsp + 0x30)) = r11; 0x0048282c mov byte [rsp + 0x38], al | *((rsp + 0x38)) = al; 0x00482830 mov rdi, rsp | rdi = rsp; 0x00482833 push rax | 0x00482834 push r11 | 0x00482836 call 0x473090 | eax = _ZN11BloombergLP6baljsn22Encoder_EncodeImplUtil12encodeMemberIN3bsl6vectorINS3_12basic_stringIcNSt3_111char_traitsIcEENS3_9allocatorIcEEEENS9_ISB_EEEEEEiPbPNS0_9FormatterEPNS6_13basic_ostreamIcS8_EERKNS6_17basic_string_viewIcS8_EERKT_iRKNS0_14EncoderOpt (); 0x0048283b add rsp, 0x10 | 0x0048283f test eax, eax | | if (eax != 0) { 0x00482841 jne 0x48289a | goto label_0; | } 0x00482843 jmp 0x482895 | | } else { 0x00482845 movups xmm0, xmmword [rbx + 8] | __asm ("movups xmm0, xmmword [rbx + 8]"); 0x00482849 mov rax, qword [rip + 0xcb460] | rax = *(str.selection2); 0x00482850 movsxd rcx, dword [rip + 0xcb461] | rcx = *(0x0054dcb8); 0x00482857 mov edx, dword [rip + 0xcb46b] | edx = *(0x0054dcc8); 0x0048285d mov rsi, qword [rbx + 0x18] | rsi = *((rbx + 0x18)); 0x00482861 mov dil, byte [rbx + 0x20] | dil = *((rbx + 0x20)); 0x00482865 mov byte [rsp], 0 | *(rsp) = 0; 0x00482869 movups xmmword [rsp + 8], xmm0 | __asm ("movups xmmword [rsp + 8], xmm0"); 0x0048286e mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x00482873 mov qword [rsp + 0x20], rcx | *((rsp + 0x20)) = rcx; 0x00482878 mov dword [rsp + 0x28], edx | *((rsp + 0x28)) = edx; 0x0048287c mov qword [rsp + 0x30], rsi | *((rsp + 0x30)) = rsi; 0x00482881 mov byte [rsp + 0x38], dil | *((rsp + 0x38)) = dil; 0x00482886 mov rsi, rsp | 0x00482889 mov rdi, r8 | 0x0048288c call 0x464420 | eax = intBloombergLP::bdlat_TypeCategoryUtil::accessByCategory(intconst&,BloombergLP::baljsn::Encoder_SelectionDispatcher&) (r8, rsp); 0x00482891 test eax, eax | | if (eax != 0) { 0x00482893 jne 0x48289a | goto label_0; | } | } 0x00482895 mov cl, byte [rsp] | cl = *(rsp); 0x00482898 mov byte [rbx], cl | *(rbx) = cl; | label_0: 0x0048289a add rsp, 0x40 | 0x0048289e pop rbx | 0x0048289f ret | return rax; | }