; assembly | /* r2dec pseudo code output */ | /* bdlt_fixutil.t/none @ 0x43b1e0 */ | #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_ (char * arg4, char * arg3, signed int64_t arg2, char * arg1) { | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlt::FixUtil::generate(char*, int, BloombergLP::bdlt::DatetimeTz const&, BloombergLP::bdlt::FixUtilConfiguration const&) */ 0x0043b1e0 push rbp | 0x0043b1e1 push r15 | 0x0043b1e3 push r14 | 0x0043b1e5 push rbx | 0x0043b1e6 sub rsp, 0x28 | 0x0043b1ea mov ebp, esi | 0x0043b1ec mov r14, rdi | r14 = rdi; 0x0043b1ef cmp esi, 0x1e | | if (esi >= 0x1e) { 0x0043b1f2 jl 0x43b20a | 0x0043b1f4 mov rdi, r14 | 0x0043b1f7 mov rsi, rdx | 0x0043b1fa mov rdx, rcx | 0x0043b1fd call 0x43b270 | eax = BloombergLP::bdlt::FixUtil::generateRaw(char*,BloombergLP::bdlt::DatetimeTzconst&,BloombergLP::bdlt::FixUtilConfigurationconst&) (r14, rdx, rcx); 0x0043b202 mov ebx, eax | ebx = eax; 0x0043b204 cmp ebx, ebp | | if (ebx >= ebp) { 0x0043b206 jl 0x43b24c | 0x0043b208 jmp 0x43b254 | | } else { 0x0043b20a mov rdi, rsp | 0x0043b20d mov rsi, rdx | 0x0043b210 mov rdx, rcx | 0x0043b213 call 0x43b270 | eax = BloombergLP::bdlt::FixUtil::generateRaw(char*,BloombergLP::bdlt::DatetimeTzconst&,BloombergLP::bdlt::FixUtilConfigurationconst&) (rsp, rdx, rcx); 0x0043b218 mov ebx, eax | ebx = eax; 0x0043b21a cmp eax, ebp | | if (eax < ebp) { 0x0043b21c jge 0x43b23a | 0x0043b21e movsxd r15, ebx | r15 = (int64_t) ebx; 0x0043b221 mov rsi, rsp | 0x0043b224 mov rdi, r14 | 0x0043b227 mov rdx, r15 | 0x0043b22a call 0x4045b0 | memcpy (r14, rsp, r15); 0x0043b22f mov byte [r14 + r15], 0 | *((r14 + r15)) = 0; 0x0043b234 cmp ebx, ebp | | if (ebx < ebp) { 0x0043b236 jl 0x43b24c | goto label_0; | } 0x0043b238 jmp 0x43b254 | goto label_1; | } 0x0043b23a movsxd rdx, ebp | rdx = (int64_t) ebp; 0x0043b23d mov rsi, rsp | 0x0043b240 mov rdi, r14 | 0x0043b243 call 0x4045b0 | memcpy (r14, rsp, rdx); 0x0043b248 cmp ebx, ebp | | if (ebx >= ebp) { 0x0043b24a jge 0x43b254 | goto label_1; | } | } | label_0: 0x0043b24c movsxd rax, ebx | rax = (int64_t) ebx; 0x0043b24f mov byte [r14 + rax], 0 | *((r14 + rax)) = 0; | } | label_1: 0x0043b254 mov eax, ebx | eax = ebx; 0x0043b256 add rsp, 0x28 | 0x0043b25a pop rbx | 0x0043b25b pop r14 | 0x0043b25d pop r15 | 0x0043b25f pop rbp | 0x0043b260 ret | return rax; | }