; assembly | /* r2dec pseudo code output */ | /* balber_berdecoder.t/none @ 0x466780 */ | #include | ; (fcn) method.BloombergLP::bdlt::Iso8601Util.generate_char__int__BloombergLP::bdlt::Time_const__BloombergLP::bdlt::Iso8601UtilConfiguration_const_ () | int64_t method_BloombergLP::bdlt::Iso8601Util_generate_char_int_BloombergLP::bdlt::Time_const_BloombergLP::bdlt::Iso8601UtilConfiguration_const_ (int64_t arg4, int64_t arg3, signed int64_t arg2, int64_t arg1) { | int64_t var_9h; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlt::Iso8601Util::generate(char*, int, BloombergLP::bdlt::Time const&, BloombergLP::bdlt::Iso8601UtilConfiguration const&) */ 0x00466780 push rbp | 0x00466781 push r15 | 0x00466783 push r14 | 0x00466785 push rbx | 0x00466786 sub rsp, 0x18 | 0x0046678a mov ebp, esi | 0x0046678c mov r14, rdi | r14 = rdi; 0x0046678f cmp esi, 0xf | | if (esi >= 0xf) { 0x00466792 jl 0x4667aa | 0x00466794 mov rdi, r14 | 0x00466797 mov rsi, rdx | 0x0046679a mov rdx, rcx | 0x0046679d call 0x4667f0 | eax = BloombergLP::bdlt::Iso8601Util::generateRaw(char*,BloombergLP::bdlt::Timeconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r14, rdx, rcx); 0x004667a2 mov ebx, eax | ebx = eax; 0x004667a4 cmp ebx, ebp | | if (ebx >= ebp) { 0x004667a6 jl 0x4667d1 | 0x004667a8 jmp 0x4667d9 | | } else { 0x004667aa lea r15, [rsp + 9] | r15 = rsp + 9; 0x004667af mov rdi, r15 | 0x004667b2 mov rsi, rdx | 0x004667b5 mov rdx, rcx | 0x004667b8 call 0x4667f0 | eax = BloombergLP::bdlt::Iso8601Util::generateRaw(char*,BloombergLP::bdlt::Timeconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r15, rdx, rcx); 0x004667bd mov ebx, eax | ebx = eax; 0x004667bf movsxd rdx, ebp | rdx = (int64_t) ebp; 0x004667c2 mov rdi, r14 | 0x004667c5 mov rsi, r15 | 0x004667c8 call 0x404980 | memcpy (r14, r15, rdx); 0x004667cd cmp ebx, ebp | | if (ebx >= ebp) { 0x004667cf jge 0x4667d9 | goto label_0; | } | } 0x004667d1 movsxd rax, ebx | rax = (int64_t) ebx; 0x004667d4 mov byte [r14 + rax], 0 | *((r14 + rax)) = 0; | } | label_0: 0x004667d9 mov eax, ebx | eax = ebx; 0x004667db add rsp, 0x18 | 0x004667df pop rbx | 0x004667e0 pop r14 | 0x004667e2 pop r15 | 0x004667e4 pop rbp | 0x004667e5 ret | return rax; | }