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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xec
mov esi, dword [esp + 0x104]
mov eax, dword [esp + 0x100]
lea ecx, [esp + 0x74]
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.00441990
xor ecx, ecx
cmp eax, 0
jl 0x421103
mov dword [esp], esi
call fcn.00417520
shl eax, 1
mov word [esp + 0xcc], ax
movzx eax, ax
add eax, 2
lea ecx, [esp + 0xcc]
add ecx, 2
mov word [ecx], ax
lea eax, [esp + 0xcc]
add eax, 4
mov dword [eax], esi
mov dword [esp], 0x848
call fcn.0043a170
mov ebp, eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xd4], eax
mov al, byte [esp + 0x84]
mov byte [esp + 0xb0], al
mov byte [esp + 0x88], 0x7b
mov byte [esp + 0x89], 0x7a
mov byte [esp + 0x8a], 0x7d
mov byte [esp + 0x8b], 0x7c
mov eax, 4
mov byte [esp + eax + 0x88], 0
add eax, 1
cmp eax, 7
jne 0x420918
xor eax, eax
cmp eax, 7
jae 0x420966
movzx edx, byte [esp + eax + 0x88]
mov ecx, 0x95
sub ecx, eax
mov edi, 0x95
sub edi, eax
and ecx, edi
xor ecx, 0xffffffff
and ecx, edx
mov ebx, eax
add ebx, 0x6a
add ebx, edx
shl ecx, 1
sub ebx, ecx
add bl, 0xee
mov byte [esp + eax + 0x88], bl
add eax, 1
jmp 0x42092a
mov edi, dword [esp + 0x88]
xor esi, esi
mov ecx, 2
cmp esi, dword [0x44da9c]
jb 0x420981
jmp 0x420a3c
mov edx, dword [0x44daa0]
cmp dword [edx + esi*8], 0x557d0c65
sete bl
xor ecx, ecx
mov byte [esp + 0x3b], bl
test bl, 1
jne 0x4209a1
jmp 0x420a2b
mov edx, dword [edx + esi*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x420a2b
mov eax, dword [0x44daa4]
xor ecx, ecx
lea ecx, [esp + 0xe4]
lea ebx, [esp + 0xcc]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0xb
mov eax, dword [esp + 0xd4]
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], ebp
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.0043e1f0
mov ecx, 1
test byte [esp + 0x3b], 1
je 0x420a34
jmp 0x420a3c
add esi, 1
jmp 0x42096f
cmp ecx, 2
je 0x420a43
mov edi, eax
cmp edi, 0
setge al
mov dword [esp + 0x44], 0
test al, 1
jne 0x420a5a
jmp 0x421015
xor ebx, ebx
mov dword [esp + 0x44], 0
xor esi, esi
mov eax, ebp
mov dword [esp + 0x48], ebp
jmp 0x420a6e
mov edi, dword [eax + 0x3c]
shr edi, 1
mov ecx, eax
add ecx, 0x38
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x3c], eax
mov eax, dword [eax + 0x38]
and eax, 0x400
cmp eax, 0
jne 0x420cd9
mov al, byte [esp + 0x68]
mov byte [esp + 0x90], al
mov byte [esp + 0x6c], 0xae
mov byte [esp + 0x6d], 0x9b
mov byte [esp + 0x6e], 0x9a
mov byte [esp + 0x6f], 0x99
mov eax, 4
mov byte [esp + eax + 0x6c], 0
add eax, 1
cmp eax, 8
jne 0x420ab8
mov dword [esp + 0xc8], ebx
xor eax, eax
cmp eax, 8
jae 0x420afb
movzx edx, byte [esp + eax + 0x6c]
mov ebx, eax
add ebx, 0x5b
mov ecx, edx
xor ecx, 0xffffffff
and ebx, ecx
mov ecx, 0xa4
sub ecx, eax
and ecx, edx
or ecx, ebx
add cl, 0x39
mov byte [esp + eax + 0x6c], cl
add eax, 1
jmp 0x420ace
mov ecx, dword [esp + 0x3c]
add ecx, 0x44
lea eax, [esp + 0x6c]
mov dword [esp + 0xc4], ecx
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00421120
cmp eax, 0
setne al
mov ebx, dword [esp + 0xc8]
test al, 1
jne 0x420b33
jmp 0x420cd9
mov al, byte [esp + 0x64]
mov byte [esp + 0x94], al
mov byte [esp + 0xb8], 0x3e
mov byte [esp + 0xb9], 0xb
mov byte [esp + 0xba], 0x38
mov byte [esp + 0xbb], 9
mov byte [esp + 0xbc], 8
mov byte [esp + 0xbd], 7
mov eax, 6
mov byte [esp + eax + 0xb8], 0
add eax, 1
cmp eax, 0xa
jne 0x420b73
mov dword [esp + 0x40], esi
xor eax, eax
cmp eax, 0xa
jae 0x420c01
movzx ecx, byte [esp + eax + 0xb8]
mov ebx, eax
add ebx, 0x8a406e43
mov esi, ebx
xor esi, ecx
mov edx, ebx
and edx, ecx
mov ebp, 0x75bf91bc
sub ebp, eax
or ebp, esi
xor ebp, 0xffffffff
or edx, ebp
mov ebp, dword [esp + 0x48]
shl edx, 1
mov esi, edx
xor esi, 0xffffffff
and ebx, esi
mov esi, 0x75bf91bc
sub esi, eax
and edx, esi
sub edx, ebx
mov esi, ecx
xor esi, 0xffffffff
mov ebx, edx
and ebx, esi
xor edx, 0xffffffff
and ecx, edx
sub ecx, ebx
mov ebx, dword [esp + 0xc8]
mov edx, ecx
shl edx, 1
and edx, 0x60
xor ecx, 0xb0
add ecx, edx
add cl, 1
mov byte [esp + eax + 0xb8], cl
add eax, 1
jmp 0x420b89
lea eax, [esp + 0xb8]
mov ecx, dword [esp + 0xc4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00421120
mov esi, dword [esp + 0x40]
cmp eax, 0
setne al
test al, 1
jne 0x420c32
jmp 0x420cd9
mov eax, edi
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x420c4d
mov ecx, eax
mov dword [esp], ecx
call fcn.0040c8c0
mov ecx, eax
mov dword [esp], ecx
mov eax, dword [esp + 0xc4]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov edi, ecx
call fcn.00417150
mov word [eax], 0
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x28]
mov eax, dword [esp + 0xe0]
mov edx, dword [eax]
and edx, 0x10
xor eax, eax
cmp edx, 0
setne al
mov edx, dword [esp + 0x10c]
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 + 0x108]
and al, 1
movzx eax, al
mov ecx, dword [esp + 0x44]
and cl, 1
movzx ecx, cl
or ecx, eax
cmp ecx, 0
setne al
and al, 1
mov dword [esp + 0x44], eax
mov dword [esp], edi
call fcn.0040c8d0
jmp 0x420cd7
jmp 0x420cd9
cmp esi, 0
je 0x420ce2
mov edi, ebx
jmp 0x420d09
mov dword [esp], 0x10900
call fcn.0043a170
mov edi, eax
cmp edi, 0
jne 0x420d05
xor esi, esi
mov eax, 2
mov edi, dword [esp + 0x3c]
jmp 0x421007
mov esi, edi
jmp 0x420d09
cmp edi, esi
jne 0x420ff4
mov al, byte [esp + 0x58]
mov byte [esp + 0x98], al
mov byte [esp + 0x5c], 0x84
mov byte [esp + 0x5d], 0x8c
mov byte [esp + 0x5e], 0x85
mov byte [esp + 0x5f], 0x81
mov eax, 4
mov byte [esp + eax + 0x5c], 0
add eax, 1
cmp eax, 5
jne 0x420d35
mov dword [esp + 0x40], esi
xor eax, eax
cmp eax, 5
jae 0x420d76
movzx edx, byte [esp + eax + 0x5c]
mov esi, eax
add esi, 0xa1
mov ecx, 0x5e
sub ecx, eax
and ecx, edx
xor edx, 0xffffffff
and esi, edx
or ecx, esi
add cl, 0xdb
mov byte [esp + eax + 0x5c], cl
add eax, 1
jmp 0x420d48
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xd8], eax
mov al, byte [esp + 0x78]
mov byte [esp + 0xb4], al
mov byte [esp + 0x7c], 0x7b
mov byte [esp + 0x7d], 0x7a
mov byte [esp + 0x7e], 0x7d
mov byte [esp + 0x7f], 0x7c
mov eax, 4
mov byte [esp + eax + 0x7c], 0
add eax, 1
cmp eax, 7
jne 0x420db0
xor eax, eax
cmp eax, 7
jae 0x420df5
movzx edx, byte [esp + eax + 0x7c]
mov ecx, 0x95
sub ecx, eax
mov esi, 0x95
sub esi, eax
and ecx, esi
xor ecx, 0xffffffff
and ecx, edx
mov ebx, eax
add ebx, 0x6a
add ebx, edx
shl ecx, 1
sub ebx, ecx
add bl, 0xee
mov byte [esp + eax + 0x7c], bl
add eax, 1
jmp 0x420dbf
mov esi, dword [esp + 0x7c]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x44da9c]
jb 0x420e0d
jmp 0x420ec9
mov edx, dword [0x44daa0]
cmp dword [edx + ebp*8], 0x557d0c65
sete bl
xor ecx, ecx
test bl, 1
jne 0x420e29
jmp 0x420eba
mov edx, dword [edx + ebp*8 + 4]
mov ecx, 2
cmp edx, esi
je 0x420eba
mov eax, dword [0x44daa4]
xor ecx, ecx
lea ecx, [esp + 0xe4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0xb
mov eax, dword [esp + 0xd8]
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 + 0xdc]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
lea eax, [esp + 0xcc]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
call fcn.0043e1f0
mov ecx, 1
test bl, 1
je 0x420ec1
jmp 0x420ec9
add ebp, 1
jmp 0x420dfb
cmp ecx, 2
mov ebp, dword [esp + 0x48]
je 0x420ed4
mov esi, eax
mov al, byte [esp + 0x4c]
mov byte [esp + 0x9c], al
mov byte [esp + 0x50], 0xd
mov byte [esp + 0x51], 0x11
mov byte [esp + 0x52], 0x12
mov byte [esp + 0x53], 0x93
mov eax, 4
mov byte [esp + eax + 0x50], 0
add eax, 1
cmp eax, 6
jne 0x420ef8
xor eax, eax
cmp eax, 6
jae 0x420f93
movzx ecx, byte [esp + eax + 0x50]
mov ebx, eax
add ebx, 0xe1bff73c
mov edx, ebx
and edx, ecx
shl edx, 1
add ebx, ecx
add ebx, 0x21f038a2
sub ebx, edx
mov ecx, ebx
add ecx, 0xde0fc75e
mov edx, ecx
and edx, 0x97402bd1
mov ebp, 1
sub ebp, ebx
and ebp, 2
mov ebx, ecx
and ebx, 0x97402bd1
imul ebx, ebp
mov ebp, ecx
and ebp, 2
or edx, 2
imul edx, ebp
mov ebp, dword [esp + 0x48]
add edx, ebx
xor ecx, 0x97402bd3
mov ebx, ecx
add ebx, edx
and ecx, 1
or ebx, 1
add ebx, ecx
mov byte [esp + eax + 0x50], bl
mov ecx, eax
and ecx, 1
mov edx, eax
and edx, 6
mov ebx, eax
xor ebx, 1
add eax, ebx
add eax, ecx
sub eax, edx
jmp 0x420f07
mov eax, dword [esp + 0x50]
cmp esi, eax
jne 0x420fc7
xor eax, eax
mov edx, edi
jmp 0x420fa1
mov ecx, edx
mov esi, dword [ecx]
cmp esi, 0
je 0x420fb8
shr esi, 2
shl esi, 2
mov edx, ecx
add edx, esi
mov eax, ecx
jmp 0x420fa1
cmp eax, 0
je 0x420fc3
mov dword [eax], 0
xor esi, esi
jmp 0x420fc7
cmp esi, 0
jge 0x420fdf
mov esi, dword [esp + 0x40]
mov dword [esp], esi
call fcn.0043a200
mov eax, 2
jmp 0x420fe7
xor eax, eax
mov esi, dword [esp + 0x40]
jmp 0x420fe7
cmp eax, 0
je 0x420ff4
mov ebx, edi
mov edi, dword [esp + 0x3c]
jmp 0x421007
mov eax, dword [edi]
cmp eax, 0
je 0x421001
mov ebx, edi
add ebx, eax
jmp 0x421005
mov ebx, esi
jmp 0x421005
xor eax, eax
test eax, eax
mov eax, edi
je 0x420a6e
jmp 0x421013
jmp 0x421015
mov dword [esp], ebp
call fcn.0043a200
mov esi, dword [esp + 0x74]
mov al, byte [esp + 0xa0]
mov byte [esp + 0xac], al
mov byte [esp + 0xa4], 0x7b
mov byte [esp + 0xa5], 0x7a
mov byte [esp + 0xa6], 0x7d
mov byte [esp + 0xa7], 0x7c
mov eax, 4
mov byte [esp + eax + 0xa4], 0
add eax, 1
cmp eax, 7
jne 0x421054
xor eax, eax
cmp eax, 7
jae 0x4210a2
movzx edx, byte [esp + eax + 0xa4]
mov ecx, 0x95
sub ecx, eax
mov edi, 0x95
sub edi, eax
and ecx, edi
xor ecx, 0xffffffff
and ecx, edx
mov ebx, eax
add ebx, 0x6a
add ebx, edx
shl ecx, 1
sub ebx, ecx
add bl, 0xee
mov byte [esp + eax + 0xa4], bl
add eax, 1
jmp 0x421066
mov edi, dword [esp + 0xa4]
xor ebp, ebp
cmp ebp, dword [0x44da9c]
jb 0x4210b5
jmp 0x4210fd
mov eax, dword [0x44daa0]
cmp dword [eax + ebp*8], 0xb62b8d10
sete bl
test bl, 1
jne 0x4210cb
jmp 0x4210f1
mov eax, dword [eax + ebp*8 + 4]
cmp eax, edi
je 0x4210f1
mov ecx, dword [0x44daa4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov dword [esp + 0xc], esi
call fcn.0043e1f0
test bl, 1
je 0x4210f8
jmp 0x4210fd
add ebp, 1
jmp 0x4210ab
mov ecx, dword [esp + 0x44]
jmp 0x421103
and cl, 1
movzx eax, cl
add esp, 0xec
pop esi
pop edi
pop ebx
pop ebp
ret