; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/assume @ 0x482b90 */ | #include | ; (fcn) method.int_BloombergLP::balb::Choice5::accessSelection_BloombergLP::baljsn.Encoder_SelectionVisitor__BloombergLP::baljsn::Encoder_SelectionVisitor__const () | int64_t method_int_BloombergLP::balb::Choice5::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::Choice5::accessSelection(BloombergLP::baljsn::Encoder_SelectionVisitor&) const */ 0x00482b90 push rbx | 0x00482b91 sub rsp, 0x40 | 0x00482b95 mov rbx, rsi | rbx = rsi; 0x00482b98 mov r8, rdi | r8 = rdi; 0x00482b9b mov eax, dword [rdi + 0x30] | eax = *((rdi + 0x30)); 0x00482b9e cmp eax, 1 | | if (eax != 1) { 0x00482ba1 je 0x482c10 | 0x00482ba3 test eax, eax | | if (eax != 0) { 0x00482ba5 jne 0x482c67 | goto label_0; | } 0x00482bab mov rsi, qword [rbx + 8] | 0x00482baf mov rdx, qword [rbx + 0x10] | 0x00482bb3 mov r10, qword [rip + 0xcad1e] | r10 = *(str.selection1); 0x00482bba movsxd rdi, dword [rip + 0xcad1f] | rdi = *(0x0054d8e0); 0x00482bc1 mov r9d, dword [rip + 0xcad28] | 0x00482bc8 mov r11, qword [rbx + 0x18] | r11 = *((rbx + 0x18)); 0x00482bcc movzx eax, byte [rbx + 0x20] | eax = *((rbx + 0x20)); 0x00482bd0 mov byte [rsp], 0 | *(rsp) = 0; 0x00482bd4 mov qword [rsp + 8], rsi | *((rsp + 8)) = rsi; 0x00482bd9 mov qword [rsp + 0x10], rdx | *((rsp + 0x10)) = rdx; 0x00482bde lea rcx, [rsp + 0x18] | 0x00482be3 mov qword [rsp + 0x18], r10 | *((rsp + 0x18)) = r10; 0x00482be8 mov qword [rsp + 0x20], rdi | *((rsp + 0x20)) = rdi; 0x00482bed mov dword [rsp + 0x28], r9d | *((rsp + 0x28)) = r9d; 0x00482bf2 mov qword [rsp + 0x30], r11 | *((rsp + 0x30)) = r11; 0x00482bf7 mov byte [rsp + 0x38], al | *((rsp + 0x38)) = al; 0x00482bfb mov rdi, rsp | 0x00482bfe push rax | 0x00482bff push r11 | 0x00482c01 call 0x482c80 | eax = intBloombergLP::baljsn::Encoder_EncodeImplUtil::encodeMember(bool*,BloombergLP::baljsn::Formatter*,std::_1::basic_ostream>*,std::_1::basic_string_view>const&,BloombergLP::balb::Choice4const&,int,BloombergLP::baljsn::EncoderOptionsconst&,bool,BloombergLP::bdlat_TypeCategory::Choice) (rsp, *((rbx + 8)), *((rbx + 0x10)), rsp + 0x18, r8, *(0x0054d8f0)); 0x00482c06 add rsp, 0x10 | 0x00482c0a test eax, eax | | if (eax != 0) { 0x00482c0c jne 0x482c6c | goto label_1; | } 0x00482c0e jmp 0x482c60 | | } else { 0x00482c10 movups xmm0, xmmword [rbx + 8] | __asm ("movups xmm0, xmmword [rbx + 8]"); 0x00482c14 mov rax, qword [rip + 0xcace5] | rax = *(str.selection2); 0x00482c1b movsxd rcx, dword [rip + 0xcace6] | rcx = *(0x0054d908); 0x00482c22 mov edx, dword [rip + 0xcacf0] | edx = *(0x0054d918); 0x00482c28 mov rsi, qword [rbx + 0x18] | rsi = *((rbx + 0x18)); 0x00482c2c mov dil, byte [rbx + 0x20] | dil = *((rbx + 0x20)); 0x00482c30 mov byte [rsp], 0 | *(rsp) = 0; 0x00482c34 movups xmmword [rsp + 8], xmm0 | __asm ("movups xmmword [rsp + 8], xmm0"); 0x00482c39 mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x00482c3e mov qword [rsp + 0x20], rcx | *((rsp + 0x20)) = rcx; 0x00482c43 mov dword [rsp + 0x28], edx | *((rsp + 0x28)) = edx; 0x00482c47 mov qword [rsp + 0x30], rsi | *((rsp + 0x30)) = rsi; 0x00482c4c mov byte [rsp + 0x38], dil | *((rsp + 0x38)) = dil; 0x00482c51 mov rsi, rsp | 0x00482c54 mov rdi, r8 | 0x00482c57 call 0x4643d0 | eax = intBloombergLP::bdlat_TypeCategoryUtil::accessByCategory(intconst&,BloombergLP::baljsn::Encoder_SelectionDispatcher&) (r8, rsp); 0x00482c5c test eax, eax | | if (eax != 0) { 0x00482c5e jne 0x482c6c | goto label_1; | } | } 0x00482c60 mov cl, byte [rsp] | cl = *(rsp); 0x00482c63 mov byte [rbx], cl | *(rbx) = cl; 0x00482c65 jmp 0x482c6c | goto label_1; | label_0: 0x00482c67 mov eax, 0xffffffff | eax = 0xffffffff; | label_1: 0x00482c6c add rsp, 0x40 | 0x00482c70 pop rbx | 0x00482c71 ret | return rax; | }