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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
push ebx
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov eax, 1
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x54], eax
mov eax, dword [ebx]
push esi
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [eax + 0x24]
push edi
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x18], 0
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x24], eax
test esi, esi
jne 0x4205fe
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebx
mov edi, esi
call fcn.00420270
add esp, 4
test eax, eax
jne 0x4205f5
mov ecx, dword [esp + 0x20]
push 0
lea edx, [esp + 0x48]
push edx
mov dword [ebx + 0x1c], 0x4b521c
mov dword [ebx + 0x20], esi
mov eax, dword [ecx]
push esi
push eax
mov eax, dword [eax + 0xd0]
call eax
add esp, 0x10
test eax, eax
jne 0x42068d
mov eax, dword [esp + 0x44]
mov edi, dword [eax + 8]
mov dword [esp + 0x1c], edi
cmp esi, dword [edi + 4]
je 0x420665
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x20]
cmp esi, 1
mov dword [edi + 0x48], eax
setne al
dec al
and al, 0x64
mov dword [edi + 0x38], ecx
mov dword [edi + 0x34], edx
mov dword [edi + 4], esi
mov byte [edi + 9], al
mov cl, byte [edi]
mov esi, edi
mov byte [esp + 0xf], cl
mov byte [edi], 0
call fcn.004181e0
test eax, eax
je 0x4206a1
push eax
push 0x4b5250
push ebx
call fcn.004201e0
add esp, 0xc
jmp 0x420ba2
push eax
push 0x4b5228
push ebx
call fcn.004201e0
add esp, 0xc
jmp 0x420baa
movzx edx, byte [edi + 9]
mov eax, dword [edi + 0x38]
mov dword [ebx + 0x1c], 0x4b5278
movzx ecx, byte [edx + eax + 5]
movzx esi, byte [edx + eax + 6]
shl ecx, 8
or ecx, esi
movzx esi, byte [edx + eax + 3]
dec ecx
and ecx, 0xffff
inc ecx
mov dword [esp + 0x28], edx
movzx edx, byte [edx + eax + 4]
mov dword [esp + 0x40], ecx
movzx ecx, byte [edi + 8]
shl esi, 8
or esi, edx
mov edx, 3
sub edx, ecx
cmp byte [edi + 8], 0
mov ecx, edx
mov edx, dword [esp + 0x28]
lea ecx, [edx + ecx*4]
mov dword [esp + 0x58], ecx
lea ecx, [ecx + esi*2]
lea ecx, [ecx + eax - 2]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x30], ecx
jne 0x420773
mov eax, dword [edx + eax + 8]
mov edx, dword [esp + 0x20]
cmp byte [edx + 0x11], 0
bswap eax
mov dword [esp + 0x34], eax
je 0x42074b
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebx + 0x1c], 0x4b5294
push ecx
mov bl, 5
mov edi, eax
call fcn.004202f0
mov esi, dword [esp + 0x14]
mov ebx, dword [ebp + 8]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
add esp, 4
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
push edx
push ecx
lea edx, [ebp + 0x14]
push edx
push eax
push ebx
call fcn.004205a0
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x28]
add esp, 0x14
mov dword [esp + 0x34], 0
jmp 0x420780
mov ecx, dword [ebx + 0x44]
mov dword [esp + 0x18], ecx
mov dword [ecx], 0
lea ecx, [esi - 1]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x10], ecx
test ecx, ecx
js 0x420996
jmp 0x4207a4
mov ecx, dword [esp + 0x10]
cmp dword [ebx + 0x10], 0
je 0x420996
mov dword [ebx + 0x24], ecx
mov ecx, dword [esp + 0x30]
mov dx, word [ecx]
sub dword [esp + 0x30], 2
mov ch, dl
mov cl, dh
movzx esi, cx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x4c], esi
cmp esi, ecx
jb 0x420968
mov edx, dword [esp + 0x24]
add edx, 0xfffffffc
mov dword [esp + 0x48], edx
cmp esi, edx
ja 0x420968
add eax, esi
lea edx, [esp + 0x68]
push edx
push eax
mov dword [esp + 0x44], eax
mov eax, dword [edi + 0x50]
push edi
call eax
movzx ecx, word [esp + 0x86]
add ecx, esi
add esp, 0xc
cmp ecx, dword [esp + 0x24]
jbe 0x42081f
push 0x4b52d0
push ebx
call fcn.004201e0
add esp, 8
jmp 0x420980
cmp byte [edi + 2], 0
je 0x42086c
cmp dword [esp + 0x34], 0
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
je 0x420842
cmp eax, dword [ebp + 0x18]
jg 0x42084e
jl 0x420866
cmp ecx, dword [ebp + 0x14]
ja 0x42084e
jmp 0x420866
cmp eax, dword [ebp + 0x18]
jl 0x420866
jg 0x42084e
cmp ecx, dword [ebp + 0x14]
jb 0x420866
push eax
push ecx
push 0x4b52e8
push ebx
call fcn.004201e0
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
add esp, 0x10
mov dword [ebp + 0x14], ecx
mov dword [ebp + 0x18], eax
movzx ecx, word [esp + 0x78]
mov eax, dword [esp + 0x74]
cmp eax, ecx
jbe 0x4208dc
mov edx, dword [esp + 0x24]
sub eax, ecx
lea eax, [eax + edx - 5]
xor edx, edx
div dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
cmp byte [edx + 0x11], 0
mov dword [esp + 0x50], eax
movzx eax, word [esp + 0x7a]
mov eax, dword [eax + ecx - 4]
bswap eax
mov dword [esp + 0x48], eax
je 0x4208cb
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
push ecx
mov bl, 3
mov edi, eax
call fcn.004202f0
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x4c]
mov ebx, esi
mov esi, dword [esp + 0x50]
add esp, 4
mov edx, dword [esp + 0x50]
push edx
push 0
mov ecx, ebx
call fcn.00420370
add esp, 8
cmp byte [edi + 8], 0
jne 0x42094f
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x20]
cmp byte [ecx + 0x11], 0
bswap eax
mov dword [esp + 0x34], eax
je 0x420915
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
push edx
mov bl, 5
mov edi, eax
call fcn.004202f0
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
add esp, 4
mov ebx, esi
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
push ecx
push edx
lea ecx, [ebp + 0x14]
push ecx
push eax
push ebx
call fcn.004205a0
mov esi, eax
add esp, 0x14
mov dword [esp + 0x34], 0
cmp esi, dword [esp + 0x2c]
je 0x420988
push 0x4b5300
push ebx
call fcn.004201e0
add esp, 8
mov dword [esp + 0x2c], esi
jmp 0x420988
movzx edx, word [esp + 0x7a]
mov eax, dword [esp + 0x18]
lea ecx, [edx + esi - 1]
shl esi, 0x10
or ecx, esi
call fcn.00420510
jmp 0x420988
mov eax, dword [esp + 0x24]
add eax, 0xfffffffc
push eax
push ecx
push esi
push 0x4b52b0
push ebx
call fcn.004201e0
add esp, 0x14
mov dword [esp + 0x38], 0
dec dword [esp + 0x10]
mov eax, dword [esp + 0x14]
jns 0x4207a0
cmp dword [esp + 0x38], 0
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edx
mov edx, dword [ebp + 0x18]
mov dword [ecx + 4], edx
mov dword [ebx + 0x1c], 0
je 0x420bcb
cmp dword [ebx + 0x10], 0
jle 0x420ba2
cmp byte [edi + 8], 0
jne 0x420a60
mov ecx, dword [ebx + 0x44]
mov dword [esp + 0x18], ecx
mov dword [ecx], 0
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x10], ecx
test ecx, ecx
js 0x420a60
mov edx, dword [esp + 0x58]
lea esi, [edx + ecx*2]
add esi, eax
mov dword [esp + 0x38], esi
jmp 0x4209fa
mov esi, dword [esp + 0x38]
mov cx, word [esi]
mov dh, cl
mov dl, ch
mov ecx, dword [edi + 0x4c]
movzx esi, dx
add eax, esi
push eax
push edi
call ecx
movzx edx, ax
mov eax, dword [esp + 0x20]
inc dword [eax]
lea ecx, [edx + esi - 1]
mov edx, dword [eax]
shl esi, 0x10
or ecx, esi
mov dword [eax + edx*4], ecx
mov ecx, edx
add esp, 8
shr ecx, 1
je 0x420a4a
lea ecx, [ecx]
mov esi, dword [eax + ecx*4]
mov edi, dword [eax + edx*4]
cmp esi, edi
jbe 0x420a46
mov dword [eax + ecx*4], edi
mov dword [eax + edx*4], esi
mov edx, ecx
shr ecx, 1
jne 0x420a30
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
sub dword [esp + 0x38], 2
dec eax
mov dword [esp + 0x10], eax
test eax, eax
mov eax, dword [esp + 0x14]
jns 0x4209f6
mov ecx, dword [esp + 0x28]
movzx edx, byte [ecx + eax + 1]
movzx ecx, byte [ecx + eax + 2]
shl edx, 8
or edx, ecx
mov dword [esp + 0x10], edx
jle 0x420ae6
lea esp, [esp]
movzx ecx, byte [eax + edx + 2]
movzx eax, byte [eax + edx + 3]
mov esi, dword [esp + 0x18]
inc dword [esi]
shl ecx, 8
or ecx, eax
lea eax, [ecx + edx - 1]
mov ecx, edx
shl ecx, 0x10
or eax, ecx
mov ecx, dword [esi]
mov dword [esi + ecx*4], eax
mov eax, ecx
shr eax, 1
je 0x420aca
jmp 0x420ab0
mov edx, dword [esi + eax*4]
mov edi, dword [esi + ecx*4]
cmp edx, edi
jbe 0x420ac6
mov dword [esi + eax*4], edi
mov dword [esi + ecx*4], edx
mov ecx, eax
shr eax, 1
jne 0x420ab0
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
movzx ecx, byte [edx + eax]
movzx edx, byte [eax + edx + 1]
shl ecx, 8
or ecx, edx
mov edx, ecx
mov dword [esp + 0x10], ecx
jg 0x420a80
jmp 0x420aea
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x40]
lea eax, [esp + 0x40]
push eax
mov eax, esi
mov dword [esp + 0x3c], 0
dec edi
call fcn.00420540
add esp, 4
test eax, eax
je 0x420b60
lea ebx, [ebx]
mov edx, dword [esp + 0x40]
mov eax, edx
mov ecx, edi
shr eax, 0x10
and ecx, 0xffff
cmp ecx, eax
jae 0x420b4a
sub eax, ecx
mov ecx, dword [esp + 0x38]
lea eax, [ecx + eax - 1]
lea ecx, [esp + 0x40]
mov dword [esp + 0x38], eax
push ecx
mov eax, esi
mov edi, edx
call fcn.00420540
add esp, 4
test eax, eax
jne 0x420b10
jmp 0x420b60
mov eax, dword [ebp + 0xc]
push eax
shr edx, 0x10
push edx
push 0x4b531c
push ebx
call fcn.004201e0
add esp, 0x10
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
and edi, 0xffff
sub eax, edi
cmp dword [esi], 0
lea eax, [ecx + eax - 1]
jne 0x420b9e
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [edx + ecx + 7]
cmp eax, ecx
je 0x420b9e
mov edx, dword [ebp + 0xc]
push edx
push ecx
push eax
push 0x4b5344
push ebx
call fcn.004201e0
add esp, 0x14
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 0x48]
call fcn.00412bd0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x2c]
pop edi
pop esi
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x20], edx
inc eax
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [esp + 0xf]
mov byte [edi], al
jmp 0x420ba2