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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x100
push ebx
push ebp
push esi
mov esi, ecx
push edi
push 0x280
mov eax, dword [esi + 0x14]
push eax
call dword [fcn.100190b8]
xor ebp, ebp
add esp, 8
cmp eax, ebp
jne 0x1001f87e
mov ecx, dword [esi + 0x14]
push ecx
call dword [fcn.100190b0]
add esp, 4
mov dword [esi + 0x14], ebp
mov dword [esi + 0x10], ebp
mov dword [esi + 0x10508], 1
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [eax + 0x50]
mov ecx, esi
push edx
push eax
mov dword [esi + 0x14], eax
call fcn.1002097d
fst dword [esp + 0x24]
fadd qword [0x10019128]
mov ecx, dword [esi + 0x14]
lea eax, [esp + 0x1c]
push eax
mov edx, dword [ecx + 4]
fstp dword [esp + 0x74]
mov edi, dword [esp + 0x74]
mov eax, dword [ecx]
push edi
push edx
push eax
mov ecx, esi
call fcn.1002242d
test eax, eax
jne 0x1001f8c2
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push ecx
lea eax, [esp + 0x74]
push edx
push eax
mov ecx, esi
call fcn.10020bbd
mov ecx, dword [eax]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [eax + 4]
lea eax, [esp + 0x1c]
mov dword [esp + 0x4c], edx
mov edx, dword [esi + 0x14]
push eax
push ecx
mov eax, dword [edx + 4]
push eax
mov ecx, dword [edx]
push ecx
mov ecx, esi
call fcn.1002242d
test eax, eax
jne 0x1001f90c
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push edx
lea ecx, [esp + 0x74]
push eax
push ecx
mov ecx, esi
call fcn.10020bbd
mov edx, dword [eax]
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], edx
lea edx, [esp + 0x48]
mov eax, dword [eax + 4]
push ecx
push edx
mov ecx, esi
mov dword [esp + 0x44], eax
call fcn.10020a2d
fstp dword [esp + 0xc0]
fld dword [esp + 0x24]
fadd qword [0x10019120]
mov edx, dword [esi + 0x14]
lea eax, [esp + 0x1c]
push eax
mov eax, dword [edx + 4]
fstp dword [esp + 0x74]
mov ecx, dword [esp + 0x74]
push ecx
mov ecx, dword [edx]
push eax
push ecx
mov ecx, esi
call fcn.1002242d
test eax, eax
jne 0x1001f97c
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push edx
lea ecx, [esp + 0x9c]
push eax
push ecx
mov ecx, esi
call fcn.10020bbd
fld dword [esp + 0x24]
mov edx, dword [eax]
lea ecx, [esp + 0x1c]
fsub qword [0x10019120]
mov dword [esp + 0x30], edx
mov eax, dword [eax + 4]
mov edx, dword [esi + 0x14]
mov dword [esp + 0x34], eax
fstp dword [esp + 0x98]
mov eax, dword [edx + 4]
mov ebx, dword [esp + 0x98]
push ecx
push ebx
mov ecx, dword [edx]
push eax
push ecx
mov ecx, esi
call fcn.1002242d
test eax, eax
jne 0x1001f9dd
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push edx
lea ecx, [esp + 0x9c]
push eax
push ecx
mov ecx, esi
call fcn.10020bbd
mov edx, dword [eax]
lea ecx, [esp + 0x30]
mov dword [esp + 0x40], edx
lea edx, [esp + 0x40]
mov eax, dword [eax + 4]
push ecx
push edx
mov ecx, esi
mov dword [esp + 0x4c], eax
call fcn.10020a2d
mov ecx, dword [esi + 0x14]
lea eax, [esp + 0x1c]
fstp dword [esp + 0x98]
mov edx, dword [ecx + 0x54]
push eax
push edi
push edx
mov eax, dword [ecx + 0x50]
mov ecx, esi
push eax
call fcn.1002242d
test eax, eax
jne 0x1001fa3f
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push ecx
lea eax, [esp + 0x10c]
push edx
push eax
mov ecx, esi
call fcn.10020bbd
mov ecx, dword [eax]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [eax + 4]
lea eax, [esp + 0x1c]
mov dword [esp + 0xbc], edx
mov edx, dword [esi + 0x14]
push eax
push ecx
mov eax, dword [edx + 0x54]
push eax
mov ecx, dword [edx + 0x50]
push ecx
mov ecx, esi
call fcn.1002242d
test eax, eax
jne 0x1001fa93
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push edx
lea ecx, [esp + 0x10c]
push eax
push ecx
mov ecx, esi
call fcn.10020bbd
mov edx, dword [eax]
lea ecx, [esp + 0xa8]
mov dword [esp + 0xa8], edx
lea edx, [esp + 0xb8]
mov eax, dword [eax + 4]
push ecx
push edx
mov ecx, esi
mov dword [esp + 0xb4], eax
call fcn.10020a2d
mov edx, dword [esi + 0x14]
mov ecx, dword [esp + 0x70]
lea eax, [esp + 0x1c]
fstp dword [esp + 0x24]
push eax
mov eax, dword [edx + 0x54]
push ecx
push eax
mov ecx, dword [edx + 0x50]
push ecx
mov ecx, esi
call fcn.1002242d
test eax, eax
jne 0x1001fb02
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push edx
lea ecx, [esp + 0x10c]
push eax
push ecx
mov ecx, esi
call fcn.10020bbd
mov edx, dword [eax]
lea ecx, [esp + 0x1c]
mov dword [esp + 0xa0], edx
mov edx, dword [esi + 0x14]
mov eax, dword [eax + 4]
push ecx
mov dword [esp + 0xa8], eax
mov eax, dword [edx + 0x54]
push ebx
push eax
mov ecx, dword [edx + 0x50]
push ecx
mov ecx, esi
call fcn.1002242d
test eax, eax
jne 0x1001fb52
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push edx
lea ecx, [esp + 0x10c]
push eax
push ecx
mov ecx, esi
call fcn.10020bbd
mov edx, dword [eax]
lea ecx, [esp + 0xa0]
mov dword [esp + 0xb0], edx
lea edx, [esp + 0xb0]
mov eax, dword [eax + 4]
push ecx
push edx
mov ecx, esi
mov dword [esp + 0xbc], eax
call fcn.10020a2d
fstp dword [esp + 0x70]
fld dword [esp + 0xc0]
fcomp dword [esp + 0x24]
fnstsw ax
test ah, 0x41
jne 0x1001fbb4
fld dword [esp + 0xc0]
jmp 0x1001fbb8
fld dword [esp + 0x24]
fld dword [esp + 0xc0]
fcomp dword [esp + 0x24]
fnstsw ax
test ah, 1
je 0x1001fbd3
fld dword [esp + 0xc0]
jmp 0x1001fbd7
fld dword [esp + 0x24]
fxch st(1)
fdiv st(1)
fcomp dword [0x1001911c]
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x1001fbf4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
fld dword [esp + 0x98]
fcomp dword [esp + 0x70]
fnstsw ax
test ah, 0x41
jne 0x1001fc0f
fld dword [esp + 0x98]
jmp 0x1001fc13
fld dword [esp + 0x70]
fld dword [esp + 0x98]
fcomp dword [esp + 0x70]
fnstsw ax
test ah, 1
je 0x1001fc2e
fld dword [esp + 0x98]
jmp 0x1001fc32
fld dword [esp + 0x70]
fxch st(1)
fdiv st(1)
fcomp dword [0x1001911c]
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x1001fc4f
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x14]
fld dword [eax]
fsub dword [esp + 0x30]
fsubr dword [esp + 0x48]
fstp dword [esp + 0xe8]
fld dword [eax + 4]
fsub dword [esp + 0x4c]
fsubr dword [esp + 0x34]
fstp dword [esp + 0xec]
fld dword [eax]
fsub dword [esp + 0x38]
fsubr dword [esp + 0x30]
fstp dword [esp + 0xf0]
fld dword [eax + 4]
fsub dword [esp + 0x34]
fsubr dword [esp + 0x3c]
fstp dword [esp + 0xf4]
fld dword [eax]
fsub dword [esp + 0x40]
fsubr dword [esp + 0x38]
fstp dword [esp + 0xf8]
fld dword [eax + 4]
fsub dword [esp + 0x3c]
fsubr dword [esp + 0x44]
fstp dword [esp + 0xfc]
fld dword [eax]
fsub dword [esp + 0x48]
fsubr dword [esp + 0x40]
fstp dword [esp + 0x100]
fld dword [eax + 4]
fsub dword [esp + 0x44]
fsubr dword [esp + 0x4c]
fstp dword [esp + 0x104]
fld dword [eax + 0x50]
fsub dword [esp + 0xa0]
fsubr dword [esp + 0x48]
fstp dword [esp + 0xc8]
fld dword [eax + 0x54]
fsub dword [esp + 0xbc]
fsubr dword [esp + 0x34]
fstp dword [esp + 0xcc]
fld dword [eax + 0x50]
fsub dword [esp + 0xa8]
fsubr dword [esp + 0x30]
fstp dword [esp + 0xd0]
fld dword [eax + 0x54]
fsub dword [esp + 0xa4]
fsubr dword [esp + 0x3c]
fstp dword [esp + 0xd4]
fld dword [eax + 0x50]
fsub dword [esp + 0xb0]
fsubr dword [esp + 0x38]
fstp dword [esp + 0xd8]
fld dword [eax + 0x54]
fsub dword [esp + 0xac]
fsubr dword [esp + 0x44]
fstp dword [esp + 0xdc]
fld dword [eax + 0x50]
fsub dword [esp + 0xb8]
fsubr dword [esp + 0x40]
fstp dword [esp + 0xe0]
fld dword [eax + 0x54]
fsub dword [esp + 0xb4]
fsubr dword [esp + 0x4c]
fstp dword [esp + 0xe4]
xor edi, edi
mov ebx, 1
mov eax, dword [esi + 0x14]
cmp edi, ebp
jne 0x1001fe5e
mov ecx, dword [eax]
mov dword [esp + 0x14], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x18], edx
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 0x54]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0xec]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0xf4]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0xfc]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x100]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x104]
mov dword [esp + 0x68], ecx
jmp 0x1001ff37
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x14], ecx
mov edx, dword [eax + 0x54]
mov dword [esp + 0x18], edx
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0xac]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0xe4]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x68], ecx
fld dword [esp + 0x2c]
fsub dword [esp + 0x18]
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x6c], edx
fsubr dword [esp + 0x14]
lea ecx, [ecx + ecx*4]
shl ecx, 4
fstp dword [ecx + eax]
fld dword [esp + 0x28]
fsub dword [esp + 0x14]
mov eax, dword [esi + 0x10]
fadd dword [esp + 0x18]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
shl edx, 4
fstp dword [edx + eax + 4]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
fld dword [esp + 0x14]
fsub dword [esp + 0x78]
lea ecx, [eax + eax*4]
shl ecx, 4
fsubr dword [ecx + edx]
lea eax, [ecx + edx]
fstp dword [eax + 0x10]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
fld dword [esp + 0x18]
fsub dword [esp + 0x7c]
lea eax, [eax + eax*4]
shl eax, 4
add eax, ecx
fsubr dword [eax + 4]
fstp dword [eax + 0x14]
mov eax, dword [esi + 0x10]
fld dword [esp + 0x14]
fsub dword [esp + 0x80]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
shl edx, 4
add eax, edx
fsubr dword [eax]
fstp dword [eax + 0x18]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
fld dword [esp + 0x18]
fsub dword [esp + 0x84]
lea ecx, [eax + eax*4]
shl ecx, 4
fsubr dword [ecx + edx + 4]
lea eax, [ecx + edx]
fstp dword [eax + 0x1c]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
fld dword [esp + 0x14]
fsub dword [esp + 0x88]
lea eax, [eax + eax*4]
shl eax, 4
add eax, ecx
fsubr dword [eax]
fstp dword [eax + 0x20]
mov eax, dword [esi + 0x10]
fld dword [esp + 0x18]
fsub dword [esp + 0x8c]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
shl edx, 4
add eax, edx
fsubr dword [eax + 4]
fstp dword [eax + 0x24]
mov eax, dword [esi + 0x10]
lea ecx, [eax + eax*4]
shl ecx, 4
fld dword [esp + 0x14]
mov edx, dword [esi + 0x14]
fsub dword [esp + 0x90]
lea eax, [ecx + edx]
fsubr dword [eax]
fstp dword [eax + 0x28]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
fld dword [esp + 0x18]
fsub dword [esp + 0x94]
lea eax, [eax + eax*4]
shl eax, 4
add eax, ecx
fsubr dword [eax + 4]
fstp dword [eax + 0x2c]
mov eax, dword [esi + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
shl edx, 4
add eax, edx
lea edx, [esp + 0x28]
lea ecx, [eax + 0x48]
push ecx
push eax
add eax, 0x28
push edx
push eax
lea eax, [esp + 0xa0]
push eax
mov ecx, esi
call fcn.10020a5d
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
fld dword [esp + 0x68]
fsub dword [esp + 0x50]
lea ecx, [eax + eax*4]
shl ecx, 4
fsubr dword [ecx + edx + 0x48]
lea eax, [ecx + edx]
fstp dword [eax + 0x30]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
fld dword [esp + 0x6c]
fsub dword [esp + 0x54]
lea eax, [eax + eax*4]
shl eax, 4
add eax, ecx
fsubr dword [eax + 0x4c]
fstp dword [eax + 0x34]
mov eax, dword [esi + 0x10]
fld dword [esp + 0x68]
fsub dword [esp + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
shl edx, 4
add eax, edx
fsubr dword [eax + 0x48]
fstp dword [eax + 0x38]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
fld dword [esp + 0x6c]
fsub dword [esp + 0x5c]
lea ecx, [eax + eax*4]
shl ecx, 4
fsubr dword [ecx + edx + 0x4c]
lea eax, [ecx + edx]
fstp dword [eax + 0x3c]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
fld dword [esp + 0x68]
fsub dword [esp + 0x60]
lea eax, [eax + eax*4]
shl eax, 4
add eax, ecx
fsubr dword [eax + 0x48]
fstp dword [eax + 0x40]
mov eax, dword [esi + 0x10]
fld dword [esp + 0x6c]
fsub dword [esp + 0x64]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
shl edx, 4
add eax, edx
fsubr dword [eax + 0x4c]
fstp dword [eax + 0x44]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
lea ecx, [eax + eax*4]
shl ecx, 4
mov dword [ecx + edx + 8], ebp
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
lea eax, [eax + eax*4]
shl eax, 4
mov dword [eax + ecx + 0xc], ebx
mov edx, dword [esi + 0x10]
inc edx
inc edi
cmp edi, 2
mov dword [esi + 0x10], edx
jl 0x1001fd8d
xor edi, edi
mov eax, dword [esi + 0x14]
cmp edi, ebp
jne 0x1002023d
mov edx, dword [eax]
mov dword [esp + 0x14], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x18], ecx
mov edx, dword [eax + 0x50]
mov dword [esp + 0x28], edx
mov ecx, dword [eax + 0x54]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x100]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0xe8]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0xf0]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0xf8]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0x68], edx
jmp 0x10020316
mov edx, dword [eax + 0x50]
mov dword [esp + 0x14], edx
mov ecx, dword [eax + 0x54]
mov dword [esp + 0x18], ecx
mov edx, dword [eax]
mov dword [esp + 0x28], edx
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x68], edx
fld dword [esp + 0x2c]
fsub dword [esp + 0x18]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esi + 0x10]
fadd dword [esp + 0x14]
lea edx, [ecx + ecx*4]
shl edx, 4
fstp dword [edx + eax]
fld dword [esp + 0x28]
fsub dword [esp + 0x14]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
fsubr dword [esp + 0x18]
lea eax, [eax + eax*4]
shl eax, 4
fstp dword [eax + ecx + 4]
mov eax, dword [esi + 0x10]
fld dword [esp + 0x14]
fsub dword [esp + 0x78]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
shl edx, 4
add eax, edx
fsubr dword [eax]
fstp dword [eax + 0x10]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
fld dword [esp + 0x18]
fsub dword [esp + 0x7c]
lea ecx, [eax + eax*4]
shl ecx, 4
fsubr dword [ecx + edx + 4]
lea eax, [ecx + edx]
fstp dword [eax + 0x14]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
fld dword [esp + 0x14]
fsub dword [esp + 0x80]
lea eax, [eax + eax*4]
shl eax, 4
add eax, ecx
fsubr dword [eax]
fstp dword [eax + 0x18]
mov eax, dword [esi + 0x10]
fld dword [esp + 0x18]
fsub dword [esp + 0x84]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
shl edx, 4
add eax, edx
fsubr dword [eax + 4]
fstp dword [eax + 0x1c]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
fld dword [esp + 0x14]
fsub dword [esp + 0x88]
lea ecx, [eax + eax*4]
shl ecx, 4
fsubr dword [ecx + edx]
lea eax, [ecx + edx]
fstp dword [eax + 0x20]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
fld dword [esp + 0x18]
fsub dword [esp + 0x8c]
lea eax, [eax + eax*4]
shl eax, 4
add eax, ecx
fsubr dword [eax + 4]
fstp dword [eax + 0x24]
mov eax, dword [esi + 0x10]
lea edx, [eax + eax*4]
shl edx, 4
fld dword [esp + 0x14]
mov eax, dword [esi + 0x14]
fsub dword [esp + 0x90]
add eax, edx
fsubr dword [eax]
fstp dword [eax + 0x28]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
fld dword [esp + 0x18]
fsub dword [esp + 0x94]
lea ecx, [eax + eax*4]
shl ecx, 4
fsubr dword [ecx + edx + 4]
lea eax, [ecx + edx]
fstp dword [eax + 0x2c]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
lea eax, [eax + eax*4]
shl eax, 4
add eax, ecx
lea ecx, [esp + 0x28]
lea edx, [eax + 0x38]
push edx
push eax
add eax, 0x10
push ecx
lea edx, [esp + 0x84]
push eax
push edx
mov ecx, esi
call fcn.10020a5d
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
fld dword [esp + 0x58]
fsub dword [esp + 0x50]
lea eax, [eax + eax*4]
shl eax, 4
add eax, ecx
fsubr dword [eax + 0x38]
fstp dword [eax + 0x30]
mov eax, dword [esi + 0x10]
fld dword [esp + 0x5c]
fsub dword [esp + 0x54]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
shl edx, 4
add eax, edx
fsubr dword [eax + 0x3c]
fstp dword [eax + 0x34]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
fld dword [esp + 0x58]
fsub dword [esp + 0x60]
lea ecx, [eax + eax*4]
shl ecx, 4
fsubr dword [ecx + edx + 0x38]
lea eax, [ecx + edx]
fstp dword [eax + 0x40]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
fld dword [esp + 0x5c]
fsub dword [esp + 0x64]
lea eax, [eax + eax*4]
shl eax, 4
add eax, ecx
fsubr dword [eax + 0x3c]
fstp dword [eax + 0x44]
mov eax, dword [esi + 0x10]
fld dword [esp + 0x58]
fsub dword [esp + 0x68]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
shl edx, 4
add eax, edx
fsubr dword [eax + 0x38]
fstp dword [eax + 0x48]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
fld dword [esp + 0x5c]
fsub dword [esp + 0x6c]
lea ecx, [eax + eax*4]
shl ecx, 4
fsubr dword [ecx + edx + 0x3c]
lea eax, [ecx + edx]
fstp dword [eax + 0x4c]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
lea eax, [eax + eax*4]
shl eax, 4
mov dword [eax + ecx + 8], ebp
mov eax, dword [esi + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
shl edx, 4
mov dword [edx + eax + 0xc], ebx
mov edx, dword [esi + 0x10]
inc edx
inc edi
cmp edi, 2
mov dword [esi + 0x10], edx
jl 0x1002016c
xor edi, edi
mov eax, dword [esi + 0x14]
cmp edi, ebp
jne 0x1002056c
mov ecx, dword [eax]
mov dword [esp + 0x14], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x18], edx
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 0x54]
jmp 0x10020583
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x14], ecx
mov edx, dword [eax + 0x54]
mov dword [esp + 0x18], edx
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 4]
fld dword [esp + 0x28]
fadd dword [esp + 0x14]
mov dword [esp + 0x2c], edx
mov ecx, dword [esi + 0x10]
fmul dword [0x10019118]
fld dword [esp + 0x2c]
fsub dword [esp + 0x18]
lea ecx, [ecx + ecx*4]
fmul dword [0x10019118]
shl ecx, 4
fsubp st(1)
fstp dword [ecx + eax]
fld dword [esp + 0x18]
fadd dword [esp + 0x2c]
mov eax, dword [esi + 0x10]
lea ecx, [esp + 0x14]
push ecx
fmul dword [0x10019118]
fld dword [esp + 0x2c]
fsub dword [esp + 0x18]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
fmul dword [0x10019118]
shl edx, 4
faddp st(1)
fstp dword [edx + eax + 4]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
lea edx, [eax + eax*4]
shl edx, 4
add edx, ecx
mov ecx, esi
push edx
call fcn.1002097d
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fadd qword [0x10019128]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x1c]
push eax
push ecx
mov ecx, dword [esp + 0x20]
fstp dword [esp]
push ecx
push edx
mov ecx, esi
call fcn.1002242d
test eax, eax
je 0x1001fc45
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push eax
lea edx, [esp + 0x10c]
push ecx
push edx
mov ecx, esi
call fcn.10020bbd
mov ecx, dword [eax]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [eax + 4]
lea eax, [esp + 0x1c]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x18]
push ecx
push edx
push eax
mov ecx, esi
call fcn.1002242d
test eax, eax
je 0x1001fc45
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push ecx
lea eax, [esp + 0x74]
push edx
push eax
mov ecx, esi
call fcn.10020bbd
mov ecx, dword [eax]
fld dword [esp + 0x24]
fadd qword [0x10019120]
mov dword [esp + 0x38], ecx
mov edx, dword [eax + 4]
lea eax, [esp + 0x1c]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
push eax
push ecx
mov ecx, dword [esp + 0x20]
fstp dword [esp]
push ecx
push edx
mov ecx, esi
call fcn.1002242d
test eax, eax
je 0x1001fc45
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push eax
lea edx, [esp + 0x9c]
push ecx
push edx
mov ecx, esi
call fcn.10020bbd
mov ecx, dword [eax]
fld dword [esp + 0x24]
fsub qword [0x10019120]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 4]
lea eax, [esp + 0x1c]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x14]
push eax
push ecx
mov ecx, dword [esp + 0x20]
fstp dword [esp]
push ecx
push edx
mov ecx, esi
call fcn.1002242d
test eax, eax
je 0x1001fc45
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push eax
lea edx, [esp + 0xc4]
push ecx
push edx
mov ecx, esi
call fcn.10020bbd
mov ecx, dword [eax]
fld dword [esp + 0x14]
fsub dword [esp + 0x30]
mov dword [esp + 0x40], ecx
mov edx, dword [eax + 4]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x44], edx
lea eax, [eax + eax*4]
shl eax, 4
add eax, ecx
fsubr dword [eax]
fstp dword [eax + 0x10]
mov eax, dword [esi + 0x10]
fld dword [esp + 0x18]
fsub dword [esp + 0x34]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
shl edx, 4
add eax, edx
fsubr dword [eax + 4]
fstp dword [eax + 0x14]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
fld dword [esp + 0x14]
fsub dword [esp + 0x38]
lea ecx, [eax + eax*4]
shl ecx, 4
fsubr dword [ecx + edx]
lea eax, [ecx + edx]
fstp dword [eax + 0x18]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
fld dword [esp + 0x18]
fsub dword [esp + 0x3c]
lea eax, [eax + eax*4]
shl eax, 4
add eax, ecx
fsubr dword [eax + 4]
fstp dword [eax + 0x1c]
mov eax, dword [esi + 0x10]
fld dword [esp + 0x14]
fsub dword [esp + 0x40]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
shl edx, 4
add eax, edx
fsubr dword [eax]
fstp dword [eax + 0x20]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
fld dword [esp + 0x18]
fsub dword [esp + 0x44]
lea ecx, [eax + eax*4]
shl ecx, 4
fsubr dword [ecx + edx + 4]
lea eax, [ecx + edx]
fstp dword [eax + 0x24]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
fld dword [esp + 0x14]
fsub dword [esp + 0x48]
lea eax, [eax + eax*4]
shl eax, 4
add eax, ecx
fsubr dword [eax]
fstp dword [eax + 0x28]
mov eax, dword [esi + 0x10]
fld dword [esp + 0x18]
fsub dword [esp + 0x4c]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
shl edx, 4
add eax, edx
fsubr dword [eax + 4]
fstp dword [eax + 0x2c]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
fld dword [esp + 0x14]
fsub dword [esp + 0x50]
lea ecx, [eax + eax*4]
shl ecx, 4
fsubr dword [ecx + edx]
lea eax, [ecx + edx]
fstp dword [eax + 0x30]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
fld dword [esp + 0x18]
fsub dword [esp + 0x54]
lea eax, [eax + eax*4]
shl eax, 4
add eax, ecx
fsubr dword [eax + 4]
fstp dword [eax + 0x34]
mov eax, dword [esi + 0x10]
fld dword [esp + 0x14]
fsub dword [esp + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
shl edx, 4
add eax, edx
fsubr dword [eax]
fstp dword [eax + 0x38]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
fld dword [esp + 0x18]
fsub dword [esp + 0x5c]
lea ecx, [eax + eax*4]
shl ecx, 4
fsubr dword [ecx + edx + 4]
lea eax, [ecx + edx]
fstp dword [eax + 0x3c]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
fld dword [esp + 0x14]
fsub dword [esp + 0x60]
lea eax, [eax + eax*4]
shl eax, 4
add eax, ecx
fsubr dword [eax]
fstp dword [eax + 0x40]
mov eax, dword [esi + 0x10]
fld dword [esp + 0x18]
fsub dword [esp + 0x64]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
shl edx, 4
add eax, edx
fsubr dword [eax + 4]
fstp dword [eax + 0x44]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
fld dword [esp + 0x14]
fsub dword [esp + 0x68]
lea ecx, [eax + eax*4]
shl ecx, 4
fsubr dword [ecx + edx]
lea eax, [ecx + edx]
fstp dword [eax + 0x48]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
fld dword [esp + 0x18]
fsub dword [esp + 0x6c]
lea eax, [eax + eax*4]
shl eax, 4
add eax, ecx
fsubr dword [eax + 4]
fstp dword [eax + 0x4c]
mov eax, dword [esi + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
shl edx, 4
mov dword [edx + eax + 8], ebp
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
lea ecx, [eax + eax*4]
shl ecx, 4
mov dword [ecx + edx + 0xc], ebx
mov edx, dword [esi + 0x10]
inc edx
inc edi
cmp edi, 2
mov dword [esi + 0x10], edx
jl 0x1002054c
pop edi
mov eax, ebx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret