; assembly | /* r2dec pseudo code output */ | /* balber_berdecoder.t/none @ 0x467be0 */ | #include | ; (fcn) method.BloombergLP::bdlt::Iso8601Util.generate_char__int__BloombergLP::bdlt::DatetimeTz_const__BloombergLP::bdlt::Iso8601UtilConfiguration_const_ () | int64_t method_BloombergLP::bdlt::Iso8601Util_generate_char_int_BloombergLP::bdlt::DatetimeTz_const_BloombergLP::bdlt::Iso8601UtilConfiguration_const_ (int64_t arg4, int64_t arg3, signed int64_t arg2, int64_t arg1) { | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlt::Iso8601Util::generate(char*, int, BloombergLP::bdlt::DatetimeTz const&, BloombergLP::bdlt::Iso8601UtilConfiguration const&) */ 0x00467be0 push rbp | 0x00467be1 push r15 | 0x00467be3 push r14 | 0x00467be5 push rbx | 0x00467be6 sub rsp, 0x28 | 0x00467bea mov ebp, esi | 0x00467bec mov r14, rdi | r14 = rdi; 0x00467bef cmp esi, 0x20 | | if (esi >= 0x20) { 0x00467bf2 jl 0x467c0a | 0x00467bf4 mov rdi, r14 | 0x00467bf7 mov rsi, rdx | 0x00467bfa mov rdx, rcx | 0x00467bfd call 0x467c70 | eax = BloombergLP::bdlt::Iso8601Util::generateRaw(char*,BloombergLP::bdlt::DatetimeTzconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r14, rdx, rcx); 0x00467c02 mov ebx, eax | ebx = eax; 0x00467c04 cmp ebx, ebp | | if (ebx >= ebp) { 0x00467c06 jl 0x467c4c | 0x00467c08 jmp 0x467c54 | | } else { 0x00467c0a mov rdi, rsp | 0x00467c0d mov rsi, rdx | 0x00467c10 mov rdx, rcx | 0x00467c13 call 0x467c70 | eax = BloombergLP::bdlt::Iso8601Util::generateRaw(char*,BloombergLP::bdlt::DatetimeTzconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (rsp, rdx, rcx); 0x00467c18 mov ebx, eax | ebx = eax; 0x00467c1a cmp eax, ebp | | if (eax < ebp) { 0x00467c1c jge 0x467c3a | 0x00467c1e movsxd r15, ebx | r15 = (int64_t) ebx; 0x00467c21 mov rsi, rsp | 0x00467c24 mov rdi, r14 | 0x00467c27 mov rdx, r15 | 0x00467c2a call 0x404980 | memcpy (r14, rsp, r15); 0x00467c2f mov byte [r14 + r15], 0 | *((r14 + r15)) = 0; 0x00467c34 cmp ebx, ebp | | if (ebx < ebp) { 0x00467c36 jl 0x467c4c | goto label_0; | } 0x00467c38 jmp 0x467c54 | goto label_1; | } 0x00467c3a movsxd rdx, ebp | rdx = (int64_t) ebp; 0x00467c3d mov rsi, rsp | 0x00467c40 mov rdi, r14 | 0x00467c43 call 0x404980 | memcpy (r14, rsp, rdx); 0x00467c48 cmp ebx, ebp | | if (ebx >= ebp) { 0x00467c4a jge 0x467c54 | goto label_1; | } | } | label_0: 0x00467c4c movsxd rax, ebx | rax = (int64_t) ebx; 0x00467c4f mov byte [r14 + rax], 0 | *((r14 + rax)) = 0; | } | label_1: 0x00467c54 mov eax, ebx | eax = ebx; 0x00467c56 add rsp, 0x28 | 0x00467c5a pop rbx | 0x00467c5b pop r14 | 0x00467c5d pop r15 | 0x00467c5f pop rbp | 0x00467c60 ret | return rax; | }