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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xcc
mov esi, dword [esp + 0xe4]
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0x80]
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.0043bda0
xor ecx, ecx
cmp eax, 0
jl 0x420b6d
mov dword [esp], esi
call fcn.00413c30
shl eax, 1
mov word [esp + 0xac], ax
movzx eax, ax
add eax, 2
mov word [esp + 0xae], ax
mov dword [esp + 0xb0], esi
mov dword [esp], 0x848
call fcn.00437ee0
mov dword [esp + 0x6c], eax
mov esi, dword [esp + 0x80]
mov al, byte [esp + 0x88]
mov byte [esp + 0xa4], al
mov byte [esp + 0x52], 0xa
mov byte [esp + 0x53], 9
mov byte [esp + 0x54], 8
mov byte [esp + 0x55], 0x17
xor eax, eax
cmp eax, 4
jae 0x420421
movzx edx, byte [esp + eax + 0x52]
mov ecx, eax
add ecx, 0x99df7a6d
xor ecx, edx
mov edx, ecx
and edx, 0x31042c95
mov edi, ecx
and edi, 2
xor edi, 2
mov ebx, ecx
and ebx, 0x31042c95
imul ebx, edi
mov edi, ecx
and edi, 2
or edx, 2
imul edx, edi
add edx, ebx
xor ecx, 0x31042c97
mov edi, ecx
and edi, edx
shl edi, 1
xor ecx, edx
add ecx, edi
add cl, 1
mov byte [esp + eax + 0x52], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4203c0
mov edi, dword [esp + 0x52]
xor ebx, ebx
mov ecx, 2
cmp ebx, dword [0x448580]
jb 0x420439
jmp 0x4204f3
mov ecx, dword [0x448584]
cmp dword [ecx + ebx*8], 0x7be1e2d2
sete dl
mov byte [esp + 0x3b], dl
test dl, 1
jne 0x420457
jmp 0x4204e0
mov edx, dword [ecx + ebx*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x4204e2
mov eax, dword [0x448588]
xor ecx, ecx
lea ecx, [esp + 0xc4]
lea ebp, [esp + 0xac]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
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 + 0x6c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0x848
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], 0
call fcn.00439ae0
mov ecx, 1
jmp 0x4204e2
xor ecx, ecx
test byte [esp + 0x3b], 1
je 0x4204eb
jmp 0x4204f3
add ebx, 1
jmp 0x420427
cmp ecx, 2
je 0x4204fa
mov edi, eax
xor ebx, ebx
cmp edi, 0
jl 0x420a67
mov dword [esp + 0x60], 0
xor ebx, ebx
xor esi, esi
mov eax, dword [esp + 0x6c]
jmp 0x420517
mov edi, dword [eax + 0x3c]
shr edi, 1
mov ecx, eax
add ecx, 0x38
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x64], eax
mov eax, dword [eax + 0x38]
and eax, 0x400
cmp eax, 0
jne 0x42073c
mov al, byte [esp + 0x7c]
mov byte [esp + 0x8c], al
mov byte [esp + 0x4a], 0x25
mov byte [esp + 0x4b], 0x7c
mov byte [esp + 0x4c], 0x7d
mov byte [esp + 0x4d], 0x7e
xor eax, eax
mov dword [esp + 0x3c], ebx
cmp eax, 4
jae 0x42059e
mov dl, byte [esp + eax + 0x4a]
mov ecx, eax
shl ecx, 1
and ecx, 0xc6
mov ebx, eax
or ebx, 0x9c
mov ebp, eax
xor ebp, 0xffffffff
or ebp, 0x63
and ebx, ebp
xor ebx, 0xffffffff
add ecx, ebx
mov ebx, dword [esp + 0x3c]
xor cl, dl
add cl, 0xe8
mov byte [esp + eax + 0x4a], cl
add eax, 1
jmp 0x420562
mov ebp, dword [esp + 0x64]
add ebp, 0x44
lea eax, [esp + 0x4a]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00420b80
cmp eax, 0
je 0x42073c
mov dword [esp + 0x68], esi
mov al, byte [esp + 0x78]
mov byte [esp + 0x90], al
mov byte [esp + 0x5a], 0xbf
mov byte [esp + 0x5b], 0x82
mov byte [esp + 0x5c], 0xbd
mov byte [esp + 0x5d], 0x84
mov byte [esp + 0x5e], 0x85
mov byte [esp + 0x5f], 0x86
xor eax, eax
cmp eax, 6
jae 0x420683
movzx ebx, byte [esp + eax + 0x5a]
mov ecx, eax
add ecx, 0x86a661c9
mov edx, eax
add edx, 0xc9
and edx, ebx
or ecx, ebx
mov ebx, ecx
shl ebx, 1
xor ebx, 0xffffffff
mov esi, ecx
add esi, ebx
and ecx, 0xc9b156a5
and esi, 0x364ea95a
or ecx, esi
xor edx, ecx
mov ecx, edx
xor ecx, 0xc9b156a5
shl edx, 1
xor edx, 0x9362ad4b
sub ecx, edx
mov edx, ecx
and edx, 0xb5
mov esi, ecx
and esi, 0xb5
mov ebx, ecx
and ebx, 2
xor ebx, 2
imul ebx, esi
mov esi, ecx
and esi, 2
or edx, 2
imul edx, esi
add edx, ebx
mov ebx, dword [esp + 0x3c]
xor ecx, 0xb7
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x5a], cl
add eax, 1
jmp 0x4205f1
lea eax, [esp + 0x5a]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00420b80
cmp eax, 0
mov esi, dword [esp + 0x68]
jne 0x4206a5
jmp 0x42073c
mov eax, edi
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4206c0
mov ecx, eax
mov dword [esp], ecx
call fcn.00407fc0
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, eax
call fcn.00413860
mov word [eax], 0
mov eax, dword [esp + 0x64]
mov ecx, dword [eax + 0x28]
mov eax, dword [esp + 0xc0]
mov edx, dword [eax]
and edx, 0x10
xor eax, eax
cmp edx, 0
setne al
mov edx, dword [esp + 0xec]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp], edi
and eax, 1
mov dword [esp + 4], eax
call dword [esp + 0xe8]
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], edi
call fcn.00407fd0
jmp 0x42073a
jmp 0x42073c
cmp esi, 0
sete al
test al, 1
jne 0x42074c
mov edi, dword [esp + 0x60]
jmp 0x420773
mov dword [esp], 0x10900
call fcn.00437ee0
mov edi, eax
cmp edi, 0
jne 0x42076f
xor esi, esi
mov eax, 2
mov edi, dword [esp + 0x64]
jmp 0x420a59
mov esi, edi
jmp 0x420773
cmp edi, esi
jne 0x420a40
mov dword [esp + 0x68], esi
mov al, byte [esp + 0x74]
mov byte [esp + 0x94], al
mov byte [esp + 0x46], 0xa1
mov byte [esp + 0x47], 0xbb
mov byte [esp + 0x48], 0xa2
mov byte [esp + 0x49], 0xa4
xor eax, eax
cmp eax, 4
jae 0x4207cc
movzx edx, byte [esp + eax + 0x46]
mov ecx, eax
add ecx, 0xe9
and ecx, edx
mov esi, eax
add esi, 0xe9
or esi, edx
xor ecx, esi
add cl, 0xb8
mov byte [esp + eax + 0x46], cl
add eax, 1
jmp 0x4207a0
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x46]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xb8], eax
mov al, byte [esp + 0x84]
mov byte [esp + 0xa8], al
mov byte [esp + 0x4e], 0xa
mov byte [esp + 0x4f], 9
mov byte [esp + 0x50], 8
mov byte [esp + 0x51], 0x17
xor eax, eax
cmp eax, 4
jae 0x42086e
movzx edx, byte [esp + eax + 0x4e]
mov ecx, eax
add ecx, 0x99df7a6d
xor ecx, edx
mov edx, ecx
and edx, 0x31042c95
mov esi, ecx
and esi, 2
xor esi, 2
mov ebx, ecx
and ebx, 0x31042c95
imul ebx, esi
mov esi, ecx
and esi, 2
or edx, 2
imul edx, esi
add edx, ebx
xor ecx, 0x31042c97
mov esi, ecx
and esi, edx
shl esi, 1
xor ecx, edx
add ecx, esi
add cl, 1
mov byte [esp + eax + 0x4e], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x42080d
mov esi, dword [esp + 0x4e]
xor ebp, ebp
mov ebx, dword [esp + 0x3c]
mov ecx, 2
cmp ebp, dword [0x448580]
jb 0x42088a
jmp 0x420952
mov ecx, dword [0x448584]
cmp dword [ecx + ebp*8], 0x7be1e2d2
sete dl
mov byte [esp + 0x3a], dl
test dl, 1
jne 0x4208a8
jmp 0x42093f
mov edx, dword [ecx + ebp*8 + 4]
mov ecx, 2
cmp edx, esi
je 0x420941
mov eax, dword [0x448588]
xor ecx, ecx
lea ecx, [esp + 0xc4]
lea ebx, [esp + 0xac]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
mov eax, dword [esp + 0xb8]
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 dword [esp + 0x20], edi
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x34], 0
call fcn.00439ae0
mov ecx, 1
jmp 0x420941
xor ecx, ecx
test byte [esp + 0x3a], 1
je 0x42094a
jmp 0x420952
add ebp, 1
jmp 0x420878
cmp ecx, 2
je 0x420959
mov esi, eax
mov al, byte [esp + 0x70]
mov byte [esp + 0x98], al
mov byte [esp + 0x42], 0x47
mov byte [esp + 0x43], 0x43
mov byte [esp + 0x44], 0x44
mov byte [esp + 0x45], 0xc5
xor eax, eax
cmp eax, 4
jae 0x4209dd
movzx edx, byte [esp + eax + 0x42]
mov ecx, eax
add ecx, 0xecf73ad2
mov ebx, eax
add ebx, 0xecf73ad2
mov ebp, ecx
and ebp, ebx
or ebp, edx
and ecx, edx
xor ecx, ebp
mov edx, ecx
and edx, 0x6d
mov ebx, ecx
and ebx, 0x6d
mov ebp, ecx
and ebp, 2
xor ebp, 2
imul ebp, ebx
mov ebx, ecx
and ebx, 2
or edx, 2
imul edx, ebx
mov ebx, dword [esp + 0x3c]
add edx, ebp
xor ecx, 0x6f
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x42], cl
mov ecx, eax
shl ecx, 1
or ecx, 1
sub ecx, eax
mov eax, ecx
jmp 0x42097a
mov eax, dword [esp + 0x42]
cmp esi, eax
jne 0x420a11
xor eax, eax
mov edx, edi
jmp 0x4209eb
mov ecx, edx
mov esi, dword [ecx]
cmp esi, 0
je 0x420a02
shr esi, 2
shl esi, 2
mov edx, ecx
add edx, esi
mov eax, ecx
jmp 0x4209eb
cmp eax, 0
je 0x420a0d
mov dword [eax], 0
xor esi, esi
jmp 0x420a11
cmp esi, 0
jge 0x420a29
mov esi, dword [esp + 0x68]
mov dword [esp], esi
call fcn.00437f00
mov eax, 2
jmp 0x420a31
xor eax, eax
mov esi, dword [esp + 0x68]
jmp 0x420a31
cmp eax, 0
je 0x420a40
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x64]
jmp 0x420a59
mov eax, dword [edi]
cmp eax, 0
je 0x420a51
mov ecx, edi
add ecx, eax
mov dword [esp + 0x60], ecx
jmp 0x420a57
mov dword [esp + 0x60], esi
jmp 0x420a57
xor eax, eax
test eax, eax
mov eax, edi
je 0x420517
jmp 0x420a65
jmp 0x420a67
mov esi, ebx
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.00437f00
mov eax, dword [esp + 0x80]
mov dword [esp + 0xb4], eax
mov al, byte [esp + 0x9c]
mov byte [esp + 0xa0], al
mov byte [esp + 0x56], 0xa
mov byte [esp + 0x57], 9
mov byte [esp + 0x58], 8
mov byte [esp + 0x59], 0x17
xor eax, eax
cmp eax, 4
jae 0x420b08
movzx edx, byte [esp + eax + 0x56]
mov ecx, eax
add ecx, 0x99df7a6d
xor ecx, edx
mov edx, ecx
and edx, 0x31042c95
mov edi, ecx
and edi, 2
xor edi, 2
mov ebx, ecx
and ebx, 0x31042c95
imul ebx, edi
mov edi, ecx
and edi, 2
or edx, 2
imul edx, edi
add edx, ebx
xor ecx, 0x31042c97
mov edi, ecx
and edi, edx
shl edi, 1
xor ecx, edx
add ecx, edi
add cl, 1
mov byte [esp + eax + 0x56], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x420aa7
mov edi, dword [esp + 0x56]
xor ebp, ebp
mov ecx, esi
cmp ebp, dword [0x448580]
jb 0x420b1a
jmp 0x420b6d
mov eax, dword [0x448584]
cmp dword [eax + ebp*8], 0xb430e561
sete bl
test bl, 1
jne 0x420b30
jmp 0x420b5d
mov eax, dword [eax + ebp*8 + 4]
cmp eax, edi
je 0x420b5d
mov ecx, dword [0x448588]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xc], eax
call fcn.00439ae0
test bl, 1
je 0x420b66
mov ecx, esi
jmp 0x420b6d
add ebp, 1
mov ecx, esi
jmp 0x420b10
and cl, 1
movzx eax, cl
add esp, 0xcc
pop esi
pop edi
pop ebx
pop ebp
ret