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

Disassembly:
push 0xffffffffffffffff
push 0x43cff8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa0
push ebx
push ebp
push esi
push edi
mov ebp, ecx
push 0x14
mov dword [esp + 0x6c], ebp
call dword [0x43fd08]
mov esi, dword [0x43fc10]
push 0x12
mov dword [esp + 0x70], eax
call esi
push 0x10
mov dword [esp + 0x74], eax
call esi
push 0x11
mov dword [esp + 0x94], eax
call esi
mov dword [esp + 0x24], eax
call fcn.0043b2e8
mov eax, dword [eax + 4]
mov esi, dword [eax + 0x20]
mov ecx, esi
mov dword [esp + 0x94], esi
mov eax, dword [esi]
call dword [eax + 0xc8]
mov ecx, eax
call fcn.0043b5c4
lea ecx, [esp + 0x98]
mov dword [esp + 0x18], eax
push ecx
mov ecx, eax
call fcn.0043b6e4
mov edx, dword [ebp + 0x20]
mov edi, dword [fcn.0043fd14]
push edx
call edi
push eax
call fcn.0043b648
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x20]
push eax
call edi
push eax
call fcn.0043b648
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x98]
mov ebx, eax
mov dword [esp + 0x8c], ebx
mov eax, dword [ebx + 0x58]
sub eax, ecx
mov ecx, dword [ebx + 0x54]
sub ecx, edx
mov dword [ebx + 0x54], ecx
mov dword [ebx + 0x58], eax
mov ecx, dword [ebp + 0x20]
push ecx
call edi
push eax
call fcn.0043b648
mov edx, dword [ebp + 0x20]
mov edi, dword [eax + 0x80]
push edx
call dword [fcn.0043fd14]
push eax
call fcn.0043b648
mov ecx, dword [eax + 0x7c]
mov ax, word [esi + 0x500]
xor edx, edx
cmp ax, dx
je 0x40f36a
mov dword [esp + 0x1c], eax
jmp 0x40f376
mov ax, word [esi + 0x4fc]
mov word [esp + 0x1c], ax
mov esi, dword [esp + 0x18]
mov eax, 0xffffff
mov ebp, dword [esi + 0x140]
mov dword [esp + 0x54], edx
sub eax, ebp
mov dword [esp + 0x50], 0x4404e0
mov dword [esp + 0x3c], eax
mov eax, edi
mov dword [esp + 0xb8], edx
cdq
sub eax, edx
mov esi, dword [ebx + 0x58]
mov ebp, eax
mov eax, edi
cdq
idiv ecx
sar ebp, 1
lea ecx, [eax + eax*4]
shl ecx, 1
mov eax, ecx
cdq
sub eax, edx
mov edx, eax
mov eax, ebp
sar edx, 1
sub eax, edx
mov edx, eax
add edx, esi
mov esi, dword [ebx + 0x54]
add eax, esi
mov ebx, edx
lea esi, [edx + ecx]
add ecx, eax
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0xa0]
mov edx, dword [ecx + 0x20]
push eax
push edx
mov dword [esp + 0x40], esi
call dword [fcn.0043fc00]
lea ecx, [esp + 0x78]
call fcn.0043b642
mov esi, dword [esp + 0xc0]
mov byte [esp + 0xb8], 1
test esi, esi
jne 0x40f413
xor eax, eax
jmp 0x40f416
mov eax, dword [esi + 4]
push eax
call dword [fcn.0043f314]
push eax
lea ecx, [esp + 0x7c]
call fcn.0043b636
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x7c]
mov ecx, dword [eax + 0x68]
push ecx
push edx
call dword [fcn.0043f2e8]
mov dword [esp + 0x88], eax
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0x440c34
push edi
push edi
push 0
push 0
mov byte [esp + 0xc8], 2
call dword [0x43f31c]
push eax
lea ecx, [esp + 0x4c]
call fcn.0043b63c
lea eax, [esp + 0x48]
push 5
push eax
mov ecx, esi
call fcn.0043b6f0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
mov byte [esp + 0x13], 0
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
sub edx, eax
lea eax, [esp + 0x78]
sub ecx, ebx
neg eax
sbb eax, eax
push 0xcc0020
and eax, dword [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esi + 4]
push ebx
push ecx
push eax
push edi
push edi
push 0
push 0
push edx
call dword [fcn.0043f320]
mov ecx, dword [esp + 0x38]
dec ecx
cmp ecx, ebx
jle 0x40f577
mov dword [esp + 0x38], ecx
mov cl, byte [esp + 0x13]
test cl, cl
je 0x40f4f8
dec dword [esp + 0x34]
test eax, eax
je 0x40f49e
mov eax, dword [esp + 0x3c]
push eax
push 1
push 0
call dword [fcn.0043f2f0]
push eax
lea ecx, [esp + 0x54]
call fcn.0043b63c
lea ecx, [esp + 0x50]
push ecx
mov ecx, esi
call fcn.0043b630
mov edx, dword [esi + 4]
push 0
mov ebx, dword [0x43f2fc]
mov dword [esp + 0x40], eax
push 0
lea eax, [edi - 2]
push 0
push 0
push eax
push eax
push 1
push 1
push edx
call ebx
push 0
push 0
lea eax, [edi - 3]
push 0
push 0
push eax
push eax
mov eax, dword [esi + 4]
push 2
push 2
push eax
call ebx
push 0
call dword [fcn.0043fc0c]
cmp word [esp + 0x6c], 0
jne 0x40f59d
mov ecx, dword [esp + 0x18]
call fcn.00423110
jmp 0x40f6b6
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x64]
mov byte [esp + 0x13], 1
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], edx
jmp 0x40f4f4
mov edx, dword [esp + 0x1c]
cmp dx, 0x13b3
je 0x40f6ba
cmp dx, 0x13b2
je 0x40f6ba
xor ebx, ebx
mov bl, byte [esp + 0x25]
and bl, 0x80
jne 0x40f5df
lea ecx, [ebp - 0xa]
push ebp
lea edx, [esp + 0x28]
push ecx
push edx
mov ecx, esi
call fcn.0043b68a
lea eax, [ebp - 6]
push ebp
push eax
mov ecx, esi
call fcn.0043b684
lea ecx, [ebp - 4]
push ebp
lea edx, [esp + 0x28]
push ecx
push edx
mov ecx, esi
call fcn.0043b68a
lea eax, [ebp - 1]
push ebp
push eax
mov ecx, esi
call fcn.0043b684
lea ecx, [ebp + 1]
push ebp
lea edx, [esp + 0x28]
push ecx
push edx
mov ecx, esi
call fcn.0043b68a
lea eax, [ebp + 4]
push ebp
push eax
mov ecx, esi
call fcn.0043b684
test bl, bl
jne 0x40f65b
lea ecx, [ebp + 6]
push ebp
lea edx, [esp + 0x28]
push ecx
push edx
mov ecx, esi
call fcn.0043b68a
lea eax, [ebp + 0xa]
push ebp
push eax
mov ecx, esi
call fcn.0043b684
test bl, bl
jne 0x40f65b
lea ecx, [ebp - 0xa]
lea edx, [esp + 0x24]
push ecx
push ebp
push edx
mov ecx, esi
call fcn.0043b68a
lea eax, [ebp - 6]
mov ecx, esi
push eax
push ebp
call fcn.0043b684
lea ecx, [ebp - 4]
lea edx, [esp + 0x24]
push ecx
push ebp
push edx
mov ecx, esi
call fcn.0043b68a
lea eax, [ebp - 1]
mov ecx, esi
push eax
push ebp
call fcn.0043b684
lea ecx, [ebp + 1]
lea edx, [esp + 0x24]
push ecx
push ebp
push edx
mov ecx, esi
call fcn.0043b68a
lea eax, [ebp + 4]
mov ecx, esi
push eax
push ebp
call fcn.0043b684
test bl, bl
jne 0x40f6b6
lea ecx, [ebp + 6]
lea edx, [esp + 0x24]
push ecx
push ebp
push edx
mov ecx, esi
call fcn.0043b68a
lea eax, [ebp + 0xa]
mov ecx, esi
push eax
push ebp
call fcn.0043b684
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x94]
mov ax, word [ecx + 0x1314]
test ax, ax
je 0x40f6d3
mov dword [esp + 0x14], eax
jmp 0x40f6e3
mov cx, word [ecx + 0x130c]
mov word [esp + 0x14], cx
mov eax, dword [esp + 0x14]
cmp word [esp + 0x6c], 0
je 0x40f7b4
cmp dx, 0x13a6
je 0x40f71d
cmp dx, 0x13a7
je 0x40f71d
cmp dx, 0x13a8
je 0x40f71d
cmp dx, 0x13a9
je 0x40f71d
cmp dx, 0x13ae
je 0x40f71d
cmp dx, 0x13af
jne 0x40f7b4
xor ecx, ecx
mov cl, byte [esp + 0x91]
test cl, 0x80
jne 0x40f769
cmp ax, 0x7fe
je 0x40f769
cmp ax, 0x808
je 0x40f769
xor ecx, ecx
mov cl, byte [esp + 0x71]
test cl, 0x80
jne 0x40f74e
cmp ax, 0x7ff
je 0x40f74e
cmp ax, 0x809
jne 0x40f7b4
lea ebx, [ebp + 5]
lea edx, [ebp + 3]
push ebx
lea eax, [esp + 0x74]
push edx
push eax
mov ecx, esi
call fcn.0043b68a
lea ecx, [ebp + 8]
push ebx
push ecx
jmp 0x40f7a5
lea ebx, [ebp + 5]
lea edx, [ebp + 3]
push ebx
lea eax, [esp + 0x74]
push edx
push eax
mov ecx, esi
call fcn.0043b68a
lea ecx, [ebp + 8]
push ebx
push ecx
mov ecx, esi
call fcn.0043b684
lea edx, [ebx - 2]
lea eax, [ebp + 5]
push edx
push eax
lea eax, [esp + 0x78]
mov ecx, esi
push eax
call fcn.0043b68a
add ebx, 3
lea eax, [ebp + 5]
push ebx
push eax
mov ecx, esi
call fcn.0043b684
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
cmp dx, 0x13aa
je 0x40f7c2
cmp dx, 0x13ab
jne 0x40f840
cmp ax, 0x80c
je 0x40f840
mov ecx, dword [esp + 0x68]
lea eax, [ebp + 5]
add ebp, 5
mov dword [esp + 0x5c], eax
mov edx, dword [ecx + 0x20]
mov dword [esp + 0x58], ebp
add ebp, 0xf
add eax, 0xf
push edx
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], eax
call dword [fcn.0043fd14]
push eax
call fcn.0043b648
mov ebp, dword [eax + 0x5c]
mov ebx, dword [eax + 0x60]
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x1c]
push eax
call fcn.0043b6e4
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
sub ebx, eax
push 1
push ebx
mov ebx, dword [esp + 0x20]
sub ebp, edx
mov ecx, ebx
push ebp
call fcn.00427fe0
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x40]
test edx, edx
je 0x40f840
lea edx, [esp + 0x58]
push eax
push edx
push esi
mov ecx, ebx
call fcn.0041fcb0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0x440c34
push edi
push edi
push 0
push 0
mov byte [esp + 0xc8], 3
call dword [fcn.0043f318]
push eax
lea ecx, [esp + 0x44]
call fcn.0043b63c
lea eax, [esp + 0x40]
push 3
push eax
mov ecx, esi
call fcn.0043b6f0
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x7c]
push 0xcc0020
mov ecx, dword [eax + 0x58]
mov edx, dword [eax + 0x54]
lea eax, [esp + 0x7c]
push ecx
neg eax
mov ecx, dword [esi + 4]
push edx
sbb eax, eax
add edi, 2
and eax, ebx
push eax
push edi
push edi
push 0
push 0
push ecx
call dword [fcn.0043f30c]
mov edx, dword [esp + 0x3c]
mov ecx, esi
push edx
call fcn.0043b630
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x7c]
push eax
push ecx
call dword [fcn.0043f2e8]
lea ecx, [esp + 0x50]
call fcn.0043b61e
mov esi, 0x4404b8
mov dword [esp + 0x40], esi
lea ecx, [esp + 0x40]
mov byte [esp + 0xb8], 4
call fcn.0043b61e
mov edi, 0x4404a4
mov dword [esp + 0x48], esi
mov dword [esp + 0x40], edi
lea ecx, [esp + 0x48]
mov byte [esp + 0xb8], 5
call fcn.0043b61e
lea ecx, [esp + 0x78]
mov dword [esp + 0x48], edi
mov byte [esp + 0xb8], 0
call fcn.0043b618
mov dword [esp + 0x50], esi
lea ecx, [esp + 0x50]
mov dword [esp + 0xb8], 6
call fcn.0043b61e
mov ecx, dword [esp + 0xb0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xac
ret 4