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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x720
mov esi, esp
mov edi, dword [0x1018fc64]
xor edi, ebp
xor ecx, ecx
cmp dword [ebp + 0x1c], 0
setne cl
mov eax, ecx
inc eax
mov dword [esi + 0x38], eax
cmp dword [ebp + 8], 0
sete byte [esi + 0x14]
setne dl
and dl, cl
mov eax, dword [ebp + 0x34]
mov dword [esi + 0x1c], eax
test eax, eax
sete dh
mov ebx, dword [ebp + 0x58]
cmp ebx, 7
setg bl
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x4c]
shl eax, cl
and bl, dh
and bl, dl
mov dword [esi + 0x718], edi
mov bh, byte [esi + 0x14]
or bh, bl
pcmpeqd xmm0, xmm0
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx + 0x20]
movdqu xmmword [esi + 0x1fc], xmm0
movdqa xmmword [esi + 0x1f0], xmm0
movdqa xmmword [esi + 0x1e0], xmm0
cmp dword [ebp + 0x2c], 0
movdqa xmmword [esi + 0x1d0], xmm0
mov ecx, 1
mov dword [esi + 0x54], ecx
mov ecx, 1
cmove eax, ecx
mov dword [esi + 0x48], eax
mov eax, dword [ebp + 0x10]
movsx eax, word [edi + eax*2]
mov edx, eax
mov ecx, dword [ebp + 0x4c]
shl edx, cl
mov dword [esi + 0xa8], edx
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 8]
mov dword [esi + 0xc], ecx
movsx edx, word [edi + ecx*2 - 2]
mov dword [esi + 0x8c], eax
sub edx, eax
mov ecx, dword [ebp + 0x4c]
shl edx, cl
imul edx, dword [esi + 0x38]
shl edx, 2
movzx eax, bh
mov dword [esi + 0x84], eax
mov eax, edx
call fcn.101027c0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push edx
push 0xff
mov dword [esi + 0x24], eax
push eax
call fcn.10105ec0
add esp, 0xc
mov eax, dword [esi + 0xc]
movsx eax, word [edi + eax*2 - 2]
mov edx, eax
mov ecx, dword [ebp + 0x4c]
shl edx, cl
mov byte [esi + 0x2b], bl
cmp bl, 1
mov dword [esi + 0x14], edi
mov dword [esi + 0x78], edx
jne 0x100f8063
mov ecx, dword [esi + 0xc]
movsx edi, word [edi + ecx*2]
sub edi, eax
mov ecx, dword [ebp + 0x4c]
shl edi, cl
shl edi, 2
mov eax, edi
call fcn.101027c0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push edi
push 0xff
mov dword [esi + 0x18], eax
push eax
call fcn.10105ec0
add esp, 0xc
jmp 0x100f806e
mov eax, dword [ebp + 0x18]
lea eax, [eax + edx*4]
mov dword [esi + 0x18], eax
xor edi, edi
lea ebx, [edi + 3]
and ebx, 0xfffffffc
mov eax, ebx
call fcn.101027c0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
mov ecx, 0xff
push edi
push ecx
mov dword [esi + 0x70], eax
push eax
call fcn.10105ec0
add esp, 0xc
mov eax, ebx
call fcn.101027c0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push edi
mov ecx, 0xff
push ecx
mov dword [esi + 0x6c], eax
push eax
call fcn.10105ec0
add esp, 0xc
mov eax, ebx
call fcn.101027c0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push edi
mov ecx, 0xff
push ecx
mov dword [esi + 0x9c], eax
push eax
call fcn.10105ec0
add esp, 0xc
mov eax, ebx
call fcn.101027c0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push edi
mov ecx, 0xff
push ecx
mov dword [esi + 0x98], eax
push eax
call fcn.10105ec0
add esp, 0xc
mov eax, ebx
call fcn.101027c0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push edi
mov ecx, 0xff
push ecx
mov dword [esi + 0x94], eax
push eax
call fcn.10105ec0
add esp, 0xc
mov eax, dword [ebp + 0x24]
mov dword [esi + 0x1f4], eax
mov eax, dword [ebp + 0x48]
mov dword [esi + 0x1ec], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x1d0], eax
mov eax, dword [ebp + 0x38]
mov dword [esi + 0x1e0], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x1d8], eax
mov eax, dword [ebp + 0x54]
mov eax, dword [eax]
mov dword [esi + 0x1f8], eax
mov ecx, dword [ebp + 0x30]
mov dword [esi + 0x1e4], ecx
mov ecx, dword [ebp + 0x5c]
mov dword [esi + 0x1fc], ecx
mov ecx, dword [ebp + 0x60]
mov dword [esi + 0x204], ecx
mov ecx, dword [esi + 0x84]
mov dword [esi + 0x1d4], ecx
mov dword [esi + 0x200], 0
xor edx, edx
mov ecx, dword [esi + 0x48]
cmp ecx, 1
setg dl
mov dword [esi + 0x208], edx
mov ebx, dword [ebp + 0x10]
mov edi, ebx
mov edx, dword [ebp + 0x14]
cmp ebx, edx
mov edx, dword [esi + 0x24]
jge 0x100f8db2
mov eax, dword [esi + 0x78]
lea edi, [edx + eax*4]
mov edx, dword [esi + 0xa8]
lea ebx, [edx*4]
mov dword [esi + 0xc], ebx
neg edx
mov dword [esi + 0x2c], edx
sub edi, dword [esi + 0xc]
mov dword [esi + 0x7c], edi
cmp ecx, 1
setg byte [esi + 0x90]
mov ebx, dword [esi + 0x24]
mov edx, dword [ebp + 0x1c]
test edx, edx
mov edi, ebx
cmove edi, edx
mov dword [esi + 0xcc], edi
cmp dword [ebp + 0x30], 3
setne dl
xor edi, edi
dec edi
shl edi, cl
shl eax, 2
sub eax, dword [esi + 0xc]
or dl, byte [esi + 0x90]
mov byte [esi + 0x5f], dl
not edi
mov dword [esi + 0xac], edi
mov ecx, dword [esi + 0x84]
xor cl, 1
mov byte [esi + 0x5e], cl
mov edx, dword [esi + 0x2c]
lea ecx, [ebx + edx*4]
mov dword [esi + 0x44], ecx
mov ecx, dword [esi + 0x7c]
lea ecx, [ecx + edx*4]
mov dword [esi + 0xb0], ecx
mov ecx, dword [esi + 0x38]
mov edx, ecx
neg edx
mov dword [esi + 0x90], edx
mov edx, dword [ebp + 0x20]
sub edx, ecx
mov dword [esi + 0xc4], edx
add eax, ebx
mov dword [esi + 0x78], eax
mov eax, dword [ebp + 0x44]
mov dword [esi + 0x74], eax
mov eax, dword [ebp + 0x14]
dec eax
mov dword [esi + 0x30], eax
mov edi, dword [ebp + 0x10]
lea eax, [edi + 1]
mov dword [esi + 0x88], eax
lea eax, [ecx - 1]
mov dword [esi + 0xc8], eax
mov ecx, dword [ebp + 0x48]
lea eax, [ecx + 8]
mov dword [esi + 0xa4], eax
lea eax, [ecx + 0x1c]
mov dword [esi + 0xa0], eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x1dc], edi
mov ebx, dword [esi + 0x14]
movsx eax, word [ebx + edi*2]
mov edx, eax
mov ecx, dword [ebp + 0x4c]
shl edx, cl
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
mov dword [esi + 0xc], edx
lea edx, [ecx + edx*4]
cmove edx, ecx
mov dword [esi + 0x20], edx
movsx ecx, word [ebx + edi*2 + 2]
sub ecx, eax
mov dword [esi + 0x2c], ecx
mov eax, ecx
mov ecx, dword [ebp + 0x4c]
shl eax, cl
mov dword [esi + 0x4c], eax
test eax, eax
jg 0x100f82e0
push 0x5d7
push 0x1017463c
push str.assertion_failed:_N___0
call fcn.100d0cbc
add esp, 0xc
push dword [ebp + 0x48]
call fcn.100f6e14
add esp, 4
mov ebx, eax
xor edx, edx
cmp edi, dword [ebp + 0x10]
cmove eax, edx
sub dword [esi + 0x74], eax
mov ecx, dword [ebp + 0x40]
sub ecx, ebx
lea eax, [ecx - 1]
mov dword [esi + 0x1f0], eax
cmp edi, dword [ebp + 0x50]
mov dword [esi + 0x10], edi
jge 0x100f834b
mov edi, dword [ebp + 0x50]
sub edi, dword [esi + 0x10]
cmp edi, 3
mov eax, 3
cmovge edi, eax
mov eax, dword [esi + 0x74]
cdq
idiv edi
mov edi, dword [esi + 0x10]
mov edx, dword [ebp + 0x28]
add eax, dword [edx + edi*4]
cmp ecx, eax
cmovl eax, ecx
mov edx, 0x3fff
cmp eax, 0x3fff
jg 0x100f834b
test eax, eax
mov ecx, 0
cmovs eax, ecx
mov edx, eax
cmp dword [esi + 0x84], 0
mov dword [esi + 0xd0], ebx
mov dword [esi + 0x60], edx
je 0x100f8399
mov edx, dword [esi + 0x14]
movsx eax, word [edx + edi*2]
sub eax, dword [esi + 0x2c]
mov ebx, dword [ebp + 0x4c]
mov ecx, ebx
shl eax, cl
mov ecx, dword [ebp + 0x10]
movsx edx, word [edx + ecx*2]
mov ecx, ebx
shl edx, cl
cmp edi, dword [esi + 0x88]
je 0x100f8385
cmp eax, edx
jl 0x100f8399
cmp dword [esi + 0x54], 0
mov ecx, dword [esi + 0x50]
mov eax, ecx
cmovne eax, edi
test ecx, ecx
cmove eax, edi
mov dword [esi + 0x50], eax
mov eax, dword [ebp + 0x18]
mov edx, dword [esi + 0x18]
movss xmm1, dword [0x101349ac]
cmp edi, dword [esi + 0x88]
jne 0x100f8433
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x20]
mov ecx, dword [ebp + 0x10]
mov edi, ecx
movsx edx, word [eax + ecx*2 + 2]
movsx ecx, word [eax + ecx*2]
mov ebx, edx
sub ebx, ecx
mov ecx, dword [ebp + 0x4c]
shl ebx, cl
movsx edi, word [eax + edi*2 + 4]
sub edi, edx
shl edi, cl
mov ecx, dword [esi + 0x24]
lea eax, [ecx + ebx*4]
lea edx, [ebx + ebx]
sub edx, edi
sub edi, ebx
shl edi, 2
mov dword [esi + 0x54], edx
lea ecx, [ecx + edx*4]
push edi
push ecx
push eax
call fcn.101053c0
movss xmm1, dword [0x101349ac]
mov edx, dword [esi + 0x18]
mov eax, dword [ebp + 0x18]
add esp, 0xc
cmp dword [esi + 0x1c], 0
je 0x100f8433
mov ecx, dword [esi + 0x7c]
lea eax, [ecx + ebx*4]
mov edx, dword [esi + 0x54]
lea ecx, [ecx + edx*4]
push edi
push ecx
push eax
call fcn.101053c0
movss xmm1, dword [0x101349ac]
mov edx, dword [esi + 0x18]
mov eax, dword [ebp + 0x18]
add esp, 0xc
mov ecx, dword [esi + 0xc]
lea edi, [eax + ecx*4]
mov eax, dword [ebp + 0x3c]
mov ebx, dword [esi + 0x10]
mov eax, dword [eax + ebx*4]
mov dword [esi + 0x1e8], eax
mov ecx, dword [ebp + 0xc]
cmp ebx, dword [ecx + 0xc]
cmovge edi, dword [esi + 0x24]
mov dword [esi + 0x40], edi
mov ecx, dword [esi + 0x20]
cmovge ecx, dword [esi + 0xcc]
mov dword [esi + 0x20], ecx
mov ecx, edx
mov edi, 0
cmovge ecx, edi
cmp ebx, dword [esi + 0x30]
mov edx, ecx
cmove edx, edi
cmp byte [esi + 0x2b], 0
cmovne edx, ecx
mov dword [esi + 0x18], edx
test eax, eax
sets al
xor edi, edi
dec edi
mov ecx, dword [esi + 0xac]
mov edx, ecx
cmp dword [esi + 0x50], 0
je 0x100f8597
or al, byte [esi + 0x5f]
mov edi, 0xffffffff
mov eax, dword [esi + 0xac]
mov edx, eax
mov ecx, eax
je 0x100f8597
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 0x14]
movsx edi, word [eax + edx*2]
mov eax, dword [esi + 0x2c]
add eax, dword [esi + 0x8c]
sub edi, eax
mov ecx, dword [ebp + 0x4c]
shl edi, cl
test edi, edi
mov eax, 0
cmovs edi, eax
mov eax, dword [esi + 0xa8]
mov dword [esi + 0x34], edi
add eax, edi
mov dword [esi + 0xc], eax
mov edi, dword [esi + 0xc4]
mov eax, edx
mov edx, dword [esi + 0x14]
movsx ebx, word [edx + eax*2 - 2]
shl ebx, cl
mov edx, edi
dec eax
mov edi, dword [esi + 0x90]
add edi, edx
cmp ebx, dword [esi + 0xc]
jg 0x100f84ea
mov ecx, dword [esi + 0xc]
add ecx, dword [esi + 0x4c]
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0x50]
mov edi, dword [esi + 0x10]
cmp ecx, edi
mov ebx, edi
cmovg ebx, ecx
lea edi, [ebx - 1]
mov dword [esi + 0x3c], edi
lea edi, [eax + 1]
mov dword [esi + 0x54], edi
neg ebx
mov dword [esi + 0x2c], ebx
lea edi, [ecx - 2]
mov ecx, dword [esi + 0x2c]
add ecx, edi
cmp ecx, 0xfffffffe
je 0x100f854d
mov ecx, dword [esi + 0x14]
movsx ebx, word [ecx + edi*2 + 4]
mov ecx, dword [ebp + 0x4c]
shl ebx, cl
inc edi
cmp ebx, dword [esi + 0xc]
jl 0x100f852e
jmp 0x100f8550
mov edi, dword [esi + 0x3c]
cmp edi, dword [esi + 0x54]
cmovl edi, eax
inc edi
mov ecx, dword [esi + 0x50]
lea ebx, [ecx + 1]
mov ecx, dword [esi + 0x38]
imul ebx, ecx
mov dword [esi + 0xc], ebx
imul ecx, dword [esi + 0x50]
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x54], eax
xor eax, eax
xor ebx, ebx
mov ecx, dword [esi + 0x2c]
movzx ecx, byte [edx + ecx]
or eax, ecx
mov ecx, dword [esi + 0xc]
movzx ecx, byte [edx + ecx - 1]
or ebx, ecx
dec edi
add edx, dword [esi + 0x38]
cmp dword [esi + 0x54], edi
jne 0x100f8574
mov ecx, ebx
mov edi, dword [esi + 0x34]
mov edx, eax
mov dword [esi + 0x34], edi
mov dword [esi + 0x54], edx
mov dword [esi + 0xc], ecx
mov edx, dword [esi + 0x10]
lea eax, [edx + 1]
mov dword [esi + 0x2c], eax
cmp dword [esi + 0x1c], 0
je 0x100f86fa
mov edi, dword [esi + 0x14]
mov ecx, dword [ebp + 0x38]
cmp edx, ecx
setne al
or al, byte [esi + 0x5e]
je 0x100f86ad
cmp edx, ecx
je 0x100f86fa
xor ecx, ecx
mov ebx, 0
cmp edx, dword [esi + 0x30]
je 0x100f85ec
movsx eax, word [edi + edx*2]
mov ecx, dword [ebp + 0x4c]
shl eax, cl
mov ecx, dword [esi + 0x44]
lea ebx, [ecx + eax*4]
xor ecx, ecx
mov edi, dword [esi + 0x34]
cmp edi, 0xffffffff
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*4]
cmove eax, ecx
mov edi, dword [esi + 0x60]
shr edi, 1
mov dword [esi + 0x3c], 0
lea ecx, [esi + 0x1d0]
mov edx, dword [esi + 0x40]
movss xmm0, dword [0x101349c0]
push dword [esi + 0x54]
push dword [esi + 0x18]
push ebx
mov ebx, dword [ebp + 0x4c]
push ebx
push eax
push dword [esi + 0x48]
push edi
mov ebx, dword [esi + 0x4c]
push ebx
call fcn.100f8dcc
add esp, 0x20
mov dword [esi + 0x80], eax
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0x30]
je 0x100f865d
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
movsx eax, word [eax + ecx*2]
mov ecx, dword [ebp + 0x4c]
shl eax, cl
mov ecx, dword [esi + 0xb0]
lea eax, [ecx + eax*4]
mov dword [esi + 0x3c], eax
mov ecx, dword [esi + 0x34]
cmp ecx, 0xffffffff
mov eax, dword [esi + 0x7c]
lea eax, [eax + ecx*4]
mov ecx, 0
cmove eax, ecx
lea ecx, [esi + 0x1d0]
mov edx, dword [esi + 0x20]
movss xmm0, dword [0x101349c0]
push dword [esi + 0xc]
push dword [esi + 0x18]
push dword [esi + 0x3c]
push dword [ebp + 0x4c]
push eax
push dword [esi + 0x48]
push edi
push ebx
call fcn.100f8dcc
add esp, 0x20
mov dword [esi + 0xc], eax
mov edx, dword [esi + 0x38]
mov eax, dword [esi + 0x80]
jmp 0x100f8d5c
movsx eax, word [edi + edx*2]
sub eax, dword [esi + 0x8c]
mov ecx, dword [ebp + 0x4c]
shl eax, cl
test eax, eax
mov edi, dword [esi + 0x24]
mov ebx, dword [esi + 0x78]
jle 0x100f86fa
xor eax, eax
movss xmm0, dword [edi + eax*4]
addss xmm0, dword [ebx + eax*4]
mulss xmm0, xmm1
movss dword [edi + eax*4], xmm0
inc eax
mov edi, ebx
mov ebx, edx
mov edx, dword [esi + 0x14]
movsx edx, word [edx + ebx*2]
sub edx, dword [esi + 0x8c]
shl edx, cl
cmp eax, edx
mov edx, ebx
mov ebx, edi
mov edi, dword [esi + 0x24]
jl 0x100f86c8
cmp dword [esi + 0x20], 0
je 0x100f8b94
mov edi, dword [esi + 0x10]
cmp edi, dword [ebp + 0x38]
setge al
mov cl, byte [esi + 0x2b]
xor cl, 1
or cl, al
jne 0x100f8c01
push 0x4fb
push 0xff
lea eax, [esi + 0x21d]
push eax
call fcn.10105ec0
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 8]
add eax, edi
mov ecx, dword [ebp + 0x24]
movss xmm0, dword [ecx + eax*4]
movss dword [esi + 0x68], xmm0
movss xmm0, dword [ecx + edi*4]
movss dword [esi + 0x1c], xmm0
mov eax, dword [esi + 0xc]
or eax, dword [esi + 0x54]
mov dword [esi + 0xc], eax
mov edi, dword [ebp + 0x48]
mov eax, dword [edi]
mov dword [esi + 0x64], eax
mov eax, dword [edi + 4]
mov dword [esi + 0xc0], eax
mov eax, dword [esi + 0xa4]
movups xmm0, xmmword [eax]
movaps xmmword [esi + 0x1c0], xmm0
mov eax, dword [edi + 0x18]
mov dword [esi + 0xbc], eax
mov eax, dword [esi + 0xa0]
movups xmm0, xmmword [eax]
movaps xmmword [esi + 0x1a0], xmm0
mov eax, dword [eax + 0x10]
mov dword [esi + 0x1b0], eax
movaps xmm0, xmmword [esi + 0x1d0]
movaps xmm1, xmmword [esi + 0x1e0]
movaps xmmword [esi + 0x130], xmm0
movaps xmmword [esi + 0x140], xmm1
movaps xmm0, xmmword [esi + 0x1f0]
movaps xmmword [esi + 0x150], xmm0
movups xmm0, xmmword [esi + 0x1fc]
movups xmmword [esi + 0x15c], xmm0
mov ebx, dword [esi + 0x4c]
lea edi, [ebx*4]
push edi
push dword [esi + 0x40]
push dword [esi + 0x70]
call fcn.101053c0
add esp, 0xc
mov dword [esi + 0x3c], edi
push edi
push dword [esi + 0x20]
push dword [esi + 0x6c]
call fcn.101053c0
add esp, 0xc
xor edi, edi
movss xmm2, dword [esi + 0x1c]
movaps xmm0, xmm2
movss xmm1, dword [esi + 0x68]
minss xmm0, xmm1
divss xmm0, dword [0x10174328]
addss xmm2, xmm0
movss dword [esi + 0x1c], xmm2
addss xmm0, xmm1
movss dword [esi + 0x68], xmm0
mov dword [esi + 0x200], 0xffffffff
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0x30]
je 0x100f8856
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
movsx eax, word [eax + ecx*2]
mov ecx, dword [ebp + 0x4c]
shl eax, cl
mov ecx, dword [esi + 0x44]
lea edi, [ecx + eax*4]
mov edx, dword [esi + 0x34]
cmp edx, 0xffffffff
mov ecx, dword [esi + 0x24]
lea eax, [ecx + edx*4]
mov ecx, 0
cmove eax, ecx
lea ecx, [esi + 0x1d0]
mov edx, dword [esi + 0x40]
push dword [esi + 0xc]
push dword [esi + 0x18]
push edi
push dword [ebp + 0x4c]
mov dword [esi + 0x34], eax
push eax
push dword [esi + 0x48]
push dword [esi + 0x60]
push ebx
mov edi, edx
push dword [esi + 0x20]
call fcn.100f915e
add esp, 0x24
mov dword [esi + 0x80], eax
push ebx
push edi
push dword [esi + 0x70]
call fcn.100f03de
add esp, 0xc
fstp xword [esi + 0x54]
push ebx
push dword [esi + 0x20]
push dword [esi + 0x6c]
call fcn.100f03de
add esp, 0xc
fstp xword [esi + 0xe4]
mov eax, dword [ebp + 0x48]
movups xmm0, xmmword [eax]
movups xmm1, xmmword [eax + 0x10]
movaps xmmword [esi + 0x170], xmm0
movaps xmmword [esi + 0x180], xmm1
movups xmm0, xmmword [eax + 0x20]
movaps xmmword [esi + 0x190], xmm0
movaps xmm0, xmmword [esi + 0x1d0]
movaps xmm1, xmmword [esi + 0x1e0]
movaps xmmword [esi + 0xf0], xmm0
movaps xmmword [esi + 0x100], xmm1
movaps xmm0, xmmword [esi + 0x1f0]
movaps xmmword [esi + 0x110], xmm0
movups xmm0, xmmword [esi + 0x1fc]
movups xmmword [esi + 0x11c], xmm0
mov ebx, dword [esi + 0x3c]
push ebx
push edi
push dword [esi + 0x9c]
call fcn.101053c0
add esp, 0xc
push ebx
push dword [esi + 0x20]
push dword [esi + 0x98]
call fcn.101053c0
add esp, 0xc
fld xword [esi + 0x54]
fstp dword [esi + 0xe0]
movss xmm0, dword [esi + 0xe0]
mulss xmm0, dword [esi + 0x1c]
movss dword [esi + 0x54], xmm0
fld xword [esi + 0xe4]
fstp dword [esi + 0xdc]
movss xmm0, dword [esi + 0xdc]
mulss xmm0, dword [esi + 0x68]
movss dword [esi + 0xe4], xmm0
mov eax, dword [esi + 0x30]
cmp dword [esi + 0x10], eax
je 0x100f89a9
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
movsx eax, word [eax + ecx*2]
mov ecx, dword [ebp + 0x4c]
shl eax, cl
mov ecx, dword [esi + 0x44]
lea eax, [ecx + eax*4]
push ebx
push eax
push dword [esi + 0x94]
call fcn.101053c0
add esp, 0xc
mov edi, dword [esi + 0xbc]
mov eax, dword [esi + 0x64]
add eax, edi
mov ebx, dword [esi + 0xc0]
mov ecx, ebx
sub ecx, edi
mov dword [esi + 0xb4], ecx
push ecx
mov dword [esi + 0xb8], eax
push eax
lea eax, [esi + 0x21d]
push eax
call fcn.101053c0
add esp, 0xc
mov ecx, dword [ebp + 0x48]
mov eax, dword [esi + 0x64]
mov dword [ecx], eax
mov dword [ecx + 4], ebx
movaps xmm0, xmmword [esi + 0x1c0]
mov eax, dword [esi + 0xa4]
movups xmmword [eax], xmm0
mov dword [ecx + 0x18], edi
mov eax, dword [esi + 0x1b0]
mov ecx, dword [esi + 0xa0]
mov dword [ecx + 0x10], eax
movaps xmm0, xmmword [esi + 0x1a0]
movups xmmword [ecx], xmm0
movaps xmm0, xmmword [esi + 0x130]
movaps xmm1, xmmword [esi + 0x140]
movaps xmmword [esi + 0x1d0], xmm0
movaps xmmword [esi + 0x1e0], xmm1
movaps xmm0, xmmword [esi + 0x150]
movaps xmmword [esi + 0x1f0], xmm0
movups xmm0, xmmword [esi + 0x15c]
movups xmmword [esi + 0x1fc], xmm0
mov edi, dword [esi + 0x3c]
push edi
push dword [esi + 0x70]
push dword [esi + 0x40]
call fcn.101053c0
add esp, 0xc
push edi
push dword [esi + 0x6c]
push dword [esi + 0x20]
call fcn.101053c0
add esp, 0xc
mov edi, dword [esi + 0x10]
cmp edi, dword [esi + 0x88]
mov ebx, dword [esi + 0x14]
jne 0x100f8ac9
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x20]
mov ecx, dword [ebp + 0x10]
movsx edx, word [eax + ecx*2 + 2]
movsx ecx, word [eax + ecx*2]
mov edi, edx
sub edi, ecx
mov ecx, dword [ebp + 0x4c]
shl edi, cl
mov ebx, dword [ebp + 0x10]
movsx eax, word [eax + ebx*2 + 4]
sub eax, edx
shl eax, cl
lea ecx, [edi + edi]
sub ecx, eax
sub eax, edi
mov edx, dword [esi + 0x24]
lea edi, [edx + edi*4]
mov dword [esi + 0x64], edi
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
lea ecx, [edx + ecx*4]
shl eax, 2
push eax
push ecx
push dword [esi + 0x64]
call fcn.101053c0
add esp, 0xc
movss xmm0, dword [esi + 0x54]
addss xmm0, dword [esi + 0xe4]
movss dword [esi + 0x54], xmm0
xor eax, eax
mov dword [esi + 0x200], 1
cmp edi, dword [esi + 0x30]
je 0x100f8afe
mov eax, dword [esi + 0x10]
movsx eax, word [ebx + eax*2]
mov ecx, dword [ebp + 0x4c]
shl eax, cl
mov ecx, dword [esi + 0x44]
lea eax, [ecx + eax*4]
lea ecx, [esi + 0x1d0]
mov ebx, dword [esi + 0x40]
mov edx, ebx
push dword [esi + 0xc]
push dword [esi + 0x18]
push eax
push dword [ebp + 0x4c]
push dword [esi + 0x34]
push dword [esi + 0x48]
push dword [esi + 0x60]
mov edi, dword [esi + 0x4c]
push edi
push dword [esi + 0x20]
call fcn.100f915e
add esp, 0x24
mov dword [esi + 0xc], eax
push edi
push ebx
push dword [esi + 0x70]
call fcn.100f03de
add esp, 0xc
fstp dword [esi + 0xd8]
movss xmm0, dword [esi + 0x1c]
mulss xmm0, dword [esi + 0xd8]
movss dword [esi + 0x1c], xmm0
push edi
mov ebx, dword [esi + 0x20]
push ebx
push dword [esi + 0x6c]
call fcn.100f03de
add esp, 0xc
fstp dword [esi + 0xd4]
movss xmm0, dword [esi + 0x68]
mulss xmm0, dword [esi + 0xd4]
addss xmm0, dword [esi + 0x1c]
movss xmm1, dword [esi + 0x54]
ucomiss xmm1, xmm0
jae 0x100f8c7c
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x38]
jmp 0x100f8d4f
mov edi, dword [esi + 0x34]
mov eax, dword [esi + 0x54]
or dword [esi + 0xc], eax
xor edx, edx
mov eax, 0
mov ecx, dword [esi + 0x10]
cmp ecx, dword [esi + 0x30]
mov ebx, dword [ebp + 0x4c]
je 0x100f8bc0
mov eax, dword [esi + 0x14]
movsx eax, word [eax + ecx*2]
mov ecx, ebx
shl eax, cl
mov ecx, dword [esi + 0x44]
lea eax, [ecx + eax*4]
cmp edi, 0xffffffff
mov ecx, dword [esi + 0x24]
lea edi, [ecx + edi*4]
mov dword [esi + 0x1c], 0
cmove edi, edx
lea ecx, [esi + 0x1d0]
mov edx, dword [esi + 0x40]
movd xmm0, dword [0x101349c0]
push dword [esi + 0xc]
push dword [esi + 0x18]
push eax
push ebx
push edi
push dword [esi + 0x48]
push dword [esi + 0x60]
mov ebx, dword [esi + 0x4c]
push ebx
call fcn.100f8dcc
add esp, 0x20
jmp 0x100f8c71
mov eax, dword [esi + 0xc]
or eax, dword [esi + 0x54]
mov dword [esi + 0xc], eax
xor edx, edx
mov dword [esi + 0x200], 0
mov eax, 0
cmp edi, dword [esi + 0x30]
mov ebx, dword [ebp + 0x4c]
je 0x100f8c34
mov eax, dword [esi + 0x14]
movsx eax, word [eax + edi*2]
mov ecx, ebx
shl eax, cl
mov ecx, dword [esi + 0x44]
lea eax, [ecx + eax*4]
mov edi, dword [esi + 0x34]
cmp edi, 0xffffffff
mov ecx, dword [esi + 0x24]
lea edi, [ecx + edi*4]
mov dword [esi + 0x1c], 0
cmove edi, edx
lea ecx, [esi + 0x1d0]
mov edx, dword [esi + 0x40]
push dword [esi + 0xc]
push dword [esi + 0x18]
push eax
push ebx
push edi
push dword [esi + 0x48]
push dword [esi + 0x60]
mov ebx, dword [esi + 0x4c]
push ebx
push dword [esi + 0x20]
call fcn.100f915e
add esp, 0x24
mov dword [esi + 0xc], eax
mov edx, dword [esi + 0x38]
jmp 0x100f8d5c
movaps xmm0, xmmword [esi + 0x190]
mov eax, dword [ebp + 0x48]
movups xmmword [eax + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x170]
movaps xmm1, xmmword [esi + 0x180]
movups xmmword [eax + 0x10], xmm1
movups xmmword [eax], xmm0
movaps xmm0, xmmword [esi + 0xf0]
movaps xmm1, xmmword [esi + 0x100]
movaps xmmword [esi + 0x1d0], xmm0
movaps xmmword [esi + 0x1e0], xmm1
movaps xmm0, xmmword [esi + 0x110]
movaps xmmword [esi + 0x1f0], xmm0
movups xmm0, xmmword [esi + 0x11c]
movups xmmword [esi + 0x1fc], xmm0
mov eax, dword [esi + 0x3c]
push eax
push dword [esi + 0x9c]
push dword [esi + 0x40]
mov edi, eax
call fcn.101053c0
add esp, 0xc
push edi
push dword [esi + 0x98]
push ebx
call fcn.101053c0
add esp, 0xc
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0x30]
je 0x100f8d2b
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
movsx eax, word [ecx + eax*2]
mov ecx, dword [ebp + 0x4c]
shl eax, cl
mov ecx, dword [esi + 0x44]
lea eax, [ecx + eax*4]
push edi
push dword [esi + 0x94]
push eax
call fcn.101053c0
add esp, 0xc
push dword [esi + 0xb4]
lea eax, [esi + 0x21d]
push eax
push dword [esi + 0xb8]
call fcn.101053c0
add esp, 0xc
mov edx, dword [esi + 0x38]
mov eax, dword [esi + 0x80]
mov dword [esi + 0x1c], 0
mov dword [esi + 0xc], eax
mov ebx, dword [esi + 0x4c]
mov edi, dword [esi + 0x10]
mov ecx, edi
imul ecx, edx
mov edx, dword [ebp + 0x20]
mov byte [edx + ecx], al
add ecx, dword [esi + 0xc8]
mov eax, dword [esi + 0xc]
mov byte [edx + ecx], al
mov eax, dword [esi + 0x74]
add eax, dword [esi + 0xd0]
mov ecx, dword [ebp + 0x28]
add eax, dword [ecx + edi*4]
mov dword [esi + 0x74], eax
shl ebx, 3
xor eax, eax
cmp dword [esi + 0x60], ebx
setg al
mov dword [esi + 0x54], eax
mov dword [esi + 0x208], 0
mov edi, dword [esi + 0x2c]
cmp edi, dword [ebp + 0x14]
jne 0x100f828c
mov eax, dword [esi + 0x1f8]
mov ecx, dword [ebp + 0x54]
mov dword [ecx], eax
mov ecx, dword [esi + 0x718]
xor ecx, ebp
call fcn.10102288
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret