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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc0
mov esi, dword [esp + 0xd8]
mov eax, dword [esp + 0xd4]
lea ecx, [esp + 0x78]
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.0043be40
xor ecx, ecx
cmp eax, 0
jl 0x420b6f
mov dword [esp], esi
call fcn.004133b0
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 2
mov edx, eax
and edx, 0xfffffffd
imul edx, ecx
mov ecx, eax
and ecx, 2
or eax, 2
imul eax, ecx
add eax, edx
mov word [esp + 0xa8], ax
movzx eax, ax
add eax, 2
mov word [esp + 0xaa], ax
mov dword [esp + 0xac], esi
mov dword [esp], 0x848
call fcn.00438390
mov dword [esp + 0x64], eax
mov esi, dword [esp + 0x78]
mov al, byte [esp + 0x80]
mov byte [esp + 0x9c], al
mov word [esp + 0x5c], 0x71a3
mov word [esp + 0x5e], 0x71a2
xor eax, eax
cmp eax, 2
jae 0x4204fe
mov cx, word [esp + eax*2 + 0x5c]
movzx edx, cx
mov edi, eax
add edi, 0xe36e627c
mov ebx, edi
and ebx, edx
shl ebx, 1
sub edi, ebx
add di, cx
add di, 0xec20
mov word [esp + eax*2 + 0x5c], di
add eax, 1
jmp 0x4204cf
mov edi, dword [esp + 0x5c]
xor ebx, ebx
mov ecx, 2
cmp ebx, dword [0x4482e0]
jb 0x420516
jmp 0x4205d0
mov ecx, dword [0x4482e4]
cmp dword [ecx + ebx*8], 0x7be1e2d2
sete dl
mov byte [esp + 0x3b], dl
test dl, 1
jne 0x420534
jmp 0x4205bd
mov edx, dword [ecx + ebx*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x4205bf
mov eax, dword [0x4482e8]
xor ecx, ecx
lea ecx, [esp + 0xb8]
lea ebp, [esp + 0xa8]
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 + 0x64]
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.00439ac0
mov ecx, 1
jmp 0x4205bf
xor ecx, ecx
test byte [esp + 0x3b], 1
je 0x4205c8
jmp 0x4205d0
add ebx, 1
jmp 0x420504
cmp ecx, 2
je 0x4205d7
mov edi, eax
xor ebx, ebx
cmp edi, 0
jl 0x420aaa
mov dword [esp + 0x44], 0
xor ebx, ebx
xor esi, esi
mov edi, dword [esp + 0x64]
jmp 0x4205f4
mov dword [esp + 0x3c], esi
mov eax, edi
mov edi, dword [eax + 0x3c]
shr edi, 1
mov esi, eax
add esi, 0x38
mov dword [esp + 0x48], eax
mov eax, dword [eax + 0x38]
and eax, 0x400
cmp eax, 0
jne 0x4207dc
mov al, byte [esp + 0x74]
mov byte [esp + 0x84], al
mov word [esp + 0x54], 0xa057
mov word [esp + 0x56], 0xa06a
xor eax, eax
cmp eax, 2
jae 0x42067d
movzx edx, word [esp + eax*2 + 0x54]
mov ebp, eax
add ebp, 0x3cec7b61
mov ecx, 0x849e
sub ecx, eax
and ecx, edx
xor edx, 0xffffffff
and ebp, edx
or ecx, ebp
add ecx, 0xc6fad809
mov edx, ecx
shl edx, 1
and edx, 0x49ee
xor ecx, 0x24f7
add ecx, edx
add cx, 0x27f8
mov word [esp + eax*2 + 0x54], cx
add eax, 1
jmp 0x420634
mov ebp, dword [esp + 0x48]
add ebp, 0x44
lea eax, [esp + 0x54]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call 0x420b80
cmp eax, 0
je 0x4207dc
mov dword [esp + 0x40], ebx
mov al, byte [esp + 0x70]
mov byte [esp + 0x88], al
mov word [esp + 0xa2], 0xc31c
mov word [esp + 0xa4], 0xc31d
mov word [esp + 0xa6], 0xc334
xor ebx, ebx
cmp ebx, 3
jae 0x42071d
movzx edx, word [esp + ebx*2 + 0xa2]
mov eax, ebx
shl eax, 1
and eax, 0xdbecd362
mov ecx, ebx
xor ecx, 0x6df669b1
add ecx, eax
add ecx, 0xb9cae871
mov eax, ecx
and eax, edx
shl eax, 1
add ecx, edx
mov edx, ecx
xor edx, eax
xor eax, 0xffffffff
and ecx, eax
shl ecx, 1
sub ecx, edx
add cx, 0x6ef0
mov word [esp + ebx*2 + 0xa2], cx
add ebx, 1
jmp 0x4206d0
lea eax, [esp + 0xa2]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call 0x420b80
cmp eax, 0
jne 0x420746
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
jmp 0x4207e2
mov eax, edi
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
mov ebx, dword [esp + 0x40]
jne 0x420765
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.00412ff0
mov word [eax], 0
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
mov edx, dword [esi]
and edx, 0x10
xor eax, eax
cmp edx, 0
setne al
mov edx, dword [esp + 0xe0]
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 + 0xdc]
and al, 1
movzx eax, al
and bl, 1
movzx ecx, bl
or ecx, eax
cmp ecx, 0
setne bl
mov esi, dword [esp + 0x3c]
and bl, 1
mov dword [esp], edi
call fcn.00407fd0
jmp 0x4207e2
mov esi, dword [esp + 0x3c]
jmp 0x4207e2
cmp esi, 0
je 0x4207ed
mov edi, dword [esp + 0x44]
jmp 0x420814
mov dword [esp], 0x10900
call fcn.00438390
mov edi, eax
cmp edi, 0
jne 0x420810
xor esi, esi
mov eax, 2
mov edi, dword [esp + 0x48]
jmp 0x420a93
mov esi, edi
jmp 0x420814
cmp edi, esi
jne 0x420a72
mov dword [esp + 0x3c], esi
mov al, byte [esp + 0x6c]
mov byte [esp + 0x8c], al
mov word [esp + 0x50], 0x2b48
mov word [esp + 0x52], 0x2248
xor eax, eax
cmp eax, 2
jae 0x420881
movzx edx, word [esp + eax*2 + 0x50]
mov ecx, eax
add ecx, 0xd61bb208
or ecx, edx
mov esi, eax
add esi, 0xb208
and esi, edx
sub ecx, esi
mov edx, ecx
shl edx, 1
and edx, 0xdf7e
xor ecx, 0x6fbf
add ecx, edx
add cx, 1
mov word [esp + eax*2 + 0x50], cx
mov ecx, eax
shl ecx, 1
or eax, ecx
xor eax, 1
jmp 0x42083b
mov dword [esp + 0x40], ebx
mov eax, dword [esp + 0x50]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0xb0], eax
mov al, byte [esp + 0x7c]
mov byte [esp + 0xa0], al
mov word [esp + 0x58], 0x71a3
mov word [esp + 0x5a], 0x71a2
xor eax, eax
cmp eax, 2
jae 0x4208e5
mov cx, word [esp + eax*2 + 0x58]
movzx edx, cx
mov esi, eax
add esi, 0xe36e627c
mov ebx, esi
and ebx, edx
shl ebx, 1
sub esi, ebx
add si, cx
add si, 0xec20
mov word [esp + eax*2 + 0x58], si
add eax, 1
jmp 0x4208b6
mov esi, dword [esp + 0x58]
xor ebp, ebp
mov ebx, dword [esp + 0x40]
mov ecx, 2
cmp ebp, dword [0x4482e0]
jb 0x420901
jmp 0x4209c9
mov ecx, dword [0x4482e4]
cmp dword [ecx + ebp*8], 0x7be1e2d2
sete dl
mov byte [esp + 0x3a], dl
test dl, 1
jne 0x42091f
jmp 0x4209b6
mov edx, dword [ecx + ebp*8 + 4]
mov ecx, 2
cmp edx, esi
je 0x4209b8
mov eax, dword [0x4482e8]
xor ecx, ecx
lea ecx, [esp + 0xb8]
lea ebx, [esp + 0xa8]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
mov eax, dword [esp + 0xb0]
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 + 0xb4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x34], 0
call fcn.00439ac0
mov ecx, 1
jmp 0x4209b8
xor ecx, ecx
test byte [esp + 0x3a], 1
je 0x4209c1
jmp 0x4209c9
add ebp, 1
jmp 0x4208ef
cmp ecx, 2
je 0x4209d0
mov esi, eax
mov al, byte [esp + 0x68]
mov byte [esp + 0x90], al
mov word [esp + 0x4c], 0xf7a2
mov word [esp + 0x4e], 0x7798
xor eax, eax
cmp eax, 2
jae 0x420a0f
mov cx, word [esp + eax*2 + 0x4c]
mov dx, ax
add dx, 0x1d5f
xor dx, cx
add dx, 0x1508
mov word [esp + eax*2 + 0x4c], dx
add eax, 1
jmp 0x4209eb
mov eax, dword [esp + 0x4c]
cmp esi, eax
jne 0x420a43
xor eax, eax
mov esi, edi
jmp 0x420a1d
mov ecx, esi
mov edx, dword [ecx]
cmp edx, 0
je 0x420a34
shr edx, 2
shl edx, 2
mov esi, ecx
add esi, edx
mov eax, ecx
jmp 0x420a1d
cmp eax, 0
je 0x420a3f
mov dword [eax], 0
xor esi, esi
jmp 0x420a43
cmp esi, 0
jge 0x420a5b
mov esi, dword [esp + 0x3c]
mov dword [esp], esi
call fcn.004383b0
mov eax, 2
jmp 0x420a63
xor eax, eax
mov esi, dword [esp + 0x3c]
jmp 0x420a63
cmp eax, 0
je 0x420a72
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x48]
jmp 0x420a93
mov eax, dword [edi]
cmp eax, 0
setne cl
test cl, 1
jne 0x420a81
jmp 0x420a8b
mov ecx, edi
add ecx, eax
mov dword [esp + 0x44], ecx
jmp 0x420a91
mov dword [esp + 0x44], esi
jmp 0x420a91
xor eax, eax
test eax, eax
je 0x4205f4
jmp 0x420a9d
sub eax, 2
jne 0x420b80
jmp 0x420aa8
jmp 0x420aaa
mov ebp, ebx
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call fcn.004383b0
mov esi, dword [esp + 0x78]
mov al, byte [esp + 0x94]
mov byte [esp + 0x98], al
mov word [esp + 0x60], 0x71a3
mov word [esp + 0x62], 0x71a2
xor eax, eax
cmp eax, 2
jae 0x420b09
mov cx, word [esp + eax*2 + 0x60]
movzx edx, cx
mov edi, eax
add edi, 0xe36e627c
mov ebx, edi
and ebx, edx
shl ebx, 1
sub edi, ebx
add di, cx
add di, 0xec20
mov word [esp + eax*2 + 0x60], di
add eax, 1
jmp 0x420ada
mov edi, dword [esp + 0x60]
xor ebx, ebx
cmp ebx, dword [0x4482e0]
jb 0x420b19
jmp 0x420b6d
mov eax, dword [0x4482e4]
cmp dword [eax + ebx*8], 0xb430e561
sete cl
test cl, 1
jne 0x420b2f
jmp 0x420b61
mov eax, dword [eax + ebx*8 + 4]
cmp eax, edi
jne 0x420b39
jmp 0x420b61
mov byte [esp + 0x39], cl
mov ecx, dword [0x4482e8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call fcn.00439ac0
mov cl, byte [esp + 0x39]
jmp 0x420b61
test cl, 1
je 0x420b68
jmp 0x420b6d
add ebx, 1
jmp 0x420b0f
mov ecx, ebp
and cl, 1
movzx eax, cl
add esp, 0xc0
pop esi
pop edi
pop ebx
pop ebp
ret
push ebp
push ebx
push edi
push esi
xor eax, eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp ecx, edi
je 0x420bbc
movzx ebx, word [esi + edi*2]
movzx ebp, word [edx + edi*2]
cmp bx, bp
jne 0x420bb8
inc edi
test ebx, ebx
jne 0x420ba0
jmp 0x420bbc
sub ebx, ebp
mov eax, ebx
pop esi
pop edi
pop ebx
pop ebp
ret