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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x70
push ebx
push ebp
push esi
push edi
mov ebp, ecx
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 0x14]
mov eax, dword [ebp + 0x18]
xor ebx, ebx
mov dword [ebp + 0x20], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], ebx
test eax, eax
jle 0x41099e
lea ecx, [ecx]
mov edx, dword [ebp + 0x28]
mov eax, dword [edx + 0x14]
mov dword [esp + 0x2c], eax
test ebx, ebx
jl 0x4106bc
cmp ebx, dword [ebp + 0x18]
jge 0x4106bc
mov ecx, dword [ebp + 8]
mov eax, ebx
cdq
idiv ecx
mov ecx, dword [ebp + 0x14]
imul edx, edx, 0x34
add edx, dword [ecx + eax*4]
mov edi, edx
mov dword [esp + 0x14], edi
jmp 0x4106c8
mov dword [esp + 0x14], 0
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x24]
mov edx, dword [edi + 0x1c]
mov dword [edi + 0x28], eax
mov eax, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0x28], edx
mov edx, dword [ebp]
push edx
add eax, 8
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0x40]
push eax
call fcn.004100e0
mov ecx, eax
mov eax, 1
cmp dword [esp + 0x28], eax
mov dword [esp + 0x3c], ecx
mov esi, ecx
mov dword [esp + 0x18], eax
jle 0x410882
jmp 0x410714
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x410720
mov ecx, dword [edi + 0x24]
mov dword [edi + 0x28], ecx
jmp 0x410737
mov ecx, dword [edi + 0x28]
cmp eax, dword [ecx]
jl 0x410737
mov ecx, dword [ecx + 8]
mov dword [edi + 0x28], ecx
test ecx, ecx
jne 0x410737
mov edx, dword [edi + 0x24]
mov dword [edi + 0x28], edx
and eax, 0x800001ff
jns 0x410745
dec eax
or eax, 0xfffffe00
inc eax
mov ecx, dword [edi + 0x28]
mov edx, dword [ecx + 4]
lea eax, [eax + eax*2]
mov ecx, dword [edx + eax*8]
lea eax, [edx + eax*8]
mov edx, dword [ebp]
push edx
add eax, 8
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 0x40]
push eax
call fcn.004100e0
mov ebx, eax
cmp esi, ebx
jne 0x410775
mov esi, eax
jmp 0x41085f
mov ecx, dword [ebp + 0x28]
call fcn.004125f0
mov edi, eax
test edi, edi
je 0x4109c6
mov ecx, dword [esp + 0x10]
lea edx, [ebx + 8]
mov eax, edx
neg eax
mov dword [edi], esi
mov dword [edi + 0xc], ecx
lea ecx, [esp + eax + 0x40]
add esi, 8
lea eax, [esp + eax + 0x50]
mov dword [edi + 8], 0
mov dword [edi + 4], ebx
sub esi, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 2
lea ebx, [ebx]
fld qword [edx]
fcomp qword [esi + edx]
fnstsw ax
test ah, 0x41
mov eax, dword [esp + 0x10]
jne 0x4107da
fld qword [esi + edx]
fstp qword [ecx + edx]
fld qword [edx]
jmp 0x4107e2
fld qword [edx]
fstp qword [ecx + edx]
fld qword [esi + edx]
fstp qword [eax + edx]
add edx, 8
sub dword [esp + 0x20], 1
jne 0x4107c0
mov ecx, dword [ebp + 0x30]
call fcn.004121f0
mov esi, eax
test esi, esi
je 0x4109c6
fld qword [esp + 0x40]
mov dword [esi + 0x10], edi
fld qword [0x459688]
fmul st(1), st(0)
fxch st(1)
call fcn.00440730
fld qword [esp + 0x48]
or ecx, 0xffffffff
fmul st(1)
sub ecx, eax
mov dword [esi], ecx
call fcn.00440730
fld qword [esp + 0x50]
or edx, 0xffffffff
fmul st(1)
sub edx, eax
mov dword [esi + 4], edx
call fcn.00440730
fmul qword [esp + 0x58]
mov ecx, 1
sub ecx, eax
mov dword [esi + 8], ecx
call fcn.00440730
mov edi, dword [esp + 0x14]
mov edx, 1
sub edx, eax
mov dword [esi + 0xc], edx
mov esi, ebx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
jl 0x410710
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x1c]
cmp dword [edi + 0x10], 1
jne 0x41097d
cmp esi, ecx
je 0x41097d
mov ecx, dword [ebp + 0x28]
call fcn.004125f0
mov ebx, eax
test ebx, ebx
je 0x4109c6
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
mov dword [ebx + 4], edx
add edx, 8
mov eax, edx
neg eax
mov dword [ebx], esi
mov dword [ebx + 0xc], ecx
lea ecx, [esp + eax + 0x60]
add esi, 8
lea eax, [esp + eax + 0x70]
mov dword [ebx + 8], 0
sub esi, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 2
lea ecx, [ecx]
fld qword [edx]
fcomp qword [esi + edx]
fnstsw ax
test ah, 0x41
mov eax, dword [esp + 0x28]
jne 0x4108fa
fld qword [esi + edx]
fstp qword [ecx + edx]
fld qword [edx]
jmp 0x410902
fld qword [edx]
fstp qword [ecx + edx]
fld qword [esi + edx]
fstp qword [eax + edx]
add edx, 8
sub dword [esp + 0x24], 1
jne 0x4108e0
mov ecx, dword [ebp + 0x30]
call fcn.004121f0
mov esi, eax
test esi, esi
je 0x4109c6
fld qword [esp + 0x60]
mov dword [esi + 0x10], ebx
fld qword [0x459688]
fmul st(1), st(0)
fxch st(1)
call fcn.00440730
fld qword [esp + 0x68]
or ecx, 0xffffffff
fmul st(1)
sub ecx, eax
mov dword [esi], ecx
call fcn.00440730
fld qword [esp + 0x70]
or edx, 0xffffffff
fmul st(1)
sub edx, eax
mov dword [esi + 4], edx
call fcn.00440730
fmul qword [esp + 0x78]
mov ecx, 1
sub ecx, eax
mov dword [esi + 8], ecx
call fcn.00440730
mov ebx, dword [esp + 0x1c]
mov edx, 1
sub edx, eax
mov dword [esi + 0xc], edx
mov eax, dword [ebp + 0x28]
mov ecx, dword [eax + 0x14]
inc ebx
cmp ebx, dword [esp + 0x30]
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x2c]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [esp + 0x1c], ebx
jl 0x410690
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x14]
dec eax
cmp eax, dword [ebp + 0x20]
mov dword [ebp + 0x24], eax
jl 0x4109c6
mov ecx, dword [ebp + 0x34]
call fcn.004128a0
mov esi, eax
test esi, esi
jne 0x4109d1
mov dword [ebp + 0x1c], eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x30]
push edx
push eax
push ecx
mov ecx, esi
call fcn.0040f510
mov edx, dword [ebp + 0x34]
push 0x14
push edx
call fcn.00410030
neg eax
sbb eax, eax
not eax
and eax, esi
pop edi
mov dword [ebp + 0x1c], eax
xor eax, eax
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret