; assembly | /* r2dec pseudo code output */ | /* bdlt_fixutil.t/assume @ 0x439b90 */ | #include | ; (fcn) method.BloombergLP::bdlt::FixUtil.generate_char__int__BloombergLP::bdlt::Time_const__BloombergLP::bdlt::FixUtilConfiguration_const_ () | int64_t method_BloombergLP::bdlt::FixUtil_generate_char_int_BloombergLP::bdlt::Time_const_BloombergLP::bdlt::FixUtilConfiguration_const_ (int64_t arg4, int64_t arg3, uint32_t arg2, int64_t arg1) { | int64_t var_9h; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlt::FixUtil::generate(char*, int, BloombergLP::bdlt::Time const&, BloombergLP::bdlt::FixUtilConfiguration const&) */ 0x00439b90 push rbp | 0x00439b91 push r15 | 0x00439b93 push r14 | 0x00439b95 push rbx | 0x00439b96 sub rsp, 0x18 | 0x00439b9a mov ebp, esi | 0x00439b9c mov r14, rdi | r14 = rdi; 0x00439b9f cmp esi, 0xf | | if (esi >= 0xf) { 0x00439ba2 jb 0x439bba | 0x00439ba4 mov rdi, r14 | 0x00439ba7 mov rsi, rdx | 0x00439baa mov rdx, rcx | 0x00439bad call 0x439c00 | eax = BloombergLP::bdlt::FixUtil::generateRaw(char*,BloombergLP::bdlt::Timeconst&,BloombergLP::bdlt::FixUtilConfigurationconst&) (r14, rdx, rcx); 0x00439bb2 mov ebx, eax | ebx = eax; 0x00439bb4 cmp ebx, ebp | | if (ebx >= ebp) { 0x00439bb6 jl 0x439be0 | 0x00439bb8 jmp 0x439be8 | | } else { 0x00439bba lea r15, [rsp + 9] | r15 = rsp + 9; 0x00439bbf mov rdi, r15 | 0x00439bc2 mov rsi, rdx | 0x00439bc5 mov rdx, rcx | 0x00439bc8 call 0x439c00 | eax = BloombergLP::bdlt::FixUtil::generateRaw(char*,BloombergLP::bdlt::Timeconst&,BloombergLP::bdlt::FixUtilConfigurationconst&) (r15, rdx, rcx); 0x00439bcd mov ebx, eax | ebx = eax; 0x00439bcf mov edx, ebp | 0x00439bd1 mov rdi, r14 | 0x00439bd4 mov rsi, r15 | 0x00439bd7 call 0x4045b0 | memcpy (r14, r15, ebp); 0x00439bdc cmp ebx, ebp | | if (ebx >= ebp) { 0x00439bde jge 0x439be8 | goto label_0; | } | } 0x00439be0 movsxd rax, ebx | rax = (int64_t) ebx; 0x00439be3 mov byte [r14 + rax], 0 | *((r14 + rax)) = 0; | } | label_0: 0x00439be8 mov eax, ebx | eax = ebx; 0x00439bea add rsp, 0x18 | 0x00439bee pop rbx | 0x00439bef pop r14 | 0x00439bf1 pop r15 | 0x00439bf3 pop rbp | 0x00439bf4 ret | return rax; | }