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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
fld dword [0x42e040]
mov dword [esp + 0x3c], 0x84d22b31
fstp dword [esp + 0x74]
mov dword [esp + 0x50], 0x2f708a76
fld qword [0x42e038]
mov dword [esp + 0x18], 0x8ddacf8d
mov eax, 0xffff8e0c
mov word [esp], ax
mov ecx, 0xffffe441
mov word [esp + 0x10], cx
mov dword [esp + 0x14], 0xdeb34925
mov edx, 0x76bd
mov word [esp + 0xc], dx
fstp qword [esp + 0x84]
fld qword [0x42e030]
mov eax, 0xffffe09c
mov word [esp + 0xc], ax
fstp qword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
push ebx
add ecx, 0x2d950a35
push esi
push edi
cmp ecx, 0xa2730ce3
je 0x4073d7
mov edx, dword [esp + 0x24]
imul edx, edx, 0xc1952a89
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], 0xc7062214
mov dword [esp + 0x2c], 0xd0181278
mov ecx, dword [0x4331e4]
mov edx, dword [0x43314c]
mov eax, 0xb9433b1f
sub eax, ecx
cmp eax, edx
jle 0x407412
fld dword [0x433168]
fsub qword [0x42dc08]
fstp dword [0x433168]
jmp 0x40742a
mov eax, dword [esp + 0x30]
add eax, 0x2a124155
cmp eax, 0x741e0951
jge 0x40742a
mov dword [esp + 0x2c], 0x12aa2a7
mov ebx, dword [ebp + 0x14]
lea edx, [esp + 0x9c]
push edx
mov esi, 1
lea ecx, [esp + 0x9c]
push ebx
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], ecx
call fcn.00402b10
add esp, 8
test eax, eax
jne 0x407478
lea eax, [esi - 0xd]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0x80]
push edx
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x48]
push ecx
call fcn.00402cf0
mov edi, dword [ebp + 0x10]
push ebx
push edi
call fcn.004020f0
add esp, 0x20
test eax, eax
jge 0x40752b
mov eax, dword [ebp + 8]
test eax, eax
je 0x4074d0
push 0
push eax
call fcn.004041c0
mov esi, eax
add esp, 8
test esi, esi
jne 0x407cea
mov esi, 1
add dword [esp + 0x20], esi
dec word [0x433424]
mov dx, word [0x433424]
mov cx, word [esp + 0xc]
movsx eax, dx
movsx edx, cx
add edx, eax
add edx, dword [esp + 0x20]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fadd dword [0x433108]
fstp dword [0x433108]
test eax, eax
je 0x407522
push edi
push eax
call fcn.004024d0
mov esi, eax
add esp, 8
test esi, esi
jne 0x407cea
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x34]
push edi
push eax
call fcn.004024d0
mov esi, eax
add esp, 8
test esi, esi
jne 0x407cea
lea ecx, [esp + 0x50]
push ebx
push ecx
call fcn.004024d0
mov esi, eax
add esp, 8
test esi, esi
jne 0x407cea
mov edx, dword [edi + 4]
mov eax, 1
add edx, 2
mov dword [esp + 0x50], eax
mov dword [esp + 0x34], eax
push edx
lea eax, [esp + 0x78]
push eax
call fcn.004010c0
mov esi, eax
add esp, 8
test esi, esi
jne 0x407cea
push eax
lea ecx, [esp + 0x78]
push ecx
call fcn.004041c0
mov esi, eax
add esp, 8
test esi, esi
jne 0x407cea
lea edx, [esp + 0x68]
push 2
push edx
call fcn.004010c0
mov esi, eax
add esp, 8
test esi, esi
jne 0x407cea
lea eax, [esp + 0x84]
push 3
push eax
call fcn.004010c0
mov esi, eax
add esp, 8
test esi, esi
jne 0x407cea
lea ecx, [esp + 0x50]
push ecx
call fcn.004037b0
add esp, 4
and eax, 0x8000001f
jns 0x4075ec
dec eax
or eax, 0xffffffe0
inc eax
cmp eax, 0x1f
jge 0x407661
mov edx, dword [esp + 0x24]
imul edx, edx, 0xdc2c5fea
mov edi, 0x1f
sub edi, eax
lea eax, [esp + 0x34]
push edi
push eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x38], edi
call fcn.00404a20
mov esi, eax
add esp, 8
test esi, esi
jne 0x407cea
mov ecx, dword [esp + 0x5c]
mov edx, 0x5147aa03
sub edx, ecx
add edx, dword [esp + 0x20]
lea eax, [esp + 0x50]
push edi
mov dword [esp + 0x24], edx
dec dword [esp + 0x60]
push eax
call fcn.00404a20
mov esi, eax
add esp, 8
test esi, esi
jne 0x407cea
fld qword [esp + 0x40]
fsub qword [0x42e028]
fstp qword [esp + 0x40]
jmp 0x407669
mov dword [esp + 0x30], 0
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x54]
dec edi
dec eax
mov dword [esp + 0x2c], edi
sub edi, eax
mov ebx, edi
shl ebx, 5
lea ecx, [esp + 0x50]
push ebx
push ecx
mov dword [esp + 0x68], eax
call fcn.00404a20
lea edx, [esp + 0x58]
push edx
lea eax, [esp + 0x40]
push eax
call fcn.00402b10
add esp, 0x10
test eax, eax
jl 0x407724
fld qword [esp + 0x40]
fld1
fsub st(1), st(0)
fxch st(1)
fstp qword [esp + 0x40]
fld qword [esp + 0x40]
fld qword [0x4331f8]
fcompp
fnstsw ax
fsubr qword [0x4331f8]
fstp qword [0x4331f8]
test ah, 0x41
jp 0x4076f5
dec dword [esp + 0x18]
movzx ecx, word [esp + 0x18]
movzx edx, word [esp + 0x18]
movzx eax, word [0x4333c0]
add ecx, edx
imul ecx, eax
mov word [0x4333c0], cx
mov eax, dword [esp + 0x7c]
inc dword [eax + edi*4]
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x38]
push edx
mov eax, edx
push eax
call fcn.00406ca0
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x44]
push edx
call fcn.00402b10
add esp, 0x14
test eax, eax
jge 0x4076a7
movzx eax, word [esp + 0xc]
mov ecx, dword [esp + 0x24]
movzx edx, word [esp + 0xc]
sub eax, ecx
sub eax, 0x35ed9e5f
imul eax, edx
mov word [esp + 0xc], ax
inc dword [esp + 0xc]
lea eax, [esp + 0x50]
push ebx
push eax
call fcn.00404350
mov edx, dword [esp + 0x34]
add esp, 8
cmp edx, dword [esp + 0x60]
mov dword [esp + 0x4c], edx
jle 0x407c4e
lea eax, [edi*4]
add ebx, 0xffffffe0
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebx
jmp 0x407788
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x3c]
mov edi, dword [esi + edi*4]
cmp dword [ecx + edx*4], edi
jb 0x4077ba
mov ecx, dword [esp + 0x7c]
mov dword [eax + ecx - 4], 0xffffffff
mov ecx, dword [esp + 0x7c]
mov edi, 1
add dword [eax + ecx - 4], edi
jmp 0x407994
mov esi, dword [ecx + edx*4]
mov eax, esi
mov ebx, edi
shr ebx, 0x10
xor edx, edx
div ebx
mov edx, eax
mov eax, dword [esp + 0x4c]
lea ecx, [ecx + eax*4 - 4]
mov eax, edx
imul eax, ebx
sub esi, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
movzx ecx, word [ecx + 2]
fild dword [esp + 0x10]
shl esi, 0x10
fadd dword [0x433008]
or esi, ecx
mov dword [esp + 0x64], edx
fsub qword [esp + 0x40]
mov ecx, dword [esp + 0x48]
sub ecx, 0x4ed95110
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fcompp
fnstsw ax
test ah, 5
jp 0x40787b
fld dword [esp + 0x80]
mov eax, dword [0x433398]
mov dword [esp + 0x10], eax
fisub dword [esp + 0x10]
fadd qword [0x433340]
fcomp qword [0x42e020]
fnstsw ax
test ah, 0x44
jp 0x40787b
fld qword [esp + 0x90]
fstp st(0)
fld dword [0x433598]
mov ecx, dword [esp + 0x5c]
fstp st(0)
fld qword [esp + 0x90]
fld1
fadd st(1), st(0)
fxch st(1)
fstp qword [esp + 0x90]
fld dword [0x433598]
fadd st(1)
fstp dword [0x433598]
jmp 0x40787d
fld1
movzx ecx, di
mov eax, edx
imul eax, ecx
cmp esi, eax
jae 0x4078b5
fld qword [0x4333d0]
dec edx
fsub qword [0x42e018]
add esi, edi
mov dword [esp + 0x64], edx
fstp qword [0x4333d0]
cmp esi, edi
jb 0x4078b5
cmp esi, eax
jae 0x4078b1
add esi, edi
dec edx
cmp esi, edi
jae 0x4078a6
mov dword [esp + 0x64], edx
fadd dword [0x433090]
sub esi, eax
fstp dword [0x433090]
mov dx, word [esp + 0x1c]
mov cx, word [esp + 0xc]
movsx eax, dx
mov dword [esp + 0x10], eax
movsx edx, cx
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fsub dword [0x433090]
fsubp st(1)
call fcn.00415890
mov word [esp + 0x1c], ax
fld qword [0x433150]
xor edx, edx
mov eax, esi
div ebx
mov ecx, dword [esp + 0x20]
mov edx, 0x5c3874a0
sub edx, ecx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
fild dword [esp + 0x10]
fsubp st(1)
fstp qword [0x433150]
mov ecx, eax
imul ecx, ebx
sub esi, ecx
movzx ecx, word [edx]
shl esi, 0x10
or esi, ecx
movzx edx, di
mov ecx, eax
imul ecx, edx
cmp esi, ecx
jae 0x407962
add esi, edi
dec eax
cmp esi, edi
jb 0x40794d
cmp esi, ecx
jae 0x40794d
add esi, edi
dec eax
cmp esi, edi
jae 0x407942
movzx edx, word [esp + 0x18]
mov ecx, dword [esp + 0x24]
lea edx, [edx + ecx + 0x227af25f]
mov word [esp + 0x18], dx
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x28]
shl ecx, 0x10
or ecx, eax
mov eax, dword [esp + 0x7c]
mov dword [edx + eax - 4], ecx
mov ecx, dword [esp + 0x7c]
mov eax, edx
mov edi, 1
add dword [eax + ecx - 4], edi
jmp 0x407994
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x7c]
dec dword [eax + ecx - 4]
movzx eax, word [esp + 0x18]
movzx ecx, word [esp + 0x1c]
lea edx, [esp + 0x68]
sub ecx, eax
push 0
push edx
mov word [esp + 0x24], cx
call fcn.004041c0
mov esi, eax
add esp, 8
test esi, esi
jne 0x407cea
mov esi, dword [esp + 0x60]
cmp esi, edi
jl 0x4079d6
mov eax, dword [esp + 0x58]
mov eax, dword [eax + esi*4 - 4]
mov ecx, dword [esp + 0x70]
mov dword [ecx], eax
add dword [esp + 0xc], edi
mov dx, word [esp + 0xc]
movsx eax, dx
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fld qword [esp + 0x40]
fadd qword [0x42e010]
fsubp st(1)
call fcn.00415890
mov word [0x433568], ax
fld qword [esp + 0x40]
mov ecx, dword [esp + 0x58]
fadd qword [0x42d848]
mov edx, dword [ecx + esi*4]
mov eax, dword [esp + 0x70]
fstp qword [esp + 0x40]
movzx ecx, word [esp + 0x18]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x28]
add ecx, 0x26fa10f1
mov word [esp + 0x18], cx
mov ecx, dword [eax + edx - 4]
push ecx
lea edx, [esp + 0x6c]
push edx
mov eax, edx
push eax
call fcn.004072b0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x407cea
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.004041c0
mov esi, eax
add esp, 8
test esi, esi
jne 0x407cea
fld dword [esp + 0x80]
mov eax, dword [esp + 0x4c]
cmp eax, 2
fsub qword [0x42e008]
fstp dword [esp + 0x80]
jge 0x407a96
xor ecx, ecx
jmp 0x407a9e
mov edx, dword [esp + 0x3c]
mov ecx, dword [edx + eax*4 - 8]
cmp eax, edi
mov edx, dword [esp + 0x8c]
mov dword [edx], ecx
jge 0x407aaf
xor ecx, ecx
jmp 0x407ab7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx + eax*4 - 4]
mov edx, dword [esp + 0x8c]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + eax*4]
mov eax, dword [esp + 0x8c]
lea ecx, [esp + 0x84]
mov dword [eax + 8], edx
push ecx
lea edx, [esp + 0x6c]
push edx
call fcn.00402b10
add esp, 8
test eax, eax
jg 0x407990
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebx + eax - 4]
push ecx
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x70]
push eax
call fcn.004072b0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x407cea
mov edi, dword [esp + 0x2c]
lea ecx, [esp + 0x68]
push edi
push ecx
call fcn.00404a20
mov esi, eax
add esp, 8
test esi, esi
jne 0x407cea
mov dx, word [0x433204]
mov cx, word [0x433348]
movsx eax, dx
movsx edx, cx
sub edx, eax
mov dword [esp + 0x14], edx
mov edx, 0x24e97910
fild dword [esp + 0x14]
fadd qword [0x433390]
movzx eax, word [esp + 0xc]
movsx ecx, ax
movzx eax, word [0x4331bc]
inc word [0x4331bc]
dec dword [esp + 0xc]
sub edx, ecx
movsx ecx, ax
sub edx, ecx
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x407ba1
fld dword [0x433264]
fmul qword [0x42e000]
fstp dword [0x433264]
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x38]
push eax
mov ecx, eax
push ecx
call fcn.00406ca0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x407cea
push eax
lea edx, [esp + 0x38]
push edx
call fcn.00403c30
add esp, 8
test eax, eax
jge 0x407c2d
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x6c]
push ecx
call fcn.004024d0
mov esi, eax
add esp, 8
test esi, esi
jne 0x407cea
lea edx, [esp + 0x68]
push edi
push edx
call fcn.00404a20
mov esi, eax
add esp, 8
test esi, esi
jne 0x407cea
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x38]
push ecx
mov edx, ecx
push edx
call fcn.00406fc0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x407cea
mov eax, dword [esp + 0x7c]
dec dword [ebx + eax - 4]
mov eax, dword [esp + 0x4c]
dec eax
sub edi, 0x20
sub ebx, 4
cmp eax, dword [esp + 0x60]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], ebx
jg 0x407780
mov edi, dword [ebp + 8]
test edi, edi
je 0x407cad
lea eax, [esp + 0x74]
push eax
push edi
call fcn.004024d0
fld dword [0x43303c]
fsub qword [0x42dff8]
add esp, 8
fsub qword [esp + 0x40]
mov cx, word [0x4334f0]
movsx edx, cx
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
faddp st(1)
call fcn.00415890
mov edx, dword [ebp + 0x14]
mov word [0x4334f0], ax
fld qword [esp + 0x40]
mov eax, dword [ebp + 0x10]
fsub qword [0x42d848]
mov ecx, dword [eax]
imul ecx, dword [edx]
fstp qword [esp + 0x40]
mov dword [edi], ecx
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x407cea
mov eax, dword [esp + 0x30]
push eax
lea ecx, [esp + 0x38]
push ecx
call fcn.00404350
lea edx, [esp + 0x3c]
push edx
push edi
call fcn.004024d0
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
push 0
push edi
mov dword [edi], ecx
call fcn.00403c30
add esp, 0x18
test eax, eax
jne 0x407cea
mov dword [edi], 1
push 0
lea edx, [esp + 0x88]
push edx
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.00402920
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
add esp, 0x18
fadd dword [0x43337c]
fadd qword [0x42dff0]
fcomp qword [0x42dfe8]
fnstsw ax
fld dword [0x43337c]
fsub qword [0x42d848]
fstp dword [0x43337c]
dec dword [esp + 0x48]
test ah, 0x44
jp 0x407d56
add dword [esp + 0x20], 0x620ad05b
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret