; assembly | /* r2dec pseudo code output */ | /* balcl_commandline.t/assume @ 0x473190 */ | #include | ; (fcn) method.BloombergLP::bdlb::TokenizerIterator.TokenizerIterator_char_const__char_const__BloombergLP::bdlb::Tokenizer_Data_const_ () | uint32_t method_BloombergLP::bdlb::TokenizerIterator_TokenizerIterator_char_const_char_const_BloombergLP::bdlb::Tokenizer_Data_const_ (uint32_t arg4, int64_t arg3, uint32_t arg2, int64_t arg1) { | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlb::TokenizerIterator::TokenizerIterator(char const*, char const*, BloombergLP::bdlb::Tokenizer_Data const*) */ 0x00473190 mov qword [rdi], rcx | *(rdi) = rcx; 0x00473193 mov qword [rdi + 8], rsi | *((rdi + 8)) = rsi; 0x00473197 mov qword [rdi + 0x10], rsi | *((rdi + 0x10)) = rsi; 0x0047319b mov qword [rdi + 0x18], rsi | *((rdi + 0x18)) = rsi; 0x0047319f mov qword [rdi + 0x20], rdx | *((rdi + 0x20)) = rdx; 0x004731a3 mov byte [rdi + 0x28], 0 | *((rdi + 0x28)) = 0; 0x004731a7 test rdx, rdx | | if (rdx == 0) { 0x004731aa je 0x4731d7 | goto label_0; | } 0x004731ac cmp rsi, rdx | | if (rsi == rdx) { 0x004731af je 0x4731f7 | goto label_1; | } 0x004731b1 nop word cs:[rax + rax] | 0x004731bb nop dword [rax + rax] | | do { 0x004731c0 movzx eax, byte [rsi] | eax = *(rsi); 0x004731c3 cmp byte [rcx + rax], 1 | | if (*((rcx + rax)) != 1) { 0x004731c7 jne 0x4731f7 | goto label_1; | } 0x004731c9 inc rsi | rsi++; 0x004731cc mov qword [rdi + 8], rsi | *((rdi + 8)) = rsi; 0x004731d0 cmp rdx, rsi | 0x004731d3 jne 0x4731c0 | | } while (rdx != rsi); 0x004731d5 jmp 0x4731f7 | goto label_1; | label_0: 0x004731d7 mov al, byte [rsi] | al = *(rsi); 0x004731d9 test al, al | | if (al == 0) { 0x004731db je 0x4731f7 | goto label_1; | } 0x004731dd inc rsi | rsi++; | do { 0x004731e0 movzx eax, al | eax = (int32_t) al; 0x004731e3 cmp byte [rcx + rax], 1 | | if (*((rcx + rax)) != 1) { 0x004731e7 jne 0x4731f7 | goto label_1; | } 0x004731e9 mov qword [rdi + 8], rsi | *((rdi + 8)) = rsi; 0x004731ed movzx eax, byte [rsi] | eax = *(rsi); 0x004731f0 inc rsi | rsi++; 0x004731f3 test al, al | 0x004731f5 jne 0x4731e0 | | } while (al != 0); | label_1: 0x004731f7 jmp 0x473200 | return void (*0x473200)() (); | }