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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, dword [edi + 8]
mov ebx, dword [edi]
xor eax, eax
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], eax
add esi, 0x28
mov eax, 8
mov ecx, esi
mov dword [ebp - 0x18], ebx
call fcn.004224d0
cmp dword [edi + 0x5c], 7
mov dword [edi + 0x14], 0
jne 0x42273a
mov eax, 1
mov byte [ebx + 0x40], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x64]
mov ebx, dword [edi + 0x1c]
and ecx, 3
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ecx
cmp ecx, 1
jne 0x4227c3
mov eax, dword [edi + 8]
add eax, 0x168
test byte [eax + 0x1c], 0x10
mov dword [ebp - 0x14], eax
je 0x422770
mov ebx, dword [eax + 0x18]
mov eax, dword [eax + 4]
shr ebx, 2
mov dword [ebp - 8], ebx
mov dword [ebp - 4], eax
jmp 0x422773
mov ebx, dword [ebp - 8]
xor ecx, ecx
xor edx, edx
xor eax, eax
cmp ebx, 2
jl 0x42279f
mov ebx, dword [ebp - 4]
mov ebx, dword [ebx + eax*4]
add ecx, dword [ebx + 4]
mov ebx, dword [ebp - 4]
mov ebx, dword [ebx + eax*4 + 4]
add edx, dword [ebx + 4]
mov ebx, dword [ebp - 8]
add eax, 2
dec ebx
cmp eax, ebx
jl 0x42277e
mov ebx, dword [ebp - 8]
cmp eax, ebx
jge 0x4227b1
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0xc]
add ebx, dword [eax + 4]
jmp 0x4227b4
mov ebx, dword [ebp - 0xc]
add edx, ecx
add ebx, edx
jmp 0x4227c0
mov ecx, dword [ebp - 0x10]
mov eax, dword [edi + 0x58]
lea edx, [eax + 1]
mov dword [edi + 0x58], edx
cmp eax, ebx
jge 0x422827
cmp ecx, 2
jne 0x4227e1
mov edx, dword [edi + 4]
lea ecx, [eax + eax*4]
cmp byte [edx + ecx*4], 0x98
jne 0x4227c0
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx + 0xe8]
test ecx, ecx
je 0x42283c
mov dword [edi + 0x5c], 9
mov ecx, dword [str.interrupted]
mov esi, 1
mov eax, str.unknown_error
test ecx, ecx
je 0x42280b
mov eax, ecx
push eax
push 0x4c5b38
push edx
add edi, 0x38
push edi
call fcn.004045f0
add esp, 0x10
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, 0x65
mov dword [edi + 0x5c], 0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x1c]
cmp eax, ecx
jge 0x422851
mov ecx, dword [edi + 4]
lea edx, [eax + eax*4]
lea ebx, [ecx + edx*4]
mov dword [ebp - 0xc], ebx
jmp 0x42287f
mov ebx, dword [ebp - 4]
sub eax, ecx
mov ecx, dword [ebx]
mov ecx, dword [ecx + 4]
xor edx, edx
cmp eax, ecx
jl 0x42286f
sub eax, ecx
mov ecx, dword [ebx + edx*4 + 4]
mov ecx, dword [ecx + 4]
inc edx
cmp eax, ecx
jge 0x422861
mov edx, dword [ebx + edx*4]
mov edx, dword [edx]
lea ecx, [eax + eax*4]
lea ecx, [edx + ecx*4]
mov dword [ebp - 0xc], ecx
mov ebx, ecx
mov edx, dword [edi + 0x64]
and dl, 3
cmp dl, 1
jne 0x42293a
mov byte [esi + 0x1e], dl
cdq
mov dword [esi + 0x14], edx
mov ecx, 4
mov word [esi + 0x1c], cx
mov dword [esi + 0x10], eax
mov edx, 0xa02
mov word [esi + 0x44], dx
movzx eax, byte [ebx]
mov eax, dword [eax*4 + 0x4c24b0]
mov dword [esi + 0x2c], eax
mov ecx, eax
test eax, eax
je 0x4228d0
cmp byte [eax], 0
je 0x4228c8
inc ecx
cmp byte [ecx], 0
jne 0x4228c2
sub ecx, eax
and ecx, 0x3fffffff
mov dword [esi + 0x40], ecx
mov word [esi + 0x46], 0x103
add esi, 0x50
cmp byte [ebx + 1], 0xee
jne 0x42293a
mov edx, dword [ebp - 8]
lea ecx, [edx*4 + 4]
mov dword [ebp - 0x10], ecx
xor ecx, ecx
test edx, edx
jle 0x422905
mov eax, dword [ebx + 0x10]
mov edi, dword [ebp - 4]
cmp dword [edi + ecx*4], eax
je 0x422905
inc ecx
cmp ecx, edx
jl 0x4228f8
cmp ecx, edx
jne 0x42293a
mov edi, dword [ebp - 0x14]
xor eax, eax
test edx, edx
setne al
push eax
mov eax, dword [ebp - 0x10]
call fcn.00420190
add esp, 4
test eax, eax
jne 0x42293a
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi + 4]
mov eax, dword [ebp - 8]
mov dword [ecx + eax*4], edx
mov ecx, dword [ebp - 0x10]
or word [edi + 0x1c], 0x10
mov dword [edi + 0x18], ecx
mov edx, 4
mov word [esi + 0x1c], dx
mov eax, dword [ebx + 4]
cdq
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
mov byte [esi + 0x1e], 1
mov eax, 4
mov word [esi + 0x44], ax
mov eax, dword [ebx + 8]
cdq
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
mov byte [esi + 0x46], 1
mov ecx, 4
mov word [esi + 0x6c], cx
mov eax, dword [ebx + 0xc]
cdq
mov dword [esi + 0x60], eax
push 0
lea eax, [ecx + 0x1c]
lea edi, [esi + 0x78]
mov dword [esi + 0x64], edx
mov byte [esi + 0x6e], 1
call fcn.00420190
add esp, 4
test eax, eax
je 0x42299f
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
mov edx, 0x602
mov word [esi + 0x94], dx
call fcn.004220e0
mov ecx, dword [esi + 0x7c]
cmp eax, ecx
je 0x4229d2
push 1
push eax
xor eax, eax
or ecx, 0xffffffff
lea edx, [esi + 0x78]
call fcn.00420c90
add esp, 8
jmp 0x4229fa
mov eax, ecx
test ecx, ecx
je 0x4229ed
cmp byte [ecx], 0
je 0x4229e6
lea ecx, [ecx]
inc eax
cmp byte [eax], 0
jne 0x4229e0
sub eax, ecx
and eax, 0x3fffffff
mov dword [esi + 0x90], eax
mov byte [esi + 0x97], 1
mov ebx, dword [ebp + 8]
mov byte [esi + 0x96], 3
mov eax, dword [ebx + 0x64]
and al, 3
cmp al, 1
jne 0x422a7a
push 0
mov eax, 4
lea edi, [esi + 0xa0]
call fcn.00420190
add esp, 4
test eax, eax
jne 0x422993
mov edx, dword [ebp - 0xc]
mov ecx, 0x602
mov word [esi + 0xbc], cx
mov ecx, dword [esi + 0xa4]
mov dword [esi + 0xb8], 2
movzx eax, byte [edx + 3]
push eax
push str._.2x
push ecx
push 3
call fcn.00405ca0
mov word [esi + 0xbe], 0x103
mov edx, 1
add esp, 0x10
mov word [esi + 0xe4], dx
mov byte [esi + 0xe6], 5
mov ax, word [ebx + 0x64]
mov edx, dword [ebx + 8]
and ax, 3
dec ax
mov ecx, 2
sub cx, ax
add cx, cx
mov esi, 0x64
add cx, cx
pop edi
add edx, 0x28
mov eax, esi
pop esi
mov word [ebx + 0x2c], cx
mov dword [ebx + 0x14], edx
mov dword [ebx + 0x5c], 0
pop ebx
mov esp, ebp
pop ebp
ret