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

Disassembly:
sub esp, 0x28
push ebx
push ebp
mov ebp, dword [esp + 0x38]
push edi
mov edi, dword [esp + 0x40]
push 0x8c
push 0
push esi
mov dword [esp + 0x48], 0xffffff9d
mov dword [esp + 0x18], 1
call sub.MSVCR90.dll_memset
mov eax, dword [ebp]
mov dword [esi + 0x24], eax
fild dword [ebp]
add esp, 4
fmul dword [0x100306a8]
fldln2
fxch st(1)
fyl2x
fld qword [0x10030678]
fldln2
fxch st(1)
fyl2x
fdivp st(1)
fadd dword [0x10030554]
fstp qword [esp]
call sub.MSVCR90.dll_floor
call fcn.100267c0
fild dword [esp + 0x4c]
dec eax
lea ecx, [eax + 1]
fst dword [esp + 0x1c]
mov edx, 1
fild dword [esp + 0x48]
shl edx, cl
mov dword [esi + 0x20], eax
fst dword [esp + 0x18]
fld st(1)
mov dword [esp + 0x48], edx
fmul dword [0x10030650]
fdiv st(1)
fldln2
fxch st(1)
fyl2x
fld qword [0x10030660]
fmul st(1), st(0)
fld qword [0x10030658]
fsub st(2), st(0)
fild dword [esp + 0x48]
fmulp st(3)
fild dword [ebp]
fsubp st(3)
fxch st(2)
call fcn.100267c0
fld st(2)
fadd dword [0x10030638]
mov ecx, dword [esi + 0x20]
mov ebp, eax
inc ecx
fmulp st(4)
mov eax, 1
fld dword [0x10030554]
shl eax, cl
mov dword [esi + 0x1c], ebp
fmul st(4), st(0)
fxch st(4)
mov dword [esp + 0x48], eax
fdivrp st(3)
fldln2
fxch st(1)
fxch st(3)
fyl2x
fmulp st(2)
fsubp st(1)
fimul dword [esp + 0x48]
faddp st(1)
call fcn.100267c0
sub eax, ebp
inc eax
mov dword [esi + 0x28], eax
lea ebx, [edi*4]
mov ebp, dword [sym.imp.MSVCR90.dll__aligned_malloc]
push 0x10
push ebx
call ebp
push 0x10
push ebx
mov dword [esi + 0x10], eax
call ebp
push 0x10
push ebx
mov dword [esi + 0x14], eax
call ebp
mov dword [esi + 0x18], eax
mov eax, edi
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esi + 0x54], eax
mov ecx, dword [esp + 0x58]
movss xmm0, dword [0x10030554]
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x58], eax
lea eax, [edi + edi*2]
cdq
and edx, 3
add eax, edx
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x64]
sar eax, 2
add esp, 0x20
cmp ecx, 0x6590
mov dword [esi], edi
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x5c], eax
jge 0x10019f61
xorps xmm0, xmm0
xor eax, eax
movss dword [esi + 0x4c], xmm0
movss xmm0, dword [0x10030638]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov dword [esi + 0x50], edi
mov dword [esi + 0x44], eax
jmp 0x1001a192
cmp ecx, 0x9470
jge 0x1001a019
movss xmm1, dword [0x100306a4]
movss dword [esi + 0x4c], xmm1
mov ecx, dword [0x1004aa58]
mov dword [esi + 0x30], ecx
mov edx, dword [0x1004aa5c]
mov dword [esi + 0x34], edx
mov eax, dword [0x1004aa60]
mov dword [esi + 0x38], eax
mov ecx, dword [0x1004aa64]
mov dword [esi + 0x3c], ecx
cmp edi, 0x80
jne 0x10019fbb
mov dword [esi + 0x40], 0x7c
mov dword [esi + 0x50], edi
mov dword [esi + 0x44], 0
jmp 0x1001a192
cmp edi, 0x100
jne 0x10019fd9
mov dword [esi + 0x40], pe_nt_image_headers32
mov dword [esi + 0x50], edi
mov dword [esi + 0x44], 0
jmp 0x1001a18a
cmp edi, 0x400
jne 0x10019ff7
mov dword [esi + 0x40], 0x3e0
mov dword [esi + 0x50], edi
mov dword [esi + 0x44], 0x340
jmp 0x1001a192
cmp edi, 0x800
jne 0x1001a197
mov dword [esi + 0x40], 0x7c0
mov dword [esi + 0x50], edi
mov dword [esi + 0x44], 0x680
jmp 0x1001a18a
cmp ecx, 0xb3b0
jle 0x1001a0e1
movss xmm1, dword [0x100306a0]
movss dword [esi + 0x4c], xmm1
mov edx, dword [0x1004aa78]
mov dword [esi + 0x30], edx
mov eax, dword [0x1004aa7c]
mov dword [esi + 0x34], eax
mov ecx, dword [0x1004aa80]
mov dword [esi + 0x38], ecx
mov edx, dword [0x1004aa84]
mov dword [esi + 0x3c], edx
cmp edi, 0x80
jne 0x1001a077
mov dword [esi + 0x40], 0x53
mov dword [esi + 0x50], 0x59
mov dword [esi + 0x44], 0
jmp 0x1001a192
cmp edi, 0x100
jne 0x1001a099
mov dword [esi + 0x40], 0xa6
mov dword [esi + 0x50], 0xb2
mov dword [esi + 0x44], 0
jmp 0x1001a18a
cmp edi, 0x400
jne 0x1001a0bb
mov dword [esi + 0x40], 0x298
mov dword [esi + 0x50], 0x2c8
mov dword [esi + 0x44], 0x240
jmp 0x1001a192
cmp edi, 0x800
jne 0x1001a197
mov dword [esi + 0x40], 0x530
mov dword [esi + 0x50], 0x590
mov dword [esi + 0x44], 0x480
jmp 0x1001a18a
movss xmm1, dword [0x10030508]
movss dword [esi + 0x4c], xmm1
mov eax, dword [0x1004aa68]
mov dword [esi + 0x30], eax
mov ecx, dword [0x1004aa6c]
mov dword [esi + 0x34], ecx
mov edx, dword [0x1004aa70]
mov dword [esi + 0x38], edx
mov eax, dword [0x1004aa74]
mov dword [esi + 0x3c], eax
cmp edi, 0x80
jne 0x1001a12f
mov dword [esi + 0x40], 0x5a
mov dword [esi + 0x50], 0x60
mov dword [esi + 0x44], 0
jmp 0x1001a192
cmp edi, 0x100
jne 0x1001a14e
mov dword [esi + 0x40], 0xb4
mov dword [esi + 0x50], 0xc0
mov dword [esi + 0x44], 0
jmp 0x1001a18a
cmp edi, 0x400
jne 0x1001a16d
mov dword [esi + 0x40], 0x2d0
mov dword [esi + 0x50], 0x300
mov dword [esi + 0x44], 0x260
jmp 0x1001a192
cmp edi, 0x800
jne 0x1001a197
mov dword [esi + 0x40], 0x5a0
mov dword [esi + 0x50], 0x600
mov dword [esi + 0x44], 0x4c0
movss xmm0, dword [0x100305ac]
movss dword [esi + 0x48], xmm0
xor ebp, ebp
mov ebx, ebp
jmp 0x1001a1a0
fld dword [0x100305e8]
lea ecx, [ebx + 1]
mov dword [esp + 0x40], ecx
fild dword [esp + 0x40]
sub esp, 8
fmul dword [0x10030650]
fsub st(1)
fadd dword [0x1003066c]
fmul dword [0x10030668]
fldl2e
fmulp st(1)
fld st(0)
frndint
fxch st(1)
fsub st(1)
f2xm1
fld1
faddp st(1)
fscale
fstp st(1)
fmul dword [esp + 0x18]
fmulp st(1)
fdiv dword [esp + 0x1c]
fadd dword [0x10030554]
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.100267c0
cmp ebp, eax
movss xmm0, dword [ebx*4 + 0x10044e98]
jge 0x1001a2ff
movss xmm1, dword [ebx*4 + 0x10044e9c]
movss xmm3, dword [0x10030608]
mov ecx, eax
sub ecx, ebp
cmp ecx, 4
subss xmm1, xmm0
cvtsi2ss xmm2, ecx
divss xmm1, xmm2
jl 0x1001a2ca
lea ecx, [ebp + 2]
lea esp, [esp]
cmp ebp, edi
jge 0x1001a2ff
mov edx, dword [esi + 0x10]
movaps xmm2, xmm0
addss xmm2, xmm3
movss dword [edx + ebp*4], xmm2
lea edx, [ecx - 1]
cmp edx, edi
movaps xmm2, xmm1
addss xmm2, xmm0
jge 0x1001a2f4
cmp ecx, edi
mov edx, dword [esi + 0x10]
movaps xmm0, xmm2
addss xmm0, xmm3
movss dword [edx + ebp*4 + 4], xmm0
movaps xmm0, xmm1
addss xmm0, xmm2
jge 0x1001a2f7
mov edx, dword [esi + 0x10]
movaps xmm2, xmm0
addss xmm2, xmm3
movss dword [edx + ebp*4 + 8], xmm2
lea edx, [ecx + 1]
cmp edx, edi
movaps xmm2, xmm1
addss xmm2, xmm0
jge 0x1001a2fc
mov edx, dword [esi + 0x10]
movaps xmm0, xmm2
addss xmm0, xmm3
movss dword [edx + ebp*4 + 0xc], xmm0
add ebp, 4
lea edx, [eax - 3]
add ecx, 4
cmp ebp, edx
movaps xmm0, xmm1
addss xmm0, xmm2
jl 0x1001a240
cmp ebp, eax
jge 0x1001a2ff
mov edi, edi
cmp ebp, edi
jge 0x1001a2ff
mov ecx, dword [esi + 0x10]
movaps xmm2, xmm0
addss xmm2, xmm3
movss dword [ecx + ebp*4], xmm2
inc ebp
cmp ebp, eax
movaps xmm2, xmm1
addss xmm2, xmm0
movaps xmm0, xmm2
jl 0x1001a2d0
jmp 0x1001a2ff
inc ebp
jmp 0x1001a2ff
add ebp, 2
jmp 0x1001a2ff
add ebp, 3
mov ebx, dword [esp + 0x40]
cmp ebx, 0x57
jl 0x1001a1a0
xor ebp, ebp
cmp edi, ebp
mov dword [esp + 0x40], ebp
jle 0x1001a4f2
mov eax, dword [esp + 0x44]
fld dword [0x10030604]
lea ecx, [edi + edi]
fld dword [0x10030600]
cdq
fld dword [0x100305fc]
idiv ecx
fld dword [0x100305f8]
fld dword [0x1003057c]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebp
mov ecx, eax
mov edx, eax
imul edx, ecx
mov eax, dword [esp + 0x1c]
fild dword [esp + 0x20]
imul eax, dword [esp + 0x40]
fst dword [esp + 0x28]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x78]
fild dword [esp + 0x44]
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0xc]
add eax, ebp
cmp eax, dword [esp + 0x40]
fmul st(6)
fld1
fpatan
fmul st(5)
fxch st(1)
fmul st(4)
fxch st(1)
fstp dword [esp + 0x44]
fld1
fpatan
fmul st(2)
fadd dword [esp + 0x44]
fld dword [esp + 0x28]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x28]
jge 0x1001a43c
mov ebp, dword [esp + 0x38]
movss xmm0, dword [esp + 0x28]
subss xmm0, dword [ebp + 0x70]
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
mov eax, ecx
imul eax, ebp
mov dword [esp + 0x18], eax
mov eax, edx
imul eax, ebp
movss dword [esp + 0x30], xmm0
mov dword [esp + 0x44], eax
jmp 0x1001a3e4
mov eax, dword [esp + 0x44]
imul eax, dword [esp + 0x3c]
fstp st(0)
fild dword [esp + 0x18]
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fmul st(5)
fld1
fpatan
fmul st(4)
fld st(1)
fmul st(4)
fld1
fpatan
fmul st(3)
faddp st(1)
fld dword [0x1003057c]
fmul st(2), st(0)
fxch st(1)
faddp st(2)
fld dword [esp + 0x30]
fcompi st(2)
fstp st(1)
jbe 0x1001a43c
mov eax, dword [esp + 0x24]
inc dword [esp + 0x3c]
add dword [esp + 0x44], edx
add dword [esp + 0x18], ecx
inc eax
cmp eax, dword [esp + 0x40]
mov dword [esp + 0x24], eax
jl 0x1001a3e0
cmp ebx, edi
jg 0x1001a4b8
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x7c]
mov ebp, dword [esp + 0x40]
add eax, ebp
mov dword [esp + 0x2c], eax
mov eax, ecx
imul eax, ebx
mov ebp, edx
mov dword [esp + 0x44], eax
imul ebp, ebx
cmp ebx, dword [esp + 0x2c]
jl 0x1001a4a9
fstp st(0)
mov eax, ebp
fild dword [esp + 0x44]
imul eax, ebx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
fild dword [esp + 0x24]
fmul st(5)
fld1
fpatan
fmul st(4)
fld st(1)
fmul st(4)
fld1
fpatan
fmul st(3)
faddp st(1)
fld dword [0x1003057c]
fmul st(2), st(0)
fxch st(1)
faddp st(2)
fld dword [eax + 0x74]
fadd dword [esp + 0x28]
fcompi st(2)
fstp st(1)
jbe 0x1001a4b4
add dword [esp + 0x44], ecx
inc ebx
add ebp, edx
cmp ebx, edi
jle 0x1001a45f
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0x3c]
mov ebp, dword [esi + 0x18]
add dword [esp + 0x1c], edx
add dword [esp + 0x20], ecx
shl eax, 0x10
lea ebx, [eax + ebx - 0x10001]
mov eax, dword [esp + 0x40]
mov dword [ebp + eax*4], ebx
inc eax
cmp eax, edi
mov dword [esp + 0x40], eax
jl 0x1001a351
fstp st(0)
xor ebp, ebp
fstp st(3)
fstp st(1)
fstp st(0)
fstp st(0)
cmp edi, ebp
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x40], ebp
jle 0x1001a569
fld dword [0x10030638]
fld qword [0x10030658]
fld dword [esp + 0x10]
fld dword [esp + 0x14]
fld qword [0x10030660]
fld dword [0x10030554]
fild dword [esp + 0x40]
mov ecx, dword [esi + 0x20]
inc ecx
mov edx, 1
fadd st(6)
shl edx, cl
fmul st(3)
mov dword [esp + 0x38], edx
fmul st(1)
fdiv st(4)
fldln2
fxch st(1)
fyl2x
fmul st(2)
fsub st(5)
fimul dword [esp + 0x38]
fadd st(1)
call fcn.100267c0
mov ecx, dword [esi + 0x14]
mov dword [ecx + ebp*4], eax
inc ebp
cmp ebp, edi
mov dword [esp + 0x40], ebp
jl 0x1001a51e
fstp st(0)
fstp st(1)
fstp st(1)
fstp st(0)
fstp st(0)
fstp st(0)
fld dword [ebx + 0x1c]
movss xmm0, dword [esp + 0x14]
mulss xmm0, dword [0x10030554]
divss xmm0, dword [esp + 0x10]
sub esp, 8
fstp dword [esp + 4]
fld dword [ebx + 0x18]
fstp dword [esp]
push edi
push ecx
lea ecx, [ebx + 0x24]
movss dword [esp], xmm0
call fcn.10016220
mov ebx, dword [sym.imp.MSVCR90.dll__aligned_malloc]
push 0x10
push 0xc
mov dword [esi + 8], eax
call ebx
add esp, 0x18
mov dword [esi + 0xc], eax
xor ebp, ebp
lea eax, [edi*4]
push 0x10
push eax
call ebx
mov edx, dword [esi + 0xc]
mov dword [edx + ebp], eax
add ebp, 4
add esp, 8
cmp ebp, 0xc
jl 0x1001a5b3
xorps xmm4, xmm4
xor ecx, ecx
mov dword [esp + 0x40], ecx
test edi, edi
jle 0x1001a70c
movss xmm0, dword [esp + 0x10]
mulss xmm0, dword [0x100305e8]
movss xmm2, dword [0x100305cc]
movss xmm3, dword [0x10030508]
movss dword [esp + 0x38], xmm0
fld dword [esp + 0x38]
fldz
fld dword [0x100305e8]
fld dword [esp + 0x14]
fld qword [0x10030660]
fld dword [0x10030554]
fild dword [esp + 0x40]
fadd st(1)
fmul st(3)
fdiv st(6)
fldln2
fxch st(1)
fyl2x
fmul st(2)
fsub qword [0x10030658]
fmul st(4)
fst dword [esp + 0x38]
fxch st(5)
fcomi st(5)
fstp st(5)
jbe 0x1001a64c
movaps xmm0, xmm4
jmp 0x1001a65a
movss xmm0, dword [esp + 0x38]
comiss xmm0, xmm2
jb 0x1001a65a
movaps xmm0, xmm2
mov edx, dword [esi + 4]
cvttss2si eax, xmm0
movss xmm5, dword [edx + eax*4 + 0x88]
movss xmm6, dword [edx + eax*4 + 0x84]
mov edx, dword [esi + 0xc]
mov edx, dword [edx]
cvtsi2ss xmm1, eax
subss xmm0, xmm1
movaps xmm1, xmm0
mulss xmm5, xmm1
movaps xmm0, xmm3
subss xmm0, xmm1
mulss xmm6, xmm0
addss xmm5, xmm6
movss dword [edx + ecx*4], xmm5
mov edx, dword [esi + 4]
movss xmm5, dword [edx + eax*4 + 0xcc]
movss xmm6, dword [edx + eax*4 + 0xc8]
mov edx, dword [esi + 0xc]
mov edx, dword [edx + 4]
mulss xmm5, xmm1
mulss xmm6, xmm0
addss xmm5, xmm6
movss dword [edx + ecx*4], xmm5
mov edx, dword [esi + 4]
movss xmm5, dword [edx + eax*4 + 0x110]
mulss xmm5, xmm1
movss xmm1, dword [edx + eax*4 + 0x10c]
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 8]
mulss xmm1, xmm0
addss xmm5, xmm1
movss dword [edx + ecx*4], xmm5
inc ecx
cmp ecx, edi
mov dword [esp + 0x40], ecx
jl 0x1001a621
fstp st(5)
fstp st(3)
fstp st(1)
fstp st(2)
fstp st(1)
fstp st(0)
movss xmm0, dword [0x1004b4c4]
ucomiss xmm0, xmm4
lahf
test ah, 0x44
jp 0x1001a747
xor eax, eax
nop
mov ecx, eax
imul ecx, eax
cvtsi2ss xmm0, eax
movss dword [eax*4 + 0x1004b4c0], xmm0
cvtsi2ss xmm0, ecx
movss dword [eax*4 + 0x1004d4c0], xmm0
inc eax
cmp eax, 0x800
jl 0x1001a720
mov edx, dword [esi + 0x18]
xor eax, eax
test edi, edi
jle 0x1001a761
lea ecx, [edx + 2]
cmp word [ecx], 0
jge 0x1001a761
inc eax
add ecx, 4
cmp eax, edi
jl 0x1001a753
mov ecx, eax
and ecx, 0xfffffffc
mov dword [esi + 0x64], ecx
and ecx, 0xfffffff8
mov dword [esi + 0x68], ecx
and ecx, 0xfffffff0
cmp eax, edi
mov dword [esi + 0x60], eax
mov dword [esi + 0x6c], ecx
jge 0x1001a78d
lea esp, [esp]
movsx ecx, word [edx + eax*4]
cmp ecx, edi
jge 0x1001a78d
inc eax
cmp eax, edi
jl 0x1001a780
mov ebp, dword [sym.imp.MSVCR90.dll__aligned_malloc]
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x60]
mov edx, dword [esi + 0x70]
add eax, 3
and eax, 0xfffffffc
sub edx, eax
and edx, 0xfffffffc
mov ecx, edx
and ecx, 0xfffffff8
add edx, eax
mov dword [esi + 0x74], edx
lea edx, [ecx + eax]
and ecx, 0xfffffff0
add ecx, eax
push 0x10
lea ebx, [edi*4]
push ebx
mov dword [esi + 0x78], edx
mov dword [esi + 0x7c], ecx
call ebp
push 0x10
push ebx
mov dword [esi + 0x80], eax
call ebp
push 0x10
push ebx
mov dword [esi + 0x84], eax
call ebp
mov dword [esi + 0x88], eax
add esp, 0x18
xor eax, eax
test edi, edi
jle 0x1001a835
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx + eax*4]
mov ecx, dword [esi + 0x20]
sar edx, cl
cmp edx, 0x11
jl 0x1001a807
mov edx, 0x10
jmp 0x1001a80d
test edx, edx
jge 0x1001a80d
xor edx, edx
mov ecx, dword [esi + 0x80]
mov dword [ecx + eax*4], edx
mov edx, dword [esi + 0x14]
lea ecx, [edx + eax*4]
mov edx, dword [ecx + 4]
add edx, dword [ecx]
mov ecx, dword [esi + 0x88]
sar edx, 1
sub edx, dword [esi + 0x1c]
inc eax
cmp eax, edi
mov dword [ecx + eax*4 - 4], edx
jl 0x1001a7f0
xor eax, eax
test edi, edi
jle 0x1001a883
jmp 0x1001a840
mov edx, dword [esi + 0x14]
mov ecx, dword [edx + eax*4]
lea ebp, [edx + eax*4]
lea edx, [eax + 1]
cmp edx, edi
mov ebx, eax
jge 0x1001a863
add ebp, 4
cmp dword [ebp], ecx
jne 0x1001a863
inc edx
inc eax
add ebp, 4
cmp edx, edi
jl 0x1001a855
cmp ebx, eax
mov ecx, ebx
jg 0x1001a87e
lea esp, [esp]
mov edx, dword [esi + 0x84]
mov dword [edx + ecx*4], eax
inc ecx
cmp ecx, eax
jle 0x1001a870
inc eax
cmp eax, edi
jl 0x1001a840
pop edi
pop ebp
pop ebx
add esp, 0x28
ret