; assembly | /* r2dec pseudo code output */ | /* bdlt_fixutil.t/assume @ 0x43b0b0 */ | #include | ; (fcn) method.BloombergLP::bdlt::FixUtil.generate_char__int__BloombergLP::bdlt::DatetimeTz_const__BloombergLP::bdlt::FixUtilConfiguration_const_ () | int64_t method_BloombergLP::bdlt::FixUtil_generate_char_int_BloombergLP::bdlt::DatetimeTz_const_BloombergLP::bdlt::FixUtilConfiguration_const_ (int64_t arg4, int64_t arg3, uint32_t arg2, int64_t arg1) { | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlt::FixUtil::generate(char*, int, BloombergLP::bdlt::DatetimeTz const&, BloombergLP::bdlt::FixUtilConfiguration const&) */ 0x0043b0b0 push rbp | 0x0043b0b1 push r15 | 0x0043b0b3 push r14 | 0x0043b0b5 push rbx | 0x0043b0b6 sub rsp, 0x28 | 0x0043b0ba mov ebp, esi | 0x0043b0bc mov r14, rdi | r14 = rdi; 0x0043b0bf cmp esi, 0x1e | | if (esi >= 0x1e) { 0x0043b0c2 jb 0x43b0da | 0x0043b0c4 mov rdi, r14 | 0x0043b0c7 mov rsi, rdx | 0x0043b0ca mov rdx, rcx | 0x0043b0cd call 0x43b130 | eax = BloombergLP::bdlt::FixUtil::generateRaw(char*,BloombergLP::bdlt::DatetimeTzconst&,BloombergLP::bdlt::FixUtilConfigurationconst&) (r14, rdx, rcx); 0x0043b0d2 mov ebx, eax | ebx = eax; 0x0043b0d4 cmp ebx, ebp | | if (ebx >= ebp) { 0x0043b0d6 jl 0x43b11b | 0x0043b0d8 jmp 0x43b123 | | } else { 0x0043b0da mov rdi, rsp | 0x0043b0dd mov rsi, rdx | 0x0043b0e0 mov rdx, rcx | 0x0043b0e3 call 0x43b130 | eax = BloombergLP::bdlt::FixUtil::generateRaw(char*,BloombergLP::bdlt::DatetimeTzconst&,BloombergLP::bdlt::FixUtilConfigurationconst&) (rsp, rdx, rcx); 0x0043b0e8 mov ebx, eax | ebx = eax; 0x0043b0ea cmp eax, ebp | | if (eax < ebp) { 0x0043b0ec jae 0x43b10a | 0x0043b0ee mov r15d, ebx | r15d = ebx; 0x0043b0f1 mov rsi, rsp | 0x0043b0f4 mov rdi, r14 | 0x0043b0f7 mov rdx, r15 | 0x0043b0fa call 0x4045b0 | memcpy (r14, rsp, r15); 0x0043b0ff mov byte [r14 + r15], 0 | *((r14 + r15)) = 0; 0x0043b104 cmp ebx, ebp | | if (ebx < ebp) { 0x0043b106 jl 0x43b11b | goto label_0; | } 0x0043b108 jmp 0x43b123 | goto label_1; | } 0x0043b10a mov edx, ebp | 0x0043b10c mov rsi, rsp | 0x0043b10f mov rdi, r14 | 0x0043b112 call 0x4045b0 | memcpy (r14, rsp, ebp); 0x0043b117 cmp ebx, ebp | | if (ebx >= ebp) { 0x0043b119 jge 0x43b123 | goto label_1; | } | } | label_0: 0x0043b11b movsxd rax, ebx | rax = (int64_t) ebx; 0x0043b11e mov byte [r14 + rax], 0 | *((r14 + rax)) = 0; | } | label_1: 0x0043b123 mov eax, ebx | eax = ebx; 0x0043b125 add rsp, 0x28 | 0x0043b129 pop rbx | 0x0043b12a pop r14 | 0x0043b12c pop r15 | 0x0043b12e pop rbp | 0x0043b12f ret | return rax; | }