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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x49263b
push eax
mov dword fs:[0], esp
mov eax, dword [esi + 0xcd4]
mov edx, dword [esi + 0x24d4]
sub esp, 0x10
push ebx
push ebp
push edi
mov edi, ecx
mov ecx, dword [eax + 0x1f44]
imul ecx, ecx, 0x1808
push ecx
xor ebx, ebx
push ebx
push edx
call fcn.0045ed30
mov eax, dword [esi + 0xcd4]
mov ecx, dword [eax + 0x1f48]
mov edx, dword [esi + 0x24d8]
imul ecx, ecx, 0x1808
add esp, 0xc
push ecx
push ebx
push edx
call fcn.0045ed30
add esp, 0xc
fld1
cmp dword [esp + 0x2c], ebx
mov dword [esi + 0x24c4], ebx
mov dword [esi + 0x24c8], ebx
mov dword [esi + 0x24cc], ebx
mov dword [esi + 0x24d0], ebx
fstp qword [0x4ebba0]
mov eax, 1
fldz
mov dword [0x4ebb80], eax
sete cl
fst dword [esi + 0xc64]
cmp edi, ebx
fstp dword [esi + 0xc68]
mov byte [esi + 0xc00], cl
mov byte [esi + 0xc02], al
mov byte [esi + 0xc01], bl
mov dword [esi + 0xc5c], eax
mov dword [esi + 0xcd8], edi
mov dword [esi + 0xcdc], ebx
mov dword [esi + 0xc30], ebx
mov dword [esi + 0xc58], 0xffffffff
mov dword [esi + 0xc60], ebx
mov dword [esi + 0xc1c], ebx
mov dword [esi + 0xc7c], ebx
mov dword [esi + 0xc80], ebx
jne 0x40f862
mov ecx, dword [esi + 0xcd4]
mov edx, dword [ecx + 0x70]
xor eax, eax
cmp edx, ebx
jle 0x40f85a
mov edi, dword [ecx + 0x78]
mov ecx, edi
mov ebp, dword [ecx]
cmp dword [ebp + 0x2c], 0xfffffffd
je 0x40f8a7
add eax, 1
add ecx, 4
cmp eax, edx
jl 0x40f848
xor eax, eax
mov dword [esi + 0xcd8], eax
cmp dword [esi + 0xcd8], ebx
je 0x40fe42
mov edx, dword [esi + 0xcd4]
cmp byte [edx + 0x21c8], bl
je 0x40f8bc
push 0x14
call fcn.00459d0c
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
cmp edx, ebx
mov dword [esp + 0x24], ebx
je 0x40f8ac
mov eax, dword [esi + 0xcd4]
mov ecx, esi
mov ebx, edx
call fcn.004069c0
xor ebx, ebx
jmp 0x40f8ae
mov eax, dword [edi + eax*4]
jmp 0x40f85c
xor eax, eax
mov dword [esp + 0x24], 0xffffffff
mov dword [esi + 0x24c0], eax
mov eax, dword [esi + 0xcd8]
mov eax, dword [eax + 0xfc]
cmp eax, ebx
jne 0x40f908
mov ecx, dword [esi + 0xcd4]
mov eax, dword [ecx + 0x1f78]
cmp eax, ebx
jne 0x40f908
mov edx, dword [ecx + 0x70]
xor eax, eax
cmp edx, ebx
jle 0x40f906
mov edi, dword [ecx + 0x78]
mov ecx, edi
lea ebx, [ebx]
mov ebp, dword [ecx]
cmp dword [ebp + 0x2c], 0xfffffffe
je 0x40faef
add eax, 1
add ecx, 4
cmp eax, edx
jl 0x40f8f0
xor eax, eax
push eax
mov edi, esi
call fcn.0040e5b0
cmp eax, ebx
mov dword [esi + 0xdc8], eax
je 0x40fe42
mov ecx, dword [eax + 0xc]
mov dword [0x4ebd04], ecx
mov edx, dword [esi + 0xdc8]
mov eax, dword [edx + 0x10]
mov dword [0x4ebd08], eax
mov ecx, dword [esi + 0xcd4]
mov dword [ecx + 0x1f50], ebx
mov edx, dword [esi + 0xcd4]
mov dword [edx + 0x1f54], ebx
mov eax, dword [esi + 0xdc8]
mov edx, dword [eax + 0xc]
mov ecx, dword [esi + 0xcd4]
mov dword [ecx + 0x1f58], edx
mov eax, dword [esi + 0xdc8]
mov edx, dword [eax + 0x10]
mov ecx, dword [esi + 0xcd4]
push ebx
mov dword [ecx + 0x1f5c], edx
mov eax, dword [0x4e51d0]
mov ecx, dword [eax]
lea edx, [esp + 0x14]
push edx
mov edx, dword [0x4ebd08]
push ebx
push 0x15
push 1
push 1
push edx
mov edx, dword [0x4ebd04]
push edx
push eax
mov eax, dword [ecx + 0x5c]
call eax
xor ecx, ecx
test eax, eax
setl cl
push ebx
sub ecx, 1
and ecx, dword [esp + 0x14]
mov eax, ecx
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [0x4ebd08]
push ebx
push 0x15
push 1
push 1
push ecx
mov ecx, dword [0x4ebd04]
mov dword [0x4e51d4], eax
mov eax, dword [0x4e51d0]
mov edx, dword [eax]
mov edx, dword [edx + 0x5c]
push ecx
push eax
call edx
xor ecx, ecx
test eax, eax
setl cl
sub ecx, 1
and ecx, dword [esp + 0x14]
mov eax, ecx
mov dword [0x4e51d8], eax
mov ebp, dword [esi + 0xcd8]
xor eax, eax
cmp dword [ebp + 0x48], ebx
jle 0x40fa22
mov edi, edi
cmp dword [ebp + 0xe0], eax
jne 0x40fa14
mov edx, dword [ebp + 0x50]
mov ecx, dword [edx + eax*4]
mov dword [esi + 0xcdc], ecx
mov edx, dword [esi + 0xcd8]
add eax, 1
cmp eax, dword [edx + 0x48]
jl 0x40fa00
mov ecx, dword [esi + 0xcdc]
xor edi, edi
xor eax, eax
cmp ecx, ebx
mov ebx, dword [esp + 0x2c]
je 0x40fa6c
mov edx, dword [ecx + 0x18]
imul edx, ebx
mov edi, dword [ecx + 0x10]
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ecx + 0x1c]
imul edx, ebx
sub edi, eax
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ecx + 0x14]
sub eax, edx
push eax
push edi
push ebx
mov edi, ebp
call fcn.00448000
mov eax, dword [esi + 0xcd8]
push eax
call fcn.004485c0
mov ecx, dword [esi + 0xcd8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov ecx, dword [esi + 0xcd8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
call eax
test al, al
jne 0x40fabb
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
push 1
call edi
mov ecx, dword [esi + 0xcd8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
call eax
test al, al
je 0x40faa6
mov ecx, dword [esi + 0xcd8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x20]
call eax
mov edx, dword [esi + 0xcd8]
xor edi, edi
xor ecx, ecx
mov dword [esi + 0x1160], edi
cmp dword [edx + 0x48], edi
mov dword [esp + 0x10], ecx
jle 0x40fd34
fld dword [0x499a54]
fldz
jmp 0x40faf9
mov eax, dword [edi + eax*4]
jmp 0x40f908
fxch st(1)
fild dword [esp + 0x10]
mov eax, dword [esi + 0xcd8]
mov edx, dword [eax + 0x50]
mov ebp, dword [edx + ecx*4]
fmul dword [0x499c18]
fld dword [0x499c14]
fadd st(1)
fst dword [ebp + 0x3c]
fld st(1)
fadd dword [0x499c10]
fstp dword [ebp + 0x44]
fxch st(1)
fadd dword [0x499b88]
fst dword [ebp + 0x40]
fxch st(1)
fcomp st(2)
fnstsw ax
test ah, 5
jp 0x40fb42
fxch st(1)
fst dword [ebp + 0x3c]
fxch st(1)
fxch st(2)
fcom dword [ebp + 0x3c]
fnstsw ax
test ah, 5
jp 0x40fb51
fst dword [ebp + 0x3c]
fxch st(2)
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x40fb5f
fst dword [ebp + 0x40]
fxch st(1)
fcom dword [ebp + 0x40]
fnstsw ax
test ah, 5
jp 0x40fb6e
fst dword [ebp + 0x40]
cmp dword [ebp + 4], edi
mov dword [ebp + 0x4c], edi
mov dword [ebp + 0x98], edi
jne 0x40fd14
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x40fd14
fstp st(1)
push 0x7c
fstp st(0)
call fcn.00459d0c
xor edi, edi
add esp, 4
cmp eax, edi
je 0x40fbb3
mov dword [eax + 0x78], edi
mov byte [eax + 0x20], 0
mov byte [eax + 0x3c], 0
mov dword [eax + 0x74], 1
mov edi, eax
mov dword [edi + 0x68], esi
mov dword [edi + 0x6c], ebx
mov eax, dword [esi + 0xf04]
cmp dword [esi + 0xf00], eax
jl 0x40fc21
lea ebx, [eax + eax]
lea eax, [ebx*4]
push eax
call fcn.0045a843
mov ecx, dword [esi + 0xf00]
mov edx, dword [esi + 0xf08]
add ecx, ecx
add esp, 4
add ecx, ecx
push ecx
push edx
push eax
mov dword [esp + 0x24], eax
call fcn.0045edb0
add esp, 0xc
cmp dword [esi + 0xf04], 0x10
je 0x40fc11
mov eax, dword [esi + 0xf08]
push eax
call fcn.0045a194
add esp, 4
mov ecx, dword [esp + 0x18]
mov dword [esi + 0xf08], ecx
mov dword [esi + 0xf04], ebx
mov edx, dword [esi + 0xf00]
mov eax, dword [esi + 0xf08]
mov dword [eax + edx*4], edi
mov eax, 1
add dword [esi + 0xf00], eax
mov dword [ebp + 0x48], edi
mov dword [edi + 0x70], ebp
mov dword [edi + 0x74], eax
mov ecx, dword [ebp + 0x2c]
mov dword [edi + 0x78], ecx
fild dword [ebp + 0x10]
fstp dword [edi]
fild dword [ebp + 0x14]
fstp dword [edi + 4]
fild dword [ebp + 0x18]
fld dword [0x499a00]
fmul st(1), st(0)
fxch st(1)
fstp dword [edi + 0x10]
fimul dword [ebp + 0x1c]
fstp dword [edi + 0x14]
fild dword [esp + 0x2c]
fld dword [edi + 0x10]
fmul st(1)
fsubr dword [edi]
fstp dword [edi + 8]
fmul dword [edi + 0x14]
fsubr dword [edi + 4]
fstp dword [edi + 0xc]
mov edx, dword [ebp + 0x20]
mov dword [edi + 0x18], edx
fld dword [ebp + 0x3c]
fstp dword [edi + 0x1c]
mov eax, dword [esi + 0x1164]
cmp dword [esi + 0x1160], eax
jl 0x40fcf0
lea ebp, [eax + eax]
lea eax, [ebp*4]
push eax
call fcn.0045a843
mov ecx, dword [esi + 0x1160]
mov edx, dword [esi + 0x1168]
add ecx, ecx
add esp, 4
add ecx, ecx
push ecx
mov ebx, eax
push edx
push ebx
call fcn.0045edb0
add esp, 0xc
cmp dword [esi + 0x1164], 0x10
je 0x40fce4
mov eax, dword [esi + 0x1168]
push eax
call fcn.0045a194
add esp, 4
mov dword [esi + 0x1168], ebx
mov dword [esi + 0x1164], ebp
mov ecx, dword [esi + 0x1160]
fld dword [0x499a54]
mov edx, dword [esi + 0x1168]
fldz
mov dword [edx + ecx*4], edi
fxch st(1)
add dword [esi + 0x1160], 1
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0xcd8]
add ecx, 1
xor edi, edi
cmp ecx, dword [eax + 0x48]
mov dword [esp + 0x10], ecx
jl 0x40faf7
mov ebx, dword [esp + 0x2c]
fstp st(1)
fstp st(0)
cmp dword [esi + 0xf4c], edi
mov eax, dword [esi + 0xcd4]
mov ecx, dword [eax + 0x1f50]
mov dword [esi + 0xc6c], ecx
mov edx, dword [eax + 0x1f54]
mov dword [esi + 0xc70], edx
mov ecx, dword [eax + 0x1f58]
mov dword [esi + 0xc74], ecx
mov edx, dword [eax + 0x1f5c]
mov dword [esi + 0xc78], edx
mov ecx, dword [eax + 0x1f50]
mov dword [esi + 0xc84], ecx
mov edx, dword [eax + 0x1f54]
mov dword [esi + 0xc88], edx
mov ecx, dword [eax + 0x1f58]
mov dword [esi + 0xc8c], ecx
mov edx, dword [eax + 0x1f5c]
mov dword [esi + 0xc90], edx
jle 0x40fdbc
mov eax, dword [esi + 0xf54]
mov ecx, dword [eax + edi*4]
push ecx
call fcn.0041b010
add edi, 1
cmp edi, dword [esi + 0xf4c]
jl 0x40fda2
mov eax, dword [esi + 0xcdc]
test eax, eax
je 0x40fe1d
cmp byte [eax + 0x2a], 0
je 0x40fe1d
mov eax, dword [eax + 0x48]
test eax, eax
je 0x40fe1d
cmp dword [eax + 0x6c], 0
je 0x40fe1d
mov edx, dword [esi + 0xcd8]
mov ecx, dword [edx + 0xe4]
sub ecx, 0
je 0x40fe07
sub ecx, 1
jne 0x40fe1d
mov eax, dword [eax + 0x6c]
mov ecx, dword [eax + 0xac]
imul ecx, dword [eax + 0x9c]
mov dword [esi + 0xc78], ecx
jmp 0x40fe1d
mov eax, dword [eax + 0x6c]
mov edx, dword [eax + 0xa8]
imul edx, dword [eax + 0x98]
mov dword [esi + 0xc74], edx
mov ecx, dword [esi + 0xcd8]
mov ecx, dword [ecx + 0xf4]
push 1
push 0
push esi
xor eax, eax
call fcn.0040f4b0
mov byte [esi + 0xc03], 0
mov dword [esi + 0xc34], ebx
mov ecx, dword [esp + 0x1c]
pop edi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x1c
ret 4