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

Disassembly:
push 0xffffffffffffffff
push 0x43edbc
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb8
mov eax, dword [0x44b6d0]
push ebx
push esi
push edi
mov edi, ecx
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0xc0], eax
mov dword [esp + 0x14], edi
call fcn.0042b070
mov esi, eax
push 0x100
mov dword [esp + 0x14], esi
call fcn.00430d06
add esp, 4
mov dword [esp + 0xc], eax
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0xcc], ebx
je 0x4026f9
mov ecx, eax
call fcn.00424a70
jmp 0x4026fb
xor eax, eax
cmp esi, ebx
mov ecx, dword [edi + 0x90]
mov dword [esp + 0xc], eax
mov dword [esp + 0xcc], 0xffffffff
mov dword [eax + 0x5c], ecx
je 0x402b49
push ebp
lea esp, [esp]
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x24], ebx
je 0x40272e
mov esi, dword [eax + 0x20]
jmp 0x402733
mov esi, 0x4411cc
mov eax, esi
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x402748
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x24]
call fcn.00401c50
mov eax, dword [esp + 0x30]
cmp eax, eax
mov dword [esp + 0xd0], 1
mov ebp, eax
jae 0x402771
cmp ebp, ebx
je 0x40297c
cmp ebp, 0xa
mov ecx, ebp
jb 0x402785
mov ecx, 0xa
cmp dword [esp + 0x34], 0x10
mov esi, dword [esp + 0x20]
jae 0x402794
lea esi, [esp + 0x20]
mov edi, str.polypoints
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x4027a4
sbb edx, edx
sbb edx, 0xffffffff
cmp edx, ebx
jne 0x40297c
cmp ebp, 0xa
jb 0x40297c
xor edx, edx
cmp ebp, 0xa
setne dl
cmp edx, ebx
jne 0x40297c
mov ecx, dword [esp + 0x14]
call fcn.0042b070
mov esi, eax
cmp esi, ebx
je 0x402978
cmp dword [esi + 0x24], ebx
je 0x4027e2
mov edi, dword [esi + 0x20]
jmp 0x4027e7
mov edi, 0x4411cc
mov eax, edi
mov dword [esp + 0xc0], 0xf
mov dword [esp + 0xbc], ebx
mov byte [esp + 0xac], bl
lea ebp, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x402805
sub eax, ebp
push eax
push edi
lea ecx, [esp + 0xb0]
call fcn.00401c50
push 0x441244
mov ecx, esi
mov byte [esp + 0xd4], 2
call fcn.0042c860
mov ecx, eax
mov dword [esp + 0xa4], 0xf
mov dword [esp + 0xa0], ebx
mov byte [esp + 0x90], bl
lea edi, [ecx + 1]
mov edi, edi
mov dl, byte [ecx]
inc ecx
cmp dl, bl
jne 0x402850
sub ecx, edi
push ecx
push eax
lea ecx, [esp + 0x94]
call fcn.00401c50
push 0x441240
mov ecx, esi
mov byte [esp + 0xd4], 3
call fcn.0042c860
mov ebp, 0xf
mov ecx, eax
mov dword [esp + 0x50], ebp
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
lea edi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
cmp dl, bl
jne 0x402891
sub ecx, edi
push ecx
push eax
lea ecx, [esp + 0x40]
call fcn.00401c50
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x3c]
mov edi, 0x10
cmp eax, edi
mov byte [esp + 0xd0], 4
jae 0x4028c2
lea ecx, [esp + 0x3c]
cmp dword [esp + 0xa4], edi
mov eax, dword [esp + 0x90]
jae 0x4028d9
lea eax, [esp + 0x90]
push ecx
mov ecx, dword [esp + 0x14]
push eax
call fcn.00407740
mov ecx, esi
call fcn.0042b0a0
mov esi, eax
cmp dword [esp + 0x50], edi
jb 0x402900
mov eax, dword [esp + 0x3c]
push eax
call fcn.0043134d
add esp, 4
cmp dword [esp + 0xa4], edi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
jb 0x402925
mov ecx, dword [esp + 0x90]
push ecx
call fcn.0043134d
add esp, 4
cmp dword [esp + 0xc0], edi
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa0], ebx
mov byte [esp + 0x90], bl
mov byte [esp + 0xd0], 1
jb 0x40295b
mov edx, dword [esp + 0xac]
push edx
call fcn.0043134d
add esp, 4
cmp esi, ebx
mov dword [esp + 0xc0], ebp
mov dword [esp + 0xbc], ebx
mov byte [esp + 0xac], bl
jne 0x4027d8
mov eax, dword [esp + 0x30]
cmp eax, ebx
je 0x402afe
cmp eax, 7
mov ecx, eax
jb 0x402990
mov ecx, 7
cmp dword [esp + 0x34], 0x10
mov esi, dword [esp + 0x20]
jae 0x40299f
lea esi, [esp + 0x20]
mov edi, str.texture
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x4029af
sbb edx, edx
sbb edx, 0xffffffff
cmp edx, ebx
jne 0x402afe
cmp eax, 7
jb 0x402afe
xor edx, edx
cmp eax, 7
setne dl
cmp edx, ebx
jne 0x402afe
mov edi, dword [esp + 0x14]
push str.fname
mov ecx, edi
call fcn.0042c860
mov esi, eax
mov ecx, esi
mov dword [esp + 0x88], 0xf
mov dword [esp + 0x84], ebx
mov byte [esp + 0x74], bl
lea edx, [ecx + 1]
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
cmp al, bl
jne 0x402a00
sub ecx, edx
push ecx
push esi
lea ecx, [esp + 0x78]
call fcn.00401c50
cmp dword [esp + 0x88], 0x10
mov eax, dword [esp + 0x74]
mov byte [esp + 0xd0], 5
jae 0x402a2e
lea eax, [esp + 0x74]
push eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x90]
push ecx
lea ecx, [eax + 0x7c]
call fcn.0042a9a0
mov ebp, dword [esp + 0x10]
push str.tipe
mov ecx, edi
mov dword [ebp + 0xc8], eax
call fcn.0042c860
mov esi, eax
mov ecx, esi
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
lea edi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
cmp al, bl
jne 0x402a70
sub ecx, edi
push ecx
push esi
lea ecx, [esp + 0x5c]
call fcn.00401c50
mov eax, dword [esp + 0x6c]
mov esi, 0x10
cmp eax, esi
mov eax, dword [esp + 0x58]
jae 0x402a99
lea eax, [esp + 0x58]
push eax
call fcn.00431e91
mov dword [ebp + 0xc0], eax
mov eax, dword [esp + 0x70]
add esp, 4
cmp eax, esi
jb 0x402abd
mov edx, dword [esp + 0x58]
push edx
call fcn.0043134d
add esp, 4
cmp dword [esp + 0x88], esi
mov edi, 0xf
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
mov byte [esp + 0xd0], 1
jb 0x402aec
mov eax, dword [esp + 0x74]
push eax
call fcn.0043134d
add esp, 4
mov dword [esp + 0x88], edi
mov dword [esp + 0x84], ebx
mov byte [esp + 0x74], bl
mov ecx, dword [esp + 0x14]
call fcn.0042b0a0
mov esi, eax
cmp dword [esp + 0x34], 0x10
mov dword [esp + 0x14], esi
mov dword [esp + 0xd0], 0xffffffff
jb 0x402b2c
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0043134d
add esp, 4
cmp esi, ebx
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
jne 0x402720
mov eax, dword [esp + 0x10]
pop ebp
mov ecx, dword [esp + 0xc4]
pop edi
pop esi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0xb8]
pop ebx
call fcn.00431ec7
add esp, 0xc4
ret 4