Function at 0x422780
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 8
mov esi, ecx
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, ecx
sub edx, eax
je 0x4227e2
movsx edi, byte [eax]
cmp edi, 0x4a
je 0x4227f0
cmp edi, 0x4c
je 0x4228a5
cmp edi, 0x58
jne 0x4227e2
add eax, 1
mov dword [esi], eax
mov ecx, esi
call fcn.00424e90
mov ecx, eax
xor eax, eax
test ecx, ecx
je 0x422960
mov edx, dword [esi]
cmp edx, dword [esi + 4]
je 0x422960
cmp byte [edx], 0x45
jne 0x422960
add edx, 1
mov dword [esi], edx
mov eax, ecx
jmp 0x422960
mov ecx, esi
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.004209d0
add eax, 1
mov dword [esi], eax
mov edx, dword [esi + 0xc]
sub edx, dword [esi + 8]
sar edx, 2
mov dword [esp], edx
jmp 0x422845
push eax
push edx
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
mov ebx, eax
mov dword [esi + 8], eax
test eax, eax
je 0x422968
mov eax, ebp
sar eax, 2
sar ebp, 1
lea ecx, [ebx + ebp*4]
lea ebp, [ebx + eax*4]
mov dword [esi + 0x10], ecx
lea eax, [ebp + 4]
mov dword [esi + 0xc], eax
mov dword [ebp], edi
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, ecx
je 0x422852
cmp byte [eax], 0x45
je 0x4228d6
mov ecx, esi
call fcn.00422780
test eax, eax
je 0x4228cf
mov edi, eax
mov ebp, dword [esi + 0xc]
cmp ebp, dword [esi + 0x10]
jne 0x422837
mov edx, dword [esi + 8]
sub ebp, edx
mov eax, ebp
add eax, ebp
lea ecx, [esi + 0x14]
cmp edx, ecx
jne 0x422810
mov dword [esp + 4], edx
push eax
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
test eax, eax
je 0x422968
mov ebx, eax
test ebp, ebp
je 0x4228a0
push ebp
push dword [esp + 8]
push ebx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
mov dword [esi + 8], ebx
jmp 0x422827
cmp edx, 2
jb 0x4228c1
cmp byte [eax + 1], 0x5a
jne 0x4228c1
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.0041ffd0
jmp 0x4227b6
mov ecx, esi
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
jmp 0x4260b0
xor eax, eax
jmp 0x422960
add eax, 1
mov dword [esi], eax
mov ebp, dword [esp]
shl ebp, 2
mov edx, dword [esi + 8]
add edx, ebp
mov ecx, esi
push dword [esi + 0xc]
call fcn.0042aad0
add esp, 4
mov edi, eax
mov ebx, edx
add ebp, dword [esi + 8]
mov dword [esi + 0xc], ebp
mov ebp, dword [esi + 0x116c]
mov ecx, dword [ebp + 4]
lea eax, [ecx + 0x10]
cmp eax, 0xff8
jb 0x422934
push 0x1000
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
test eax, eax
je 0x422968
mov dword [eax], ebp
mov dword [eax + 4], 0
mov dword [esi + 0x116c], eax
xor ecx, ecx
mov ebp, eax
add ecx, 0x10
mov dword [ebp + 4], ecx
mov ecx, dword [esi + 0x116c]
mov edx, dword [ecx + 4]
lea eax, [ecx + edx]
add eax, 0xfffffff8
mov dword [ecx + edx - 4], 0x101011c
mov dword [ecx + edx - 8], 0x4382f0
mov dword [ecx + edx + 4], ebx
mov dword [ecx + edx], edi
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.00410780
nop dword [eax]
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov ebx, dword [ecx]
mov ebp, dword [ecx + 4]
xor edi, edi
cmp ebx, ebp
je case.0x4260ea.84
cmp byte [ebx], 0x4c
jne case.0x4260ea.84
mov esi, ecx
lea eax, [ebx + 1]
mov dword [ecx], eax
mov ecx, ebp
sub ecx, eax
je case.0x4260ea.85
movsx eax, byte [eax]
lea edx, [eax - 0x54]
cmp edx, 0x25
ja case.0x4260ea.85
jmp dword [edx*4 + 0x435edc]
cmp ecx, 2
jb case.0x4260ea.84
cmp al, 0x5f
jne case.0x4260ea.84
cmp byte [ebx + 2], 0x5a
jne case.0x4260ea.84
add ebx, 3
mov dword [esi], ebx
mov ecx, esi
call fcn.0041ffd0
test eax, eax
je case.0x4260ea.84
mov ecx, dword [esi]
cmp ecx, dword [esi + 4]
jne 0x4261bf
jmp case.0x4260ea.84
mov ecx, esi
call fcn.004209d0
mov dword [esp + 0x18], eax
test eax, eax
je 0x426179
mov ecx, dword [esi]
mov edx, dword [esi + 4]
cmp edx, ecx
je 0x42617d
movsx ebx, byte [ecx]
add ebx, 0xffffffd0
xor edi, edi
cmp ebx, 9
ja 0x42617f
lea edi, [ecx + 1]
nop dword [eax + eax]
mov dword [esi], edi
cmp edi, edx
je 0x426183
movsx ebx, byte [edi]
add ebx, 0xffffffd0
add edi, 1
cmp ebx, 0xa
jb 0x426160
add edi, 0xffffffff
jmp 0x426185
xor edi, edi
jmp case.0x4260ea.84
xor edi, edi
xor ebx, ebx
jmp 0x426189
mov edi, edx
mov ebx, ecx
mov ecx, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ebx
cmp edi, ebx
je 0x4261b9
xor edi, edi
cmp ecx, edx
je case.0x4260ea.84
cmp byte [ecx], 0x45
jne case.0x4260ea.84
add ecx, 1
mov dword [esi], ecx
lea eax, [esp + 0x10]
mov dword [esp], eax
lea edx, [esp + 0x18]
mov ecx, esi
call fcn.00428f10
jmp 0x4261c9
xor edi, edi
cmp ecx, edx
je case.0x4260ea.84
cmp byte [ecx], 0x45
jne case.0x4260ea.84
add ecx, 1
mov dword [esi], ecx
mov edi, eax
mov eax, edi
add esp, 0x8c
pop esi
pop edi
pop ebx
pop ebp
ret
add ebx, 2
mov dword [esi], ebx
mov dword [esp + 0x34], 0x436bf8
mov dword [esp + 0x38], 0x436bfa
movsd xmm0, qword [esp + 0x34]
jmp 0x426958
add ebx, 2
mov dword [esi], ebx
mov dword [esp + 0x24], str.__int128
mov dword [esp + 0x28], 0x436c07
movsd xmm0, qword [esp + 0x24]
jmp 0x426958
add ebx, 2
mov dword [esi], ebx
mov dword [esp + 0x4c], 0x436bf1
mov dword [esp + 0x50], 0x436bf2
movsd xmm0, qword [esp + 0x4c]
jmp 0x426958
add ebx, 2
mov dword [esi], ebx
mov dword [esp + 0x3c], 0x436bf5
mov dword [esp + 0x40], 0x436bf7
movsd xmm0, qword [esp + 0x3c]
jmp 0x426958
add ebx, 2
mov dword [esi], ebx
mov dword [esp + 0x74], str.signed_char
mov dword [esp + 0x78], 0x436bcc
movsd xmm0, qword [esp + 0x74]
jmp 0x426958
add ebx, 2
mov dword [esi], ebx
mov dword [esp + 0x2c], 0x436bfb
mov dword [esp + 0x30], 0x436bfe
movsd xmm0, qword [esp + 0x2c]
jmp 0x426958
lea ecx, [ebx + 2]
mov dword [esi], ecx
mov eax, ebp
sub eax, ecx
cmp eax, 0x11
jb case.0x4260ea.84
mov dword [esp + 8], ecx
movsx eax, byte [ebx + 2]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 3]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 4]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 5]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 6]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 7]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 8]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 9]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0xa]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0xb]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0xc]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0xd]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0xe]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0xf]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0x10]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0x11]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
lea eax, [ebx + 0x12]
mov dword [esi], eax
mov dword [esp + 0xc], eax
cmp eax, ebp
je case.0x4260ea.84
lea eax, [ebx + 0x12]
cmp byte [eax], 0x45
jne case.0x4260ea.84
add ebx, 0x13
mov dword [esi], ebx
mov edi, dword [esi + 0x116c]
mov ecx, dword [edi + 4]
lea eax, [ecx + 0x10]
cmp eax, 0xff8
jb 0x42645a
mov dword [esp], 0x1000
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
test eax, eax
je 0x426990
mov dword [eax], edi
mov dword [eax + 4], 0
mov dword [esi + 0x116c], eax
xor ecx, ecx
mov edi, eax
add ecx, 0x10
mov dword [edi + 4], ecx
mov eax, dword [esi + 0x116c]
mov ecx, dword [eax + 4]
lea edi, [eax + ecx]
add edi, 0xfffffff8
mov dword [eax + ecx - 4], 0x101013f
mov dword [eax + ecx - 8], 0x436d74
mov edx, dword [esp + 8]
mov dword [eax + ecx], edx
mov edx, dword [esp + 0xc]
mov dword [eax + ecx + 4], edx
jmp case.0x4260ea.84
add ebx, 2
mov dword [esi], ebx
mov dword [esp + 0x44], 0x436bf3
mov dword [esp + 0x48], 0x436bf4
movsd xmm0, qword [esp + 0x44]
jmp 0x426958
lea ecx, [ebx + 2]
mov dword [esi], ecx
mov eax, ebp
sub eax, ecx
cmp eax, 0x15
jb case.0x4260ea.84
mov dword [esp + 8], ecx
movsx eax, byte [ebx + 2]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 3]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 4]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 5]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 6]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 7]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 8]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 9]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0xa]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0xb]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0xc]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0xd]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0xe]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0xf]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0x10]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0x11]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0x12]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0x13]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0x14]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 0x15]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
lea eax, [ebx + 0x16]
mov dword [esi], eax
mov dword [esp + 0xc], eax
cmp eax, ebp
je case.0x4260ea.84
lea eax, [ebx + 0x16]
cmp byte [eax], 0x45
jne case.0x4260ea.84
add ebx, 0x17
mov dword [esi], ebx
mov edi, dword [esi + 0x116c]
mov ecx, dword [edi + 4]
lea eax, [ecx + 0x10]
cmp eax, 0xff8
jb 0x4266c9
mov dword [esp], 0x1000
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
test eax, eax
je 0x426990
mov dword [eax], edi
mov dword [eax + 4], 0
mov dword [esi + 0x116c], eax
xor ecx, ecx
mov edi, eax
add ecx, 0x10
mov dword [edi + 4], ecx
mov eax, dword [esi + 0x116c]
mov ecx, dword [eax + 4]
lea edi, [eax + ecx]
add edi, 0xfffffff8
mov dword [eax + ecx - 4], 0x1010140
mov dword [eax + ecx - 8], 0x436de8
jmp 0x42647f
lea ecx, [ebx + 2]
mov dword [esi], ecx
mov eax, ebp
sub eax, ecx
cmp eax, 9
jb case.0x4260ea.84
mov dword [esp + 8], ecx
movsx eax, byte [ebx + 2]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 3]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 4]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 5]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 6]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 7]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 8]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
movsx eax, byte [ebx + 9]
mov dword [esp], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
test eax, eax
je case.0x4260ea.84
lea eax, [ebx + 0xa]
mov dword [esi], eax
cmp eax, ebp
je case.0x4260ea.84
cmp byte [eax], 0x45
jne case.0x4260ea.84
mov ebp, eax
add ebx, 0xb
mov dword [esi], ebx
mov edi, dword [esi + 0x116c]
mov ecx, dword [edi + 4]
lea eax, [ecx + 0x10]
cmp eax, 0xff8
jb 0x426808
mov dword [esp], 0x1000
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
test eax, eax
je 0x426990
mov dword [eax], edi
mov dword [eax + 4], 0
mov dword [esi + 0x116c], eax
xor ecx, ecx
mov edi, eax
add ecx, 0x10
mov dword [edi + 4], ecx
mov eax, dword [esi + 0x116c]
mov ecx, dword [eax + 4]
lea edi, [eax + ecx]
add edi, 0xfffffff8
mov dword [eax + ecx - 4], 0x101013e
mov dword [eax + ecx - 8], 0x436d00
mov edx, dword [esp + 8]
mov dword [eax + ecx], edx
mov dword [eax + ecx + 4], ebp
jmp case.0x4260ea.84
add ebx, 2
mov dword [esi], ebx
mov dword [esp + 0x1c], str.unsigned___int128
mov dword [esp + 0x20], 0x436c19
movsd xmm0, qword [esp + 0x1c]
jmp 0x426958
add ebx, 2
mov dword [esi], ebx
mov dword [esp + 0x64], str.short
mov dword [esp + 0x68], 0x436be0
movsd xmm0, qword [esp + 0x64]
jmp 0x426958
cmp ecx, 3
jb case.0x4260ea.84
cmp al, 0x62
jne case.0x4260ea.84
mov al, byte [ebx + 2]
cmp al, 0x30
je 0x426969
cmp al, 0x31
jne case.0x4260ea.84
cmp byte [ebx + 3], 0x45
jne case.0x4260ea.84
add ebx, 4
mov dword [esi], ebx
mov dword [esp + 0x10], 1
jmp 0x426980
add ebx, 2
mov dword [esi], ebx
mov dword [esp + 0x7c], str.char
mov dword [esp + 0x80], 0x436bc0
movsd xmm0, qword [esp + 0x7c]
jmp 0x426958
add ebx, 2
mov dword [esi], ebx
mov dword [esp + 0x54], 0x436bf0
mov dword [esp + 0x58], 0x436bf0
movsd xmm0, qword [esp + 0x54]
jmp 0x426958
add ebx, 2
mov dword [esi], ebx
mov dword [esp + 0x6c], str.unsigned_char
mov dword [esp + 0x70], 0x436bda
movsd xmm0, qword [esp + 0x6c]
jmp 0x426958
add ebx, 2
mov dword [esi], ebx
mov dword [esp + 0x84], str.wchar_t
mov dword [esp + 0x88], 0x436bbb
movsd xmm0, qword [esp + 0x84]
jmp 0x426958
add ebx, 2
mov dword [esi], ebx
mov dword [esp + 0x5c], str.unsigned_short
mov dword [esp + 0x60], 0x436bef
movsd xmm0, qword [esp + 0x5c]
movsd qword [esp], xmm0
mov ecx, esi
call fcn.00428d70
jmp 0x4261cd
cmp byte [ebx + 3], 0x45
jne case.0x4260ea.84
add ebx, 4
mov dword [esi], ebx
mov dword [esp + 0x10], 0
lea edx, [esp + 0x10]
mov ecx, esi
call fcn.00428e90
jmp 0x4261c9
call fcn.00410780
nop word cs:[eax + eax]
nop