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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov ebx, dword [edi + 8]
xor esi, esi
mov dword [ebp - 0x1c], eax
add ebx, 0x28
lea eax, [esi + 8]
mov ecx, ebx
mov dword [ebp - 4], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], esi
call fcn.00426c30
cmp dword [edi + 0x5c], 7
mov dword [edi + 0x14], esi
jne 0x426e97
mov ecx, dword [ebp - 0x1c]
mov eax, 1
mov byte [ecx + 0x40], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x64]
mov edx, dword [edi + 0x1c]
and eax, 3
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x20], eax
cmp eax, 1
jne 0x426f23
mov eax, dword [edi + 8]
add eax, 0x168
test byte [eax + 0x1c], 0x10
mov dword [ebp - 0x14], eax
je 0x426ecd
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 4]
shr ecx, 2
mov dword [ebp - 4], ecx
mov dword [ebp - 0x10], eax
mov esi, eax
xor ecx, ecx
xor eax, eax
cmp dword [ebp - 4], 2
mov dword [ebp - 8], ecx
jl 0x426f04
lea ebx, [ebx]
mov edx, dword [esi + eax*4]
add ecx, dword [edx + 4]
add eax, 2
mov dword [ebp - 0x18], ecx
mov ecx, dword [esi + eax*4 - 4]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 4]
add dword [ebp - 8], edx
dec ecx
cmp eax, ecx
mov ecx, dword [ebp - 0x18]
jl 0x426ee0
mov edx, dword [ebp - 0xc]
cmp eax, dword [ebp - 4]
jge 0x426f0f
mov eax, dword [esi + eax*4]
add edx, dword [eax + 4]
mov eax, dword [ebp - 8]
add eax, ecx
add edx, eax
mov dword [ebp - 0xc], edx
jmp 0x426f23
mov edx, dword [ebp - 0xc]
mov eax, dword [edi + 0x58]
lea ecx, [eax + 1]
mov dword [edi + 0x58], ecx
cmp eax, edx
jge 0x426f88
cmp dword [ebp - 0x20], 2
jne 0x426f42
mov ecx, dword [edi + 4]
lea edx, [eax + eax*4]
cmp byte [ecx + edx*4], 0x98
jne 0x426f20
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0xe8]
test ecx, ecx
je 0x426f9d
mov dword [edi + 0x5c], 9
mov ecx, dword [str.interrupted]
mov esi, 1
mov eax, str.unknown_error
test ecx, ecx
je 0x426f6c
mov eax, ecx
push eax
push 0x4e2a14
push edx
add edi, 0x38
push edi
call fcn.00409480
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 0x426fb2
mov ecx, dword [edi + 4]
lea edx, [eax + eax*4]
lea esi, [ecx + edx*4]
mov dword [ebp - 0xc], esi
jmp 0x426fde
sub eax, ecx
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
xor edx, edx
cmp eax, ecx
jl 0x426fce
nop
sub eax, ecx
mov ecx, dword [esi + edx*4 + 4]
mov ecx, dword [ecx + 4]
inc edx
cmp eax, ecx
jge 0x426fc0
mov edx, dword [esi + edx*4]
mov edx, dword [edx]
lea ecx, [eax + eax*4]
lea ecx, [edx + ecx*4]
mov dword [ebp - 0xc], ecx
mov esi, ecx
mov edx, dword [edi + 0x64]
and dl, 3
cmp dl, 1
jne 0x42709b
mov byte [ebx + 0x1e], dl
cdq
mov dword [ebx + 0x14], edx
mov ecx, 4
mov word [ebx + 0x1c], cx
mov dword [ebx + 0x10], eax
mov edx, 0xa02
mov word [ebx + 0x44], dx
movzx eax, byte [esi]
mov eax, dword [eax*4 + 0x4e34f8]
mov dword [ebx + 0x2c], eax
mov ecx, eax
test eax, eax
je 0x42702f
cmp byte [eax], 0
je 0x427027
inc ecx
cmp byte [ecx], 0
jne 0x427021
sub ecx, eax
and ecx, 0x3fffffff
mov dword [ebx + 0x40], ecx
mov word [ebx + 0x46], 0x103
add ebx, 0x50
cmp byte [esi + 1], 0xee
jne 0x42709b
mov edx, dword [ebp - 4]
lea ecx, [edx*4 + 4]
mov dword [ebp - 0x1c], ecx
xor ecx, ecx
test edx, edx
jle 0x427064
mov eax, dword [esi + 0x10]
mov edi, dword [ebp - 0x10]
cmp dword [edi + ecx*4], eax
je 0x427064
inc ecx
cmp ecx, edx
jl 0x427057
cmp ecx, edx
jne 0x42709b
mov edi, dword [ebp - 0x14]
xor eax, eax
test edx, edx
setne al
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00424a00
add esp, 4
test eax, eax
jne 0x42709b
mov edx, dword [esi + 0x10]
mov eax, edi
mov ecx, dword [eax + 4]
mov edi, dword [ebp - 4]
mov dword [ecx + edi*4], edx
mov ecx, dword [ebp - 0x1c]
or word [eax + 0x1c], 0x10
mov dword [eax + 0x18], ecx
mov edx, 4
mov word [ebx + 0x1c], dx
mov eax, dword [esi + 4]
cdq
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], edx
mov byte [ebx + 0x1e], 1
mov eax, 4
mov word [ebx + 0x44], ax
mov eax, dword [esi + 8]
cdq
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x3c], edx
mov byte [ebx + 0x46], 1
mov ecx, 4
mov word [ebx + 0x6c], cx
mov eax, dword [esi + 0xc]
cdq
mov dword [ebx + 0x60], eax
mov dword [ebx + 0x64], edx
mov byte [ebx + 0x6e], 1
mov eax, dword [ebx + 0x78]
mov ecx, dword [ebx + 0x9c]
add ebx, 0x78
mov dword [ebp - 0x20], ebx
test eax, eax
je 0x427110
test ecx, ecx
je 0x427110
cmp ecx, dword [eax + 0x10c]
jb 0x427110
cmp ecx, dword [eax + 0x110]
jae 0x427110
movzx eax, word [eax + 0xf0]
jmp 0x42711a
push ecx
call dword [0x4f8be0]
add esp, 4
cmp eax, 0x20
jge 0x427138
mov eax, dword [ebx + 0x24]
mov ecx, dword [ebx]
call fcn.00409080
mov esi, dword [ebx]
mov ecx, 0x20
call fcn.004092c0
mov dword [ebx + 0x24], eax
mov edx, 0x400
test word [ebx + 0x1c], dx
je 0x427153
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x427153
mov ecx, dword [ebx + 4]
push ecx
call eax
add esp, 4
mov eax, dword [ebx + 0x24]
mov dword [ebx + 4], eax
test eax, eax
jne 0x427168
mov edx, 1
mov word [ebx + 0x1c], dx
jmp 0x427171
mov ecx, 0xe7ff
and word [ebx + 0x1c], cx
mov dword [ebx + 0x20], 0
test eax, eax
jne 0x427188
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0xc]
mov edx, 0x602
mov word [ebx + 0x1c], dx
mov ebx, eax
mov eax, esi
call fcn.00426840
mov edi, dword [ebp - 0x20]
mov ecx, dword [edi + 4]
cmp eax, ecx
je 0x4271bb
push 1
push eax
xor eax, eax
or ecx, 0xffffffff
mov edx, edi
call fcn.00425450
add esp, 8
jmp 0x4271da
mov eax, ecx
test ecx, ecx
je 0x4271d3
cmp byte [ecx], 0
je 0x4271cc
inc eax
cmp byte [eax], 0
jne 0x4271c6
sub eax, ecx
and eax, 0x3fffffff
mov dword [edi + 0x18], eax
mov byte [edi + 0x1f], 1
mov ebx, dword [ebp + 8]
mov byte [edi + 0x1e], 3
mov eax, dword [ebx + 0x64]
and al, 3
add edi, 0x28
cmp al, 1
jne 0x42723f
push 0
mov eax, 4
call fcn.00424a00
add esp, 4
test eax, eax
jne 0x42717c
mov eax, dword [edi + 4]
mov ecx, 0x602
mov word [edi + 0x1c], cx
mov dword [edi + 0x18], 2
movzx edx, byte [esi + 3]
push edx
push str._.2x
push eax
push 3
call fcn.0040a9a0
mov word [edi + 0x1e], 0x103
mov ecx, 1
add esp, 0x10
mov word [edi + 0x44], cx
mov byte [edi + 0x46], 5
mov dx, word [ebx + 0x64]
mov ecx, dword [ebx + 8]
and dx, 3
dec dx
mov eax, 2
sub ax, dx
add ax, ax
add ax, ax
mov esi, 0x64
mov word [ebx + 0x2c], ax
pop edi
add ecx, 0x28
mov eax, esi
pop esi
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0x5c], 0
pop ebx
mov esp, ebp
pop ebp
ret