; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/none @ 0x482a20 */ | #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 */ 0x00482a20 push rbx | 0x00482a21 sub rsp, 0x40 | 0x00482a25 mov rbx, rsi | rbx = rsi; 0x00482a28 mov r8, rdi | r8 = rdi; 0x00482a2b mov ecx, dword [rdi + 0x30] | ecx = *((rdi + 0x30)); 0x00482a2e cmp ecx, 1 | | if (ecx != 1) { 0x00482a31 je 0x482aa5 | 0x00482a33 mov eax, 0xffffffff | eax = 0xffffffff; 0x00482a38 test ecx, ecx | | if (ecx != 0) { 0x00482a3a jne 0x482afa | goto label_0; | } 0x00482a40 mov rsi, qword [rbx + 8] | 0x00482a44 mov rdx, qword [rbx + 0x10] | 0x00482a48 mov r10, qword [rip + 0xcb499] | r10 = *(str.selection1); 0x00482a4f movsxd rdi, dword [rip + 0xcb49a] | rdi = *(0x0054def0); 0x00482a56 mov r9d, dword [rip + 0xcb4a3] | 0x00482a5d mov r11, qword [rbx + 0x18] | r11 = *((rbx + 0x18)); 0x00482a61 movzx eax, byte [rbx + 0x20] | eax = *((rbx + 0x20)); 0x00482a65 mov byte [rsp], 0 | *(rsp) = 0; 0x00482a69 mov qword [rsp + 8], rsi | *((rsp + 8)) = rsi; 0x00482a6e mov qword [rsp + 0x10], rdx | *((rsp + 0x10)) = rdx; 0x00482a73 lea rcx, [rsp + 0x18] | 0x00482a78 mov qword [rsp + 0x18], r10 | *((rsp + 0x18)) = r10; 0x00482a7d mov qword [rsp + 0x20], rdi | *((rsp + 0x20)) = rdi; 0x00482a82 mov dword [rsp + 0x28], r9d | *((rsp + 0x28)) = r9d; 0x00482a87 mov qword [rsp + 0x30], r11 | *((rsp + 0x30)) = r11; 0x00482a8c mov byte [rsp + 0x38], al | *((rsp + 0x38)) = al; 0x00482a90 mov rdi, rsp | 0x00482a93 push rax | 0x00482a94 push r11 | 0x00482a96 call 0x482b00 | 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, *(0x0054df00)); 0x00482a9b add rsp, 0x10 | 0x00482a9f test eax, eax | | if (eax != 0) { 0x00482aa1 jne 0x482afa | goto label_0; | } 0x00482aa3 jmp 0x482af5 | | } else { 0x00482aa5 movups xmm0, xmmword [rbx + 8] | __asm ("movups xmm0, xmmword [rbx + 8]"); 0x00482aa9 mov rax, qword [rip + 0xcb460] | rax = *(str.selection2); 0x00482ab0 movsxd rcx, dword [rip + 0xcb461] | rcx = *(0x0054df18); 0x00482ab7 mov edx, dword [rip + 0xcb46b] | edx = *(0x0054df28); 0x00482abd mov rsi, qword [rbx + 0x18] | rsi = *((rbx + 0x18)); 0x00482ac1 mov dil, byte [rbx + 0x20] | dil = *((rbx + 0x20)); 0x00482ac5 mov byte [rsp], 0 | *(rsp) = 0; 0x00482ac9 movups xmmword [rsp + 8], xmm0 | __asm ("movups xmmword [rsp + 8], xmm0"); 0x00482ace mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x00482ad3 mov qword [rsp + 0x20], rcx | *((rsp + 0x20)) = rcx; 0x00482ad8 mov dword [rsp + 0x28], edx | *((rsp + 0x28)) = edx; 0x00482adc mov qword [rsp + 0x30], rsi | *((rsp + 0x30)) = rsi; 0x00482ae1 mov byte [rsp + 0x38], dil | *((rsp + 0x38)) = dil; 0x00482ae6 mov rsi, rsp | 0x00482ae9 mov rdi, r8 | 0x00482aec call 0x464420 | eax = intBloombergLP::bdlat_TypeCategoryUtil::accessByCategory(intconst&,BloombergLP::baljsn::Encoder_SelectionDispatcher&) (r8, rsp); 0x00482af1 test eax, eax | | if (eax != 0) { 0x00482af3 jne 0x482afa | goto label_0; | } | } 0x00482af5 mov cl, byte [rsp] | cl = *(rsp); 0x00482af8 mov byte [rbx], cl | *(rbx) = cl; | label_0: 0x00482afa add rsp, 0x40 | 0x00482afe pop rbx | 0x00482aff ret | return rax; | }