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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xd8
mov esi, dword [esp + 0xf0]
mov eax, dword [esp + 0xec]
lea ecx, [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x100001
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 0x4021
call fcn.00440a40
xor ebx, ebx
cmp eax, 0
jl 0x420a51
mov dword [esp], esi
call fcn.004178f0
shl eax, 1
mov word [esp + 0xb8], ax
movzx eax, ax
add eax, 2
mov word [esp + 0xba], ax
mov dword [esp + 0xbc], esi
mov dword [esp], 0x848
call fcn.004397b0
mov dword [esp + 0x58], eax
mov esi, dword [esp + 0x7c]
mov al, byte [esp + 0x84]
mov byte [esp + 0xa0], al
mov byte [esp + 0x48], 0x25
mov byte [esp + 0x49], 0x2a
mov byte [esp + 0x4a], 0x2b
mov byte [esp + 0x4b], 0x28
xor eax, eax
cmp eax, 4
jae 0x420363
mov dl, byte [esp + eax + 0x48]
mov edi, eax
and edi, 9
xor edi, 9
mov ecx, eax
and ecx, 0xf6
sub ecx, edi
xor cl, dl
add cl, 0x2d
mov byte [esp + eax + 0x48], cl
add eax, 1
jmp 0x42033a
mov edi, dword [esp + 0x48]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x44c010]
jb 0x42037b
jmp 0x420433
mov edx, dword [0x44c014]
cmp dword [edx + ebp*8], 0x557d0c65
sete bl
xor ecx, ecx
mov byte [esp + 0x3b], bl
test bl, 1
jne 0x42039b
jmp 0x420422
mov edx, dword [edx + ebp*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x420422
mov eax, dword [0x44c018]
xor ecx, ecx
lea ecx, [esp + 0xd0]
lea ebx, [esp + 0xb8]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0xb
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x58]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0x848
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], 0
call fcn.0043d120
mov ecx, 1
test byte [esp + 0x3b], 1
je 0x42042b
jmp 0x420433
add ebp, 1
jmp 0x420369
cmp ecx, 2
je 0x42043a
mov edi, eax
cmp edi, 0
setge al
xor ebx, ebx
test al, 1
jne 0x42044b
jmp 0x420972
mov dword [esp + 0x50], 0
xor ebx, ebx
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x58]
jmp 0x420463
mov edi, dword [eax + 0x3c]
shr edi, 1
mov esi, eax
add esi, 0x38
mov dword [esp + 0x54], eax
mov eax, dword [eax + 0x38]
and eax, 0x400
cmp eax, 0
jne 0x420648
mov al, byte [esp + 0x78]
mov byte [esp + 0x88], al
mov byte [esp + 0x40], 0x2e
mov byte [esp + 0x41], 1
mov byte [esp + 0x42], 2
mov byte [esp + 0x43], 3
xor eax, eax
cmp eax, 4
jae 0x4204bf
mov cl, byte [esp + eax + 0x40]
mov dl, al
add dl, 0xc0
xor dl, cl
add dl, 0x40
mov byte [esp + eax + 0x40], dl
add eax, 1
jmp 0x4204a3
jmp 0x4204c1
mov ebp, dword [esp + 0x54]
add ebp, 0x44
lea eax, [esp + 0x40]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00420a70
jmp 0x4204de
cmp eax, 0
setne al
test al, 1
jne 0x4204ed
jmp 0x420648
mov al, byte [esp + 0x74]
mov byte [esp + 0x8c], al
mov byte [esp + 0xa8], 0x46
mov byte [esp + 0xa9], 0x91
mov byte [esp + 0xaa], 0x44
mov byte [esp + 0xab], 0x93
mov byte [esp + 0xac], 0x9c
mov byte [esp + 0xad], 0x9d
mov eax, 6
mov byte [esp + eax + 0xa8], 0
add eax, 1
cmp eax, 0xb
jne 0x42052d
xor eax, eax
cmp eax, 0xb
jae 0x420580
mov cl, byte [esp + eax + 0xa8]
mov byte [esp + 0x39], cl
mov edx, ebx
mov ebx, eax
add ebx, 4
mov ecx, 0x1b
sub ecx, eax
and ecx, 0xee
and ebx, 0x11
or ecx, ebx
mov ebx, edx
xor cl, byte [esp + 0x39]
xor cl, 0xee
add cl, 0x8c
mov byte [esp + eax + 0xa8], cl
add eax, 1
jmp 0x42053f
jmp 0x420582
jmp 0x420584
lea eax, [esp + 0xa8]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00420a70
cmp eax, 0
setne al
jmp 0x4205a3
test al, 1
jne 0x4205ac
jmp 0x420648
mov eax, edi
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4205c7
mov ecx, eax
mov dword [esp], ecx
call fcn.0040cf60
mov dword [esp + 0xc0], eax
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
call fcn.00417550
mov word [eax], 0
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0x28]
mov edx, dword [esi]
and edx, 0x10
xor eax, eax
cmp edx, 0
setne al
mov edx, dword [esp + 0xf8]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov esi, dword [esp + 0xc0]
mov dword [esp], esi
and eax, 1
mov dword [esp + 4], eax
call dword [esp + 0xf4]
jmp 0x420628
and al, 1
movzx eax, al
and bl, 1
movzx ecx, bl
or ecx, eax
cmp ecx, 0
setne bl
and bl, 1
mov dword [esp], esi
call fcn.0040cf70
jmp 0x420648
cmp dword [esp + 0x3c], 0
sete al
test al, 1
jne 0x42065a
mov edi, dword [esp + 0x50]
jmp 0x420689
mov dword [esp], 0x10900
call fcn.004397b0
mov edi, eax
cmp edi, 0
jne 0x420683
mov dword [esp + 0x3c], 0
mov eax, 2
mov edi, dword [esp + 0x54]
jmp 0x420964
mov dword [esp + 0x3c], edi
jmp 0x420689
cmp edi, dword [esp + 0x3c]
jne 0x420947
mov al, byte [esp + 0x68]
mov byte [esp + 0x90], al
mov byte [esp + 0x6c], 0x20
mov byte [esp + 0x6d], 0x18
mov byte [esp + 0x6e], 0x23
mov byte [esp + 0x6f], 0x23
mov eax, 4
mov byte [esp + eax + 0x6c], 0
add eax, 1
cmp eax, 7
jne 0x4206b7
xor eax, eax
cmp eax, 7
jae 0x4206eb
mov cl, byte [esp + eax + 0x6c]
mov dl, al
add dl, 0x38
xor dl, cl
add dl, 0xe8
mov byte [esp + eax + 0x6c], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4206c6
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc8], eax
mov al, byte [esp + 0x80]
mov byte [esp + 0xa4], al
mov byte [esp + 0x44], 0x25
mov byte [esp + 0x45], 0x2a
mov byte [esp + 0x46], 0x2b
mov byte [esp + 0x47], 0x28
xor eax, eax
cmp eax, 4
jae 0x42074e
mov dl, byte [esp + eax + 0x44]
mov esi, eax
and esi, 9
xor esi, 9
mov ecx, eax
and ecx, 0xf6
sub ecx, esi
xor cl, dl
add cl, 0x2d
mov byte [esp + eax + 0x44], cl
add eax, 1
jmp 0x420725
mov dword [esp + 0xb4], edi
mov esi, dword [esp + 0x44]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x44c010]
jb 0x42076d
jmp 0x42083e
mov edi, dword [0x44c014]
cmp dword [edi + ebp*8], 0x557d0c65
sete dl
xor ecx, ecx
mov byte [esp + 0x3a], dl
test dl, 1
jne 0x42078d
jmp 0x42082d
mov edx, dword [edi + ebp*8 + 4]
mov ecx, 2
cmp edx, esi
je 0x42082d
mov eax, dword [0x44c018]
xor ecx, ecx
lea ecx, [esp + 0xd0]
mov edi, esi
mov esi, ebx
lea ebx, [esp + 0xb8]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0xb
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], ebx
mov ebx, esi
mov esi, edi
mov dword [esp + 0x34], 0
call fcn.0043d120
mov ecx, 1
test byte [esp + 0x3a], 1
je 0x420836
jmp 0x42083e
add ebp, 1
jmp 0x42075b
cmp ecx, 2
je 0x420845
mov esi, eax
mov al, byte [esp + 0x5c]
mov byte [esp + 0x94], al
mov byte [esp + 0x60], 0xef
mov byte [esp + 0x61], 0xeb
mov byte [esp + 0x62], 0xea
mov byte [esp + 0x63], 0x69
mov eax, 4
mov byte [esp + eax + 0x60], 0
add eax, 1
cmp eax, 7
jne 0x420869
xor eax, eax
cmp eax, 7
jae 0x4208df
mov edi, esi
mov esi, ebx
movzx ebx, byte [esp + eax + 0x60]
mov edx, eax
add edx, 0x9a1fd9a7
mov ecx, 0x65e02658
sub ecx, eax
and ecx, 0xca05c5e3
mov ebp, edx
and ebp, 0x35fa3a1c
or ecx, ebp
xor ecx, ebx
xor ecx, 0xca05c5e3
mov ebp, eax
add ebp, 0xa7
and ebp, ebx
or ecx, ebp
and edx, ebx
mov ebx, esi
mov esi, edi
sub ecx, edx
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, 0xbf
add ecx, edx
add cl, 0xfd
mov byte [esp + eax + 0x60], cl
add eax, 1
jmp 0x420878
mov eax, dword [esp + 0x60]
cmp esi, eax
mov edi, dword [esp + 0xb4]
jne 0x42091c
xor eax, eax
mov edx, edi
jmp 0x4208f4
mov ecx, edx
mov esi, dword [ecx]
cmp esi, 0
je 0x42090b
shr esi, 2
shl esi, 2
mov edx, ecx
add edx, esi
mov eax, ecx
jmp 0x4208f4
cmp eax, 0
je 0x420918
mov dword [eax], 0
jmp 0x420918
xor esi, esi
jmp 0x42091c
cmp esi, 0
jge 0x420934
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.00439840
mov eax, 2
jmp 0x420938
xor eax, eax
jmp 0x420938
cmp eax, 0
je 0x420947
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x54]
jmp 0x420964
mov eax, dword [edi]
cmp eax, 0
je 0x420958
mov ecx, edi
add ecx, eax
mov dword [esp + 0x50], ecx
jmp 0x420962
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x50], eax
jmp 0x420962
xor eax, eax
test eax, eax
mov eax, edi
je 0x420463
jmp 0x420970
jmp 0x420972
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.00439840
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc4], eax
mov al, byte [esp + 0x98]
mov byte [esp + 0x9c], al
mov byte [esp + 0x4c], 0x25
mov byte [esp + 0x4d], 0x2a
mov byte [esp + 0x4e], 0x2b
mov byte [esp + 0x4f], 0x28
xor eax, eax
cmp eax, 4
jae 0x4209d6
mov dl, byte [esp + eax + 0x4c]
mov edi, eax
and edi, 9
xor edi, 9
mov ecx, eax
and ecx, 0xf6
sub ecx, edi
xor cl, dl
add cl, 0x2d
mov byte [esp + eax + 0x4c], cl
add eax, 1
jmp 0x4209ad
mov edi, dword [esp + 0x4c]
xor ebp, ebp
mov eax, 2
cmp ebp, dword [0x44c010]
jb 0x4209eb
jmp 0x420a4c
mov esi, ebx
mov ecx, dword [0x44c014]
cmp dword [ecx + ebp*8], 0xb62b8d10
sete bl
xor eax, eax
test bl, 1
jne 0x420a06
jmp 0x420a3c
mov ecx, dword [ecx + ebp*8 + 4]
mov eax, 2
cmp ecx, edi
je 0x420a3c
mov eax, dword [0x44c018]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xc], eax
call fcn.0043d120
mov eax, 1
test bl, 1
je 0x420a45
mov ebx, esi
jmp 0x420a4c
add ebp, 1
mov ebx, esi
jmp 0x4209dc
cmp eax, 2
jne 0x420a51
and bl, 1
movzx eax, bl
add esp, 0xd8
pop esi
pop edi
pop ebx
pop ebp
ret