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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x78
push esi
push edi
mov edi, dword [ebp + 8]
cmp edi, 3
jl 0x402ef6
xor cl, cl
xor eax, eax
mov byte [esp + 0x17], cl
xor edx, edx
mov byte [esp + 0x16], cl
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov eax, 0x4396f0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], edx
lea esi, [ecx + 1]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], eax
cmp edi, esi
jle 0x402ef6
nop dword [eax + eax]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + esi*4]
cmp word [ecx], 0x2d
jne 0x402af5
movzx eax, word [ecx + 2]
add eax, 0xffffffb0
cmp eax, 0x25
ja case.0x402a9f.81
movzx eax, byte [eax + 0x4030d0]
jmp dword [eax*4 + 0x4030b0]
add ecx, 4
mov dword [esp + 0x20], ecx
jmp case.0x402a9f.81
mov byte [esp + 0x17], 1
lea edx, [ecx + 4]
mov dword [esp + 0x18], edx
jmp 0x402aee
mov byte [esp + 0x16], 1
jmp case.0x402a9f.81
push 0xa
lea eax, [ecx + 4]
push 0
push eax
call fcn.0040f48a
add esp, 0xc
mov dword [esp + 0x3c], eax
jmp case.0x402a9f.81
lea eax, [ecx + 4]
mov dword [esp + 0x2c], eax
jmp case.0x402a9f.81
add ecx, 4
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x18]
inc esi
cmp esi, edi
jl 0x402a80
jmp 0x402af9
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
test esi, esi
je 0x402ef6
cmp byte [esp + 0x16], 0
jne 0x402b38
test edx, edx
je 0x402ef6
mov ecx, edx
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402b20
sub ecx, edx
sar ecx, 1
cmp ecx, 0x20
jne 0x402ef6
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x1c], 0
cmp byte [esp + 0x17], al
sete al
push eax
call fcn.00406970
add esp, 4
mov edi, eax
cmp byte [esp + 0x16], 0
jne 0x402e8c
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x44]
mov dword [esp + 0x2c], 0
push eax
push 1
push 0
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 1
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0x10241
mov dword [esp + 0x6c], 0
call dword [0x42c168]
cmp eax, 0x8b0
jne 0x402be1
mov ecx, esi
call fcn.00406b80
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x44]
push eax
push 1
push 0
call dword [0x42c168]
test eax, eax
jne 0x402e61
mov edx, esi
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x18]
call fcn.00406ec0
mov dword [esp + 0x38], eax
test eax, eax
je 0x402d24
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0
push eax
mov eax, dword [esp + 0x30]
push 0x439718
push eax
call fcn.0040f5bd
mov esi, eax
add esp, 0xc
test esi, esi
je 0x402c9e
nop dword [eax]
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402c35
sub ecx, edx
sar ecx, 1
add ecx, ecx
mov word [esp + 0x2c], cx
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402c50
sub ecx, edx
mov dword [esp + 0x30], esi
sar ecx, 1
push 1
lea eax, [ecx + ecx]
mov word [esp + 0x32], ax
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x20]
push dword [esp + 0x44]
call dword [0x42c028]
test eax, eax
jne 0x402cca
lea eax, [esp + 0x34]
push eax
push 0x439718
push 0
call fcn.0040f5bd
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x402c30
test edi, edi
jne 0x402cba
mov edx, 0x439754
mov ecx, 0x43f2e0
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
push dword [esp + 0x38]
call dword [0x42c024]
mov esi, dword [esp + 0x20]
jmp 0x402d29
push eax
mov edx, 0x439728
mov ecx, 0x43f2e0
call fcn.00405600
mov edx, esi
mov ecx, eax
call fcn.00405600
push ecx
mov edx, 0x439720
mov ecx, eax
call fcn.00405600
add esp, 4
mov ecx, eax
call fcn.004034d0
mov edx, 0x43971c
mov ecx, eax
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
mov edi, 5
push dword [esp + 0x38]
call dword [0x42c024]
mov esi, dword [esp + 0x20]
jmp 0x402d29
mov edi, 5
push dword [esp + 0x18]
call dword [0x42c020]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x402d62
push dword [esp + 0x1c]
mov edx, esi
mov ecx, eax
call fcn.00406cd0
add esp, 4
mov edi, eax
cmp edi, 3
jle 0x402ead
mov ecx, esi
call fcn.00406b80
jmp 0x402ead
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x402d4d
lea ecx, [esp + 0x20]
push ecx
push 0
push eax
push dword [esp + 0x28]
push 0x43978c
push esi
call dword [0x42c01c]
test eax, eax
je 0x402e1d
lea eax, [esp + 0x60]
xorps xmm0, xmm0
push eax
push dword [esp + 0x24]
movaps xmmword [esp + 0x68], xmm0
movaps xmmword [esp + 0x78], xmm0
mov dword [esp + 0x68], 0x20
mov dword [esp + 0x70], esi
call dword [0x42c180]
test eax, eax
je 0x402dd3
push dword [esp + 0x7c]
push dword [esp + 0x24]
call dword [0x42c184]
push dword [esp + 0x20]
call dword [0x42c034]
jmp 0x402d4d
call dword [0x42c030]
push eax
push ecx
mov edx, 0x439790
mov ecx, 0x43f2e0
call fcn.00405600
add esp, 4
mov ecx, eax
call fcn.00403310
mov edx, 0x43971c
mov ecx, eax
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
mov edi, 6
push dword [esp + 0x20]
call dword [0x42c034]
jmp 0x402d4d
call dword [0x42c030]
push eax
push ecx
mov edx, 0x4397bc
mov ecx, 0x43f2e0
call fcn.00405600
add esp, 4
mov ecx, eax
call fcn.00403310
mov edx, 0x43971c
mov ecx, eax
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
mov ecx, esi
mov edi, 4
call fcn.00406b80
jmp 0x402ead
push eax
push ecx
mov edx, 0x4397e8
mov ecx, 0x43f2e0
call fcn.00405600
add esp, 4
mov ecx, eax
call fcn.00403310
push eax
call fcn.00405860
add esp, 4
mov edi, 3
jmp 0x402ead
mov eax, dword [esp + 0x24]
test eax, eax
je 0x402ea4
push dword [esp + 0x1c]
mov edx, esi
mov ecx, eax
call fcn.00406cd0
add esp, 4
mov ecx, esi
call fcn.00406b80
mov edi, eax
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x402ee9
mov ecx, edx
lea esi, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402ec0
sub ecx, esi
sar ecx, 1
add ecx, ecx
je 0x402ede
mov byte [edx], 0
lea edx, [edx + 1]
sub ecx, 1
jne 0x402ed3
lea eax, [esp + 0x1c]
push eax
call dword [0x42c170]
cmp edi, 1
je 0x402efb
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, 1
mov edx, 0x439828
mov ecx, 0x43f2e0
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
mov edx, 0x4398a8
mov ecx, 0x43f2e0
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
push eax
call fcn.00405860
add esp, 4
mov edx, 0x439938
mov ecx, 0x43f2e0
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
push eax
call fcn.00405860
add esp, 4
mov edx, 0x439990
mov ecx, 0x43f2e0
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
mov edx, 0x4399e8
mov ecx, 0x43f2e0
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
mov edx, 0x439a70
mov ecx, 0x43f2e0
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
push eax
call fcn.00405860
add esp, 4
mov edx, 0x439af8
mov ecx, 0x43f2e0
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
mov edx, 0x439b70
mov ecx, 0x43f2e0
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
mov edx, 0x439be0
mov ecx, 0x43f2e0
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
mov edx, 0x439c48
mov ecx, 0x43f2e0
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
mov edx, 0x439cb0
mov ecx, 0x43f2e0
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
push eax
call fcn.00405860
add esp, 4
mov edx, 0x439d18
mov ecx, 0x43f2e0
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
mov edx, 0x439db8
mov ecx, 0x43f2e0
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
mov edx, 0x439e40
mov ecx, 0x43f2e0
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
push eax
call fcn.00405860
add esp, 4
mov edx, 0x439ea0
mov ecx, 0x43f2e0
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
mov edx, 0x439f18
mov ecx, 0x43f2e0
call fcn.00405600
push eax
call fcn.00405860
add esp, 4
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret