; assembly | /* r2dec pseudo code output */ | /* bdlde_charconvertutf16.t/none @ 0x42b820 */ | #include | ; (fcn) method.BloombergLP::bdlde::CharConvertUtf16.utf8ToUtf16_bsl::vector_unsigned_short__bsl::allocator_unsigned_short_____char_const__unsigned_long__unsigned_short__BloombergLP::bdlde::ByteOrder::Enum_ () | uint64_t method_BloombergLP::bdlde::CharConvertUtf16_utf8ToUtf16_bsl::vector_unsigned_short_bsl::allocator_unsigned_short_char_const_unsigned_long_unsigned_short_BloombergLP::bdlde::ByteOrder::Enum_ (int64_t arg5, int64_t arg4, uint32_t arg3, uint32_t arg2, uint32_t arg1) { | int64_t var_8h; | r8 = arg5; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlde::CharConvertUtf16::utf8ToUtf16(bsl::vector >*, char const*, unsigned long*, unsigned short, BloombergLP::bdlde::ByteOrder::Enum) */ 0x0042b820 push rbp | 0x0042b821 push r15 | 0x0042b823 push r14 | 0x0042b825 push r12 | 0x0042b827 push rbx | 0x0042b828 sub rsp, 0x10 | 0x0042b82c mov ebp, r8d | 0x0042b82f mov r12d, ecx | r12d = ecx; 0x0042b832 mov r14, rdx | r14 = rdx; 0x0042b835 mov r15, rsi | r15 = rsi; 0x0042b838 mov rbx, rdi | rbx = rdi; 0x0042b83b mov rdi, rsi | rdi = rsi; 0x0042b83e call 0x431370 | rax = unsigned long(anonymousnamespace)::utf16BufferLength<(anonymousnamespace)::Utf8::ZeroBasedEnd>(char const*,(anonymousnamespace)::Utf8::ZeroBasedEnd) (); 0x0042b843 mov rdi, qword [rbx] | rdi = *(rbx); 0x0042b846 mov rcx, qword [rbx + 8] | rcx = *((rbx + 8)); 0x0042b84a sub rcx, rdi | rcx -= rdi; 0x0042b84d sar rcx, 1 | rcx >>= 1; 0x0042b850 cmp rax, rcx | | if (rax > rcx) { 0x0042b853 jbe 0x42b863 | 0x0042b855 mov rdi, rbx | 0x0042b858 mov rsi, rax | 0x0042b85b call 0x447890 | bsl::vector>::resize(unsigned long) (rbx, rax); 0x0042b860 mov rdi, qword [rbx] | rdi = *(rbx); | } 0x0042b863 movzx r8d, r12w | r8d = (int32_t) r12w; 0x0042b867 lea rcx, [rsp + 8] | rcx = rsp + 8; 0x0042b86c mov rsi, r15 | rsi = r15; 0x0042b86f mov rdx, r14 | rdx = r14; 0x0042b872 test ebp, ebp | | if (ebp != 0) { 0x0042b874 je 0x42b87d | 0x0042b876 call 0x432800 | int(anonymousnamespace)::localUtf8ToUtf16>(unsignedshort*,(anonymousnamespace)::NoOpCapacity,char const*,(anonymousnamespace)::Utf8::ZeroBasedEnd,(anonymousnamespace)::Swapper,unsigned long*,unsigned long*,unsignedshort) (); 0x0042b87b jmp 0x42b882 | | } else { 0x0042b87d call 0x432440 | eax = int(anonymousnamespace)::localUtf8ToUtf16>(unsignedshort*,(anonymousnamespace)::NoOpCapacity,char const*,(anonymousnamespace)::Utf8::ZeroBasedEnd,(anonymousnamespace)::NoOpSwapper,unsigned long*,unsigned long*,unsignedshort) (); | } 0x0042b882 mov ebp, eax | 0x0042b884 mov rsi, qword [rsp + 8] | rsi = *((rsp + 8)); 0x0042b889 mov rax, qword [rbx + 8] | rax = *((rbx + 8)); 0x0042b88d sub rax, qword [rbx] | rax -= *(rbx); 0x0042b890 sar rax, 1 | rax >>= 1; 0x0042b893 cmp rax, rsi | | if (rax != rsi) { 0x0042b896 je 0x42b8a0 | 0x0042b898 mov rdi, rbx | 0x0042b89b call 0x447890 | bsl::vector>::resize(unsigned long) (rbx, rsi); | } 0x0042b8a0 mov eax, ebp | eax = ebp; 0x0042b8a2 add rsp, 0x10 | 0x0042b8a6 pop rbx | 0x0042b8a7 pop r12 | 0x0042b8a9 pop r14 | 0x0042b8ab pop r15 | 0x0042b8ad pop rbp | 0x0042b8ae ret | return rax; | }