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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0xa4
mov edi, dword [ebp + 0x24]
mov esi, dword [ebp + 0x28]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x68], edx
inc dword [0x1021098c]
mov dword [esp + 0x5c], eax
test edi, edi
je 0x1008fad8
mov dword [esp + 0x6c], edi
test esi, esi
pxor xmm0, xmm0
jle 0x1008ea8b
mov edx, dword [ebp + 0x18]
and edx, 0xf
je 0x1008ea01
test dl, 7
jne 0x1008f9c4
mov edx, 1
lea eax, [edx + 8]
cmp esi, eax
jl 0x1008f9c4
mov eax, esi
sub eax, edx
and eax, 7
neg eax
add eax, esi
test edx, edx
jbe 0x1008ea34
mov ebx, dword [ebp + 0x18]
xor ecx, ecx
movaps xmm2, xmm0
movsd xmm1, qword [ebx + ecx*8]
movaps xmm0, xmm1
inc ecx
cmp ecx, edx
maxsd xmm0, xmm2
jb 0x1008ea20
mov ecx, dword [ebp + 0x18]
unpcklpd xmm0, xmm0
movaps xmm1, xmmword [ecx + edx*8]
maxpd xmm1, xmm0
movaps xmm0, xmmword [ecx + edx*8 + 0x10]
maxpd xmm0, xmm1
movaps xmm2, xmmword [ecx + edx*8 + 0x20]
maxpd xmm2, xmm0
movaps xmm0, xmmword [ecx + edx*8 + 0x30]
maxpd xmm0, xmm2
add edx, 8
cmp edx, eax
jb 0x1008ea3b
movaps xmm1, xmm0
unpckhpd xmm1, xmm0
maxsd xmm0, xmm1
cmp eax, esi
jae 0x1008ea8b
mov edx, dword [ebp + 0x18]
movaps xmm2, xmm0
movsd xmm1, qword [edx + eax*8]
movaps xmm0, xmm1
inc eax
cmp eax, esi
maxsd xmm0, xmm2
jb 0x1008ea77
mov ecx, dword [ebp + 0x3c]
test ecx, ecx
jle 0x1008f702
mov edx, dword [ebp + 0x4c]
movsd xmm4, qword [0x101e52b0]
movsd xmm3, qword [0x101e52b8]
movsd xmm2, qword [0x101e52c0]
movsd xmm1, qword [0x101e52d8]
mov esi, dword [ebp + 0x50]
mov edi, dword [ebp + 0x58]
movsd qword [esp + 0x60], xmm0
xor ebx, ebx
mov eax, dword [ebp + 0x38]
mov eax, dword [eax + ebx*8]
dec eax
cmp eax, 0xb
ja case.0x1008eade.4
mov eax, dword [eax*4 + 0x101e5130]
jmp eax
mov ecx, dword [ebp + 0x38]
movsd xmm2, qword [0x101e52b0]
movaps xmm0, xmm2
movsd xmm3, qword [0x101e52b8]
mov edx, dword [ecx + ebx*8 + 4]
cmpltsd xmm0, qword [edx + 8]
cmpltsd xmm2, qword [edx + 0x18]
movsd xmm1, qword [edx + 0x10]
movsd xmm4, qword [edx + 0x20]
mov dword [esp + 0x74], edx
cmpltsd xmm1, xmm3
movd ecx, xmm0
neg ecx
cmpltsd xmm4, xmm3
movd eax, xmm1
neg eax
add ecx, eax
movd eax, xmm2
mov dword [esp + 0x90], ecx
neg eax
movd edx, xmm4
neg edx
add eax, edx
lea edx, [ecx + eax]
mov dword [esp + 0x70], eax
mov eax, dword [edi]
mov dword [esp + 0x58], edx
shl eax, 2
lea ecx, [eax + edx*4]
push ecx
push dword [esi]
call fcn.101bcb76
mov edx, dword [esp + 0x60]
mov dword [esi], eax
mov eax, dword [edi]
shl eax, 2
lea ecx, [eax + edx*4]
mov eax, dword [ebp + 0x54]
push ecx
push dword [eax]
call fcn.101bcb76
mov edx, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x60]
mov dword [edx], eax
mov eax, dword [edi]
add eax, dword [esp + 0x68]
push eax
push dword [ecx]
call fcn.101bcb76
mov edx, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x5c]
mov dword [edx], eax
mov eax, dword [esp + 0x70]
add eax, dword [edi]
shl eax, 3
push eax
push dword [ecx]
call fcn.101bcb76
add esp, 0x20
cmp dword [esp + 0x90], 0
mov edx, dword [ebp + 0x5c]
mov dword [edx], eax
jle 0x1008ec57
mov dword [esp + 0x50], ebx
xor eax, eax
mov ebx, eax
push 0x20
call fcn.101bcde0
pop ecx
movsd xmm0, qword [0x101e52c0]
movsd xmm1, qword [0x101e52d8]
mov ecx, dword [edi]
mov edx, dword [esi]
lea edx, [edx + ecx*4]
mov dword [edx + ebx*4], eax
mov edx, dword [esp + 0x74]
mov ecx, dword [edx]
mov eax, dword [edi]
mov edx, dword [esi]
lea edx, [edx + eax*4]
mov eax, dword [ebp + 0x48]
mov edx, dword [edx + ebx*4]
mov ecx, dword [eax + ecx*4]
mov dword [edx + 8], ecx
mov ecx, dword [edi]
mov edx, dword [esi]
lea edx, [edx + ecx*4]
mov ecx, dword [edx + ebx*4]
mov edx, dword [esp + 0x74]
movsd qword [ecx], xmm0
mov edx, dword [edx + 4]
mov ecx, dword [edi]
mov esi, dword [esi]
mov edx, dword [eax + edx*4]
lea esi, [esi + ecx*4]
mov ecx, dword [esi + ebx*4]
mov esi, dword [ebp + 0x50]
mov dword [ecx + 0x18], edx
mov ecx, dword [edi]
mov edx, dword [esi]
lea edx, [edx + ecx*4]
mov edx, dword [edx + ebx*4]
movsd qword [edx + 0x10], xmm1
mov edx, dword [ebp + 0x54]
mov ecx, dword [edi]
mov edx, dword [edx]
lea edx, [edx + ecx*4]
mov dword [edx + ebx*4], 2
inc ebx
cmp ebx, dword [esp + 0x90]
jl 0x1008ebc2
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x74]
movsd xmm0, qword [eax + 8]
movsd xmm1, qword [eax + 0x10]
ucomisd xmm0, xmm1
jp 0x1008ec71
je 0x1008fa15
comisd xmm0, xmmword [0x101e52b0]
jbe 0x1008eccc
mov ecx, dword [ebp + 0x60]
mov eax, dword [ecx]
mov dword [esp + 0x50], ebx
mov ebx, dword [edi]
mov byte [ebx + eax], 0x47
mov eax, dword [esp + 0x74]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x6c]
movsd xmm0, qword [eax + 8]
shl edx, 4
shl ecx, 4
subsd xmm0, qword [ecx + ebx]
addsd xmm0, qword [edx + ebx]
mov ecx, dword [esp + 0x68]
subsd xmm0, qword [edx + ecx]
mov ecx, dword [edi]
mov edx, dword [ebp + 0x5c]
mov ebx, dword [esp + 0x50]
mov edx, dword [edx]
movsd qword [edx + ecx*8], xmm0
inc dword [edi]
movsd xmm1, qword [eax + 0x10]
movsd xmm0, qword [0x101e52b8]
comisd xmm0, xmm1
jbe 0x1008ed1c
mov ecx, dword [ebp + 0x60]
mov edx, dword [ecx]
mov ecx, eax
mov eax, dword [edi]
mov byte [eax + edx], 0x4c
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
movsd xmm0, qword [ecx + 0x10]
mov ecx, dword [esp + 0x6c]
shl eax, 4
shl edx, 4
subsd xmm0, qword [edx + ecx]
addsd xmm0, qword [ecx + eax]
mov edx, dword [esp + 0x68]
subsd xmm0, qword [eax + edx]
mov edx, dword [edi]
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax]
movsd qword [eax + edx*8], xmm0
inc dword [edi]
cmp dword [esp + 0x70], 0
jle 0x1008edc1
mov dword [esp + 0x50], ebx
xor eax, eax
mov ebx, eax
push 0x20
call fcn.101bcde0
pop ecx
movsd xmm0, qword [0x101e52c0]
movsd xmm1, qword [0x101e52d8]
mov ecx, dword [edi]
mov edx, dword [esi]
lea edx, [edx + ecx*4]
mov dword [edx + ebx*4], eax
mov edx, dword [esp + 0x74]
mov ecx, dword [edx]
mov eax, dword [edi]
mov edx, dword [esi]
lea edx, [edx + eax*4]
mov eax, dword [ebp + 0x4c]
mov edx, dword [edx + ebx*4]
mov ecx, dword [eax + ecx*4]
mov dword [edx + 8], ecx
mov ecx, dword [edi]
mov edx, dword [esi]
lea edx, [edx + ecx*4]
mov ecx, dword [edx + ebx*4]
mov edx, dword [esp + 0x74]
movsd qword [ecx], xmm0
mov edx, dword [edx + 4]
mov ecx, dword [edi]
mov esi, dword [esi]
mov edx, dword [eax + edx*4]
lea esi, [esi + ecx*4]
mov ecx, dword [esi + ebx*4]
mov esi, dword [ebp + 0x50]
mov dword [ecx + 0x18], edx
mov ecx, dword [edi]
mov edx, dword [esi]
lea edx, [edx + ecx*4]
mov edx, dword [edx + ebx*4]
movsd qword [edx + 0x10], xmm1
mov edx, dword [ebp + 0x54]
mov ecx, dword [edi]
mov edx, dword [edx]
lea edx, [edx + ecx*4]
mov dword [edx + ebx*4], 2
inc ebx
cmp ebx, dword [esp + 0x70]
jl 0x1008ed2f
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x74]
movsd xmm0, qword [eax + 0x18]
movsd xmm1, qword [eax + 0x20]
ucomisd xmm0, xmm1
jp 0x1008eddb
je 0x1008f9cb
comisd xmm0, xmmword [0x101e52b0]
jbe 0x1008ee39
mov ecx, dword [ebp + 0x60]
mov eax, dword [ecx]
mov dword [esp + 0x50], ebx
mov ebx, dword [edi]
mov byte [ebx + eax], 0x47
mov eax, dword [esp + 0x74]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov ebx, dword [esp + 0x6c]
movsd xmm0, qword [eax + 0x18]
shl edx, 4
shl ecx, 4
subsd xmm0, qword [ecx + ebx + 8]
addsd xmm0, qword [edx + ebx + 8]
mov ecx, dword [esp + 0x68]
subsd xmm0, qword [edx + ecx + 8]
mov ecx, dword [edi]
mov edx, dword [ebp + 0x5c]
mov ebx, dword [esp + 0x50]
mov edx, dword [edx]
movsd qword [edx + ecx*8], xmm0
inc dword [edi]
movsd xmm1, qword [eax + 0x20]
movsd xmm0, qword [0x101e52b8]
comisd xmm0, xmm1
jbe case.0x1008eade.4
mov ecx, dword [ebp + 0x60]
mov edx, dword [ecx]
mov ecx, eax
mov eax, dword [edi]
mov byte [eax + edx], 0x4c
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
movsd xmm0, qword [ecx + 0x20]
mov ecx, dword [esp + 0x6c]
shl eax, 4
shl edx, 4
subsd xmm0, qword [edx + ecx + 8]
addsd xmm0, qword [eax + ecx + 8]
mov edx, dword [esp + 0x68]
subsd xmm0, qword [eax + edx + 8]
mov edx, dword [edi]
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax]
movsd qword [eax + edx*8], xmm0
inc dword [edi]
jmp case.0x1008eade.4
mov eax, dword [ebp + 0x38]
mov edx, dword [eax + ebx*8 + 4]
mov eax, dword [edx + 4]
mov ecx, dword [edi]
shl ecx, 2
mov dword [esp + 0x94], edx
lea edx, [ecx + eax*8 - 8]
push edx
push dword [esi]
call fcn.101bcb76
mov dword [esi], eax
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 4]
mov edx, dword [edi]
shl edx, 2
lea eax, [edx + ecx*8 - 8]
mov edx, dword [ebp + 0x54]
push eax
push dword [edx]
call fcn.101bcb76
mov edx, dword [ebp + 0x54]
mov dword [edx], eax
mov eax, dword [esp + 0xa4]
mov eax, dword [eax + 4]
mov ecx, dword [edi]
lea edx, [ecx + eax*2 - 2]
mov ecx, dword [ebp + 0x60]
push edx
push dword [ecx]
call fcn.101bcb76
mov edx, dword [ebp + 0x60]
mov dword [edx], eax
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + 4]
mov eax, dword [edi]
shl ecx, 4
lea edx, [ecx + eax*8 - 0x10]
mov ecx, dword [ebp + 0x5c]
push edx
push dword [ecx]
call fcn.101bcb76
add esp, 0x20
mov edx, dword [ebp + 0x5c]
mov dword [edx], eax
mov eax, dword [esp + 0x94]
cmp dword [eax + 4], 1
jle case.0x1008eade.4
mov dword [esp + 0x50], ebx
mov eax, 1
mov dword [esp + 0x7c], eax
push 0x20
call fcn.101bcde0
mov ecx, dword [esp + 0x98]
movsd xmm0, qword [0x101e52d8]
movsd xmm1, qword [0x101e52c0]
mov edx, dword [edi]
mov ebx, dword [esi]
mov dword [ebx + edx*4], eax
mov eax, dword [ecx]
mov edx, dword [eax]
mov ebx, dword [edi]
mov eax, dword [esi]
mov ebx, dword [eax + ebx*4]
mov eax, dword [ebp + 0x48]
mov edx, dword [eax + edx*4]
mov dword [ebx + 8], edx
mov edx, dword [edi]
mov ebx, dword [esi]
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0x80]
movsd qword [ebx], xmm0
mov ecx, dword [ecx]
mov ecx, dword [ecx + edx*4]
mov edx, dword [edi]
mov ebx, dword [esi]
mov ebx, dword [ebx + edx*4]
mov eax, dword [eax + ecx*4]
mov dword [ebx + 0x18], eax
mov edx, dword [edi]
mov ecx, dword [esi]
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebp + 0x54]
movsd qword [eax + 0x10], xmm1
mov edx, dword [edi]
mov eax, dword [ebp + 0x60]
mov ebx, dword [ecx]
mov dword [ebx + edx*4], 2
mov ebx, dword [eax]
mov edx, dword [esp + 0x98]
mov ecx, dword [edi]
mov byte [ecx + ebx], 0x45
mov eax, dword [edx]
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x7c]
push 0x20
mov edx, dword [eax]
mov eax, dword [eax + ecx*4]
shl edx, 4
movsd xmm2, qword [edx + ebx]
mov edx, dword [ebp + 0x5c]
mov ecx, dword [edx]
shl eax, 4
subsd xmm2, qword [ebx + eax]
mov ebx, dword [edi]
movsd qword [ecx + ebx*8], xmm2
call fcn.101bcde0
add esp, 8
mov ebx, dword [esp + 0x94]
movsd xmm0, qword [0x101e52d8]
movsd xmm1, qword [0x101e52c0]
mov ecx, dword [edi]
mov edx, dword [esi]
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebx]
mov edx, dword [eax]
mov eax, dword [edi]
mov ecx, dword [esi]
mov ecx, dword [ecx + eax*4 + 4]
mov eax, dword [ebp + 0x4c]
mov edx, dword [eax + edx*4]
mov dword [ecx + 8], edx
mov edx, dword [edi]
mov ecx, dword [esi]
mov ecx, dword [ecx + edx*4 + 4]
movsd qword [ecx], xmm0
mov ecx, dword [esp + 0x7c]
mov ebx, dword [ebx]
mov ebx, dword [ebx + ecx*4]
mov ecx, dword [edi]
mov edx, dword [esi]
mov edx, dword [edx + ecx*4 + 4]
mov eax, dword [eax + ebx*4]
mov dword [edx + 0x18], eax
mov ebx, dword [edi]
mov esi, dword [esi]
mov ecx, dword [esi + ebx*4 + 4]
mov esi, dword [ebp + 0x54]
movsd qword [ecx + 0x10], xmm1
mov eax, dword [edi]
mov ecx, dword [ebp + 0x60]
mov edx, dword [esi]
mov dword [edx + eax*4 + 4], 2
mov edx, dword [ecx]
mov ecx, dword [esp + 0x7c]
mov esi, dword [edi]
mov byte [esi + edx + 1], 0x45
mov esi, dword [esp + 0x94]
mov ebx, dword [esi]
mov edx, dword [ebx]
mov eax, dword [ebx + ecx*4]
shl edx, 4
shl eax, 4
mov ebx, dword [esp + 0x78]
movsd xmm2, qword [edx + ebx + 8]
subsd xmm2, qword [eax + ebx + 8]
mov eax, dword [edi]
inc ecx
mov edx, dword [ebp + 0x5c]
mov edx, dword [edx]
movsd qword [edx + eax*8 + 8], xmm2
mov dword [esp + 0x7c], ecx
add dword [edi], 2
cmp ecx, dword [esi + 4]
mov esi, dword [ebp + 0x50]
jl 0x1008ef40
mov ebx, dword [esp + 0x50]
jmp case.0x1008eade.4
mov eax, dword [ebp + 0x38]
mov edx, dword [eax + ebx*8 + 4]
movsd xmm1, qword [edx + 8]
movsd xmm2, qword [edx + 0x10]
mov dword [esp + 0x84], edx
ucomisd xmm1, xmm2
jp 0x1008f0f2
je 0x1008f10a
movsd xmm0, qword [0x101e52b0]
comisd xmm0, xmm1
ja 0x1008f10a
comisd xmm2, xmmword [0x101e52b8]
jbe 0x1008f117
mov dword [esp + 0x80], 1
jmp 0x1008f122
mov dword [esp + 0x80], 2
mov edx, dword [esp + 0x80]
mov eax, dword [edi]
shl eax, 2
lea ecx, [eax + edx*4]
push ecx
push dword [esi]
call fcn.101bcb76
mov edx, dword [esp + 0x88]
mov dword [esi], eax
mov eax, dword [edi]
shl eax, 2
lea ecx, [eax + edx*4]
mov eax, dword [ebp + 0x54]
push ecx
push dword [eax]
call fcn.101bcb76
mov edx, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x60]
mov dword [edx], eax
mov eax, dword [esp + 0x90]
add eax, dword [edi]
push eax
push dword [ecx]
call fcn.101bcb76
mov edx, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x5c]
mov dword [edx], eax
mov eax, dword [esp + 0x98]
add eax, dword [edi]
shl eax, 3
push eax
push dword [ecx]
call fcn.101bcb76
add esp, 0x20
mov edx, dword [ebp + 0x5c]
mov dword [esp + 0x50], ebx
mov dword [edx], eax
xor eax, eax
mov ebx, eax
push 0x10
call fcn.101bcde0
pop ecx
movsd xmm0, qword [0x101e52d8]
mov edx, dword [edi]
mov ecx, dword [esi]
lea ecx, [ecx + edx*4]
mov edx, dword [esp + 0x84]
mov dword [ecx + ebx*4], eax
mov edx, dword [edx]
mov eax, dword [edi]
mov ecx, dword [esi]
lea ecx, [ecx + eax*4]
mov eax, dword [ecx + ebx*4]
mov ecx, dword [ebp + 0x48]
mov edx, dword [ecx + edx*4]
mov dword [eax + 8], edx
mov ecx, dword [edi]
mov edx, dword [esi]
lea edx, [edx + ecx*4]
mov edx, dword [edx + ebx*4]
movsd qword [edx], xmm0
mov edx, dword [ebp + 0x54]
mov ecx, dword [edi]
mov edx, dword [edx]
lea edx, [edx + ecx*4]
mov dword [edx + ebx*4], 1
inc ebx
cmp ebx, dword [esp + 0x80]
jl 0x1008f19a
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x84]
movsd xmm1, qword [eax + 8]
movsd xmm2, qword [eax + 0x10]
ucomisd xmm1, xmm2
jp 0x1008f21a
je 0x1008fa5c
movsd xmm0, qword [0x101e52b0]
comisd xmm0, xmm1
jbe 0x1008f25e
mov eax, dword [ebp + 0x60]
mov ecx, dword [eax]
mov eax, dword [esp + 0x84]
mov edx, dword [edi]
mov byte [edx + ecx], 0x4c
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax]
movsd xmm0, qword [eax + 0x10]
mov eax, dword [ebp + 0x5c]
shl edx, 4
subsd xmm0, qword [edx + ecx]
mov ecx, dword [edi]
mov edx, dword [eax]
movsd qword [edx + ecx*8], xmm0
jmp 0x1008f2f9
comisd xmm2, xmmword [0x101e52b8]
jbe 0x1008f29b
mov eax, dword [ebp + 0x60]
mov ecx, dword [eax]
mov eax, dword [esp + 0x84]
mov edx, dword [edi]
mov byte [edx + ecx], 0x47
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax]
movsd xmm0, qword [eax + 8]
mov eax, dword [ebp + 0x5c]
shl edx, 4
subsd xmm0, qword [edx + ecx]
mov ecx, dword [edi]
mov edx, dword [eax]
movsd qword [edx + ecx*8], xmm0
jmp 0x1008f2f9
mov eax, dword [ebp + 0x60]
mov dword [esp + 0x50], ebx
mov ebx, dword [edi]
mov esi, dword [eax]
mov byte [ebx + esi], 0x4c
mov ecx, dword [eax]
mov edx, dword [edi]
mov eax, dword [ebp + 0x5c]
mov byte [edx + ecx + 1], 0x47
mov esi, dword [eax]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x6c]
mov ebx, dword [ecx]
movsd xmm0, qword [ecx + 0x10]
shl ebx, 4
subsd xmm0, qword [ebx + edx]
mov ebx, dword [edi]
movsd qword [esi + ebx*8], xmm0
mov esi, dword [ecx]
mov ebx, dword [esp + 0x50]
movsd xmm1, qword [ecx + 8]
mov eax, dword [eax]
shl esi, 4
subsd xmm1, qword [esi + edx]
mov esi, dword [ebp + 0x50]
mov edx, dword [edi]
movsd qword [eax + edx*8 + 8], xmm1
mov eax, dword [esp + 0x80]
add dword [edi], eax
jmp case.0x1008eade.4
mov eax, dword [ebp + 0x38]
mov edx, dword [eax + ebx*8 + 4]
mov ecx, dword [edi]
mov dword [esp + 0x54], edx
lea eax, [ecx*4 + 8]
push eax
push dword [esi]
call fcn.101bcb76
mov ecx, dword [ebp + 0x54]
mov dword [esi], eax
mov eax, dword [edi]
lea edx, [eax*4 + 8]
push edx
push dword [ecx]
call fcn.101bcb76
mov edx, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x60]
mov dword [edx], eax
mov eax, dword [edi]
add eax, 2
push eax
push dword [ecx]
call fcn.101bcb76
mov edx, dword [ebp + 0x60]
mov dword [edx], eax
mov eax, dword [edi]
lea ecx, [eax*8 + 0x10]
mov eax, dword [ebp + 0x5c]
push ecx
push dword [eax]
call fcn.101bcb76
mov edx, dword [ebp + 0x5c]
push 0x20
mov dword [edx], eax
call fcn.101bcde0
mov edx, dword [esp + 0x78]
movsd xmm0, qword [0x101e52d8]
movsd xmm1, qword [0x101e52c0]
mov ecx, dword [esi]
mov dword [esp + 0x74], ebx
mov ebx, dword [edi]
mov dword [ecx + ebx*4], eax
mov ebx, dword [edx]
mov ecx, dword [edi]
mov eax, dword [esi]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp + 0x48]
mov ebx, dword [eax + ebx*4]
mov dword [ecx + 8], ebx
mov ebx, dword [edi]
mov ecx, dword [esi]
mov ecx, dword [ecx + ebx*4]
movsd qword [ecx], xmm0
mov edx, dword [edx + 4]
mov ecx, dword [edi]
mov ebx, dword [esi]
mov ebx, dword [ebx + ecx*4]
mov ecx, dword [ebp + 0x54]
mov eax, dword [eax + edx*4]
mov dword [ebx + 0x18], eax
mov eax, dword [edi]
mov edx, dword [esi]
mov edx, dword [edx + eax*4]
movsd qword [edx + 0x10], xmm1
mov eax, dword [edi]
mov edx, dword [ebp + 0x60]
mov ebx, dword [ecx]
mov dword [ebx + eax*4], 2
mov ebx, dword [edx]
mov eax, dword [esp + 0x78]
mov ecx, dword [edi]
mov byte [ecx + ebx], 0x45
mov edx, dword [eax]
mov ecx, dword [esp + 0x9c]
mov ebx, dword [ebp + 0x5c]
push 0x20
mov eax, dword [eax + 4]
mov ebx, dword [ebx]
shl edx, 4
movsd xmm2, qword [edx + ecx]
shl eax, 4
subsd xmm2, qword [eax + ecx]
mov eax, dword [edi]
movsd qword [ebx + eax*8], xmm2
mov ebx, dword [esp + 0x78]
call fcn.101bcde0
add esp, 0x28
mov edx, dword [esp + 0x54]
movsd xmm0, qword [0x101e52d8]
mov ecx, dword [esi]
mov dword [esp + 0x50], ebx
mov ebx, dword [edi]
mov dword [ecx + ebx*4 + 4], eax
mov ebx, dword [edx]
mov ecx, dword [edi]
mov eax, dword [esi]
mov ecx, dword [eax + ecx*4 + 4]
mov eax, dword [ebp + 0x4c]
mov ebx, dword [eax + ebx*4]
mov dword [ecx + 8], ebx
mov ebx, dword [edi]
mov ecx, dword [esi]
mov ecx, dword [ecx + ebx*4 + 4]
movsd qword [ecx], xmm0
mov edx, dword [edx + 4]
mov ecx, dword [edi]
mov ebx, dword [esi]
mov ebx, dword [ebx + ecx*4 + 4]
mov ecx, dword [ebp + 0x54]
mov eax, dword [eax + edx*4]
mov dword [ebx + 0x18], eax
mov eax, dword [edi]
mov edx, dword [esi]
mov edx, dword [edx + eax*4 + 4]
movsd qword [edx + 0x10], xmm0
mov edx, dword [ebp + 0x60]
mov eax, dword [edi]
mov ebx, dword [ecx]
mov dword [ebx + eax*4 + 4], 2
mov eax, dword [esp + 0x54]
mov ebx, dword [edx]
mov ecx, dword [edi]
mov edx, dword [ebp + 0x5c]
mov byte [ecx + ebx + 1], 0x45
movsd xmm1, qword [eax + 8]
mulsd xmm1, qword [0x101e52c8]
mov ebx, dword [edi]
mov ecx, dword [edx]
movsd qword [ecx + ebx*8 + 8], xmm1
mov ebx, dword [esp + 0x50]
add dword [edi], 2
jmp case.0x1008eade.4
mov eax, dword [ebp + 0x38]
mov edx, dword [eax + ebx*8 + 4]
movsd xmm1, qword [edx + 8]
movsd xmm2, qword [edx + 0x10]
mov dword [esp + 0x8c], edx
ucomisd xmm1, xmm2
jp 0x1008f4d8
je 0x1008f4f0
movsd xmm0, qword [0x101e52b0]
comisd xmm0, xmm1
ja 0x1008f4f0
comisd xmm2, xmmword [0x101e52b8]
jbe 0x1008f4fd
mov dword [esp + 0x88], 1
jmp 0x1008f508
mov dword [esp + 0x88], 2
mov edx, dword [esp + 0x88]
mov eax, dword [edi]
shl eax, 2
lea ecx, [eax + edx*4]
push ecx
push dword [esi]
call fcn.101bcb76
mov edx, dword [esp + 0x90]
mov dword [esi], eax
mov eax, dword [edi]
shl eax, 2
lea ecx, [eax + edx*4]
mov eax, dword [ebp + 0x54]
push ecx
push dword [eax]
call fcn.101bcb76
mov edx, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x60]
mov dword [edx], eax
mov eax, dword [esp + 0x98]
add eax, dword [edi]
push eax
push dword [ecx]
call fcn.101bcb76
mov edx, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x5c]
mov dword [edx], eax
mov eax, dword [esp + 0xa0]
add eax, dword [edi]
shl eax, 3
push eax
push dword [ecx]
call fcn.101bcb76
add esp, 0x20
mov edx, dword [ebp + 0x5c]
mov dword [esp + 0x50], ebx
mov dword [edx], eax
xor eax, eax
mov ebx, eax
push 0x10
call fcn.101bcde0
pop ecx
movsd xmm0, qword [0x101e52d8]
mov edx, dword [edi]
mov ecx, dword [esi]
lea ecx, [ecx + edx*4]
mov edx, dword [esp + 0x8c]
mov dword [ecx + ebx*4], eax
mov edx, dword [edx]
mov eax, dword [edi]
mov ecx, dword [esi]
lea ecx, [ecx + eax*4]
mov eax, dword [ecx + ebx*4]
mov ecx, dword [ebp + 0x4c]
mov edx, dword [ecx + edx*4]
mov dword [eax + 8], edx
mov ecx, dword [edi]
mov edx, dword [esi]
lea edx, [edx + ecx*4]
mov edx, dword [edx + ebx*4]
movsd qword [edx], xmm0
mov edx, dword [ebp + 0x54]
mov ecx, dword [edi]
mov edx, dword [edx]
lea edx, [edx + ecx*4]
mov dword [edx + ebx*4], 1
inc ebx
cmp ebx, dword [esp + 0x88]
jl 0x1008f580
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x8c]
movsd xmm1, qword [eax + 8]
movsd xmm2, qword [eax + 0x10]
ucomisd xmm1, xmm2
jp 0x1008f600
je 0x1008fa92
movsd xmm0, qword [0x101e52b0]
comisd xmm0, xmm1
jbe 0x1008f645
mov eax, dword [ebp + 0x60]
mov ecx, dword [eax]
mov eax, dword [esp + 0x8c]
mov edx, dword [edi]
mov byte [edx + ecx], 0x4c
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax]
movsd xmm0, qword [eax + 0x10]
mov eax, dword [ebp + 0x5c]
shl edx, 4
subsd xmm0, qword [edx + ecx + 8]
mov ecx, dword [edi]
mov edx, dword [eax]
movsd qword [edx + ecx*8], xmm0
jmp 0x1008f6e3
comisd xmm2, xmmword [0x101e52b8]
jbe 0x1008f683
mov eax, dword [ebp + 0x60]
mov ecx, dword [eax]
mov eax, dword [esp + 0x8c]
mov edx, dword [edi]
mov byte [edx + ecx], 0x47
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax]
movsd xmm0, qword [eax + 8]
mov eax, dword [ebp + 0x5c]
shl edx, 4
subsd xmm0, qword [edx + ecx + 8]
mov ecx, dword [edi]
mov edx, dword [eax]
movsd qword [edx + ecx*8], xmm0
jmp 0x1008f6e3
mov eax, dword [ebp + 0x60]
mov dword [esp + 0x50], ebx
mov ebx, dword [edi]
mov esi, dword [eax]
mov byte [ebx + esi], 0x4c
mov ecx, dword [eax]
mov edx, dword [edi]
mov eax, dword [ebp + 0x5c]
mov byte [edx + ecx + 1], 0x47
mov esi, dword [eax]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x6c]
mov ebx, dword [ecx]
movsd xmm0, qword [ecx + 0x10]
shl ebx, 4
subsd xmm0, qword [ebx + edx + 8]
mov ebx, dword [edi]
movsd qword [esi + ebx*8], xmm0
mov esi, dword [ecx]
mov ebx, dword [esp + 0x50]
movsd xmm1, qword [ecx + 8]
mov eax, dword [eax]
shl esi, 4
subsd xmm1, qword [esi + edx + 8]
mov esi, dword [ebp + 0x50]
mov edx, dword [edi]
movsd qword [eax + edx*8 + 8], xmm1
mov eax, dword [esp + 0x88]
add dword [edi], eax
inc ebx
cmp ebx, dword [ebp + 0x3c]
jl 0x1008eac7
movsd xmm0, qword [esp + 0x60]
mov esi, dword [ebp + 0x28]
mov edi, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x34]
test ebx, ebx
je 0x1008f9ad
mov eax, esi
imul eax, ebx
shl eax, 3
push eax
movsd qword [esp + 0x64], xmm0
call fcn.101bcde0
movsd xmm0, qword [esp + 0x64]
add esp, 4
xor ecx, ecx
test esi, esi
jle 0x1008f9a6
mulsd xmm0, qword [0x101e52d0]
xor edx, edx
test ebx, ebx
jle 0x1008f799
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x30]
xor edi, edi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x54], edx
mov ebx, edi
mov edi, dword [eax + ebx*4]
mov edx, dword [edi + 0xc]
mov edx, dword [edx]
mov edi, dword [edi]
shl edx, 4
movsd xmm1, qword [edi + edx]
comisd xmm1, xmm0
ja 0x1008f779
mov edx, dword [esp + 0x54]
mov dword [esi + ecx*8], edx
mov dword [esi + ecx*8 + 4], ebx
inc ecx
inc ebx
cmp ebx, dword [ebp + 0x34]
jl 0x1008f755
mov esi, esi
mov edx, dword [esp + 0x54]
mov esi, dword [ebp + 0x28]
xor edi, edi
inc edx
cmp edx, esi
jl 0x1008f74b
mov eax, dword [esp + 0x50]
mov ebx, dword [ebp + 0x34]
mov edi, dword [ebp + 0x24]
test ecx, ecx
jle 0x1008f9a6
mov ebx, dword [ebp + 0x58]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x50], eax
xor edx, edx
mov dword [esp + 0x64], edx
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esi + edi*8]
mov eax, dword [esi + edi*8 + 4]
mov esi, dword [esp + 0x68]
mov edi, dword [ebp + 0x28]
mov dword [esp + 0x54], 0
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], eax
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x14]
lea esi, [esp + 0x54]
mov dword [esp + 0x1c], esi
mov esi, dword [ebp + 0x18]
lea edi, [esp + 0x58]
mov dword [esp + 0x20], edi
mov edi, dword [ebp + 0x1c]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x28], esi
mov esi, dword [ebp + 0x40]
mov dword [esp + 0x2c], edi
mov edi, dword [ebp + 0x44]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x34], esi
mov esi, dword [ebp + 0x30]
mov dword [esp + 0x38], edi
mov edi, dword [ebp + 0x34]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], esi
mov ecx, 3
mov dword [esp + 0x44], edi
call fcn.1008b01c
mov esi, dword [esp + 0x58]
mov ecx, dword [ebp + 0x50]
mov eax, dword [ebx]
shl eax, 2
lea edx, [eax + esi*4 - 4]
push edx
push dword [ecx]
call fcn.101bcb76
mov edx, dword [ebp + 0x50]
mov edi, dword [ebp + 0x54]
mov dword [edx], eax
mov eax, dword [ebx]
shl eax, 2
lea ecx, [eax + esi*4 - 4]
push ecx
push dword [edi]
call fcn.101bcb76
mov edx, dword [ebp + 0x54]
mov edi, dword [ebp + 0x60]
mov dword [edx], eax
mov eax, dword [ebx]
lea ecx, [esi + eax - 1]
push ecx
push dword [edi]
call fcn.101bcb76
mov edx, dword [ebp + 0x60]
mov edi, dword [ebp + 0x5c]
mov dword [edx], eax
mov eax, dword [ebx]
add eax, esi
lea ecx, [eax*8 - 8]
push ecx
push dword [edi]
call fcn.101bcb76
add esp, 0x20
mov edx, dword [ebp + 0x5c]
mov dword [edx], eax
mov edi, dword [ebx]
mov edx, edi
lea ecx, [esi + edi - 1]
cmp edi, ecx
jge 0x1008f8e8
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x54]
mov ebx, dword [eax]
xor edi, edi
mov dword [ebx + edx*4], edi
mov ebx, dword [ecx]
mov dword [ebx + edx*4], edi
mov edi, dword [ebp + 0x58]
mov edi, dword [edi]
inc edx
lea ebx, [esi + edi - 1]
cmp edx, ebx
jl 0x1008f8c6
mov ebx, dword [ebp + 0x58]
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x54]
mov edx, dword [edx]
mov ecx, dword [ecx]
mov ebx, dword [ebp + 0x60]
mov ebx, dword [ebx]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebx
shl ebx, 4
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x54]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], esi
movsd xmm0, qword [0x10210c48]
lea esi, [esp + 0x28]
movsd qword [esi], xmm0
movsd xmm1, qword [0x10210c50]
movsd qword [esi + 8], xmm1
lea esi, [esp + 0x38]
mov eax, dword [esp + 0x78]
movsd xmm2, qword [ebx + eax]
movsd qword [esi], xmm2
movsd xmm3, qword [ebx + eax + 8]
mov ebx, dword [ebp + 0x28]
movsd qword [esi + 8], xmm3
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x48], ebx
mov ebx, dword [ebp + 0x58]
mov dword [esp + 0x4c], 3
call fcn.1008e55c
mov eax, dword [esp + 0x58]
push dword [esp + 0x54]
mov edx, dword [ebx]
lea ecx, [eax + edx - 1]
mov dword [ebx], ecx
call fcn.101bceaa
pop ecx
mov eax, dword [esp + 0x64]
inc eax
cmp eax, dword [esp + 0x60]
mov dword [esp + 0x64], eax
jl 0x1008f7b2
mov eax, dword [esp + 0x50]
mov edi, dword [ebp + 0x24]
push eax
call fcn.101bceaa
pop ecx
test edi, edi
je 0x1008fac9
xor eax, eax
add esp, 0xa4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor eax, eax
jmp 0x1008ea70
mov ecx, dword [ebp + 0x60]
mov edx, dword [ecx]
mov ecx, eax
mov eax, dword [edi]
mov byte [eax + edx], 0x45
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
movsd xmm0, qword [ecx + 0x18]
mov ecx, dword [esp + 0x6c]
shl eax, 4
shl edx, 4
subsd xmm0, qword [edx + ecx + 8]
addsd xmm0, qword [eax + ecx + 8]
mov edx, dword [esp + 0x68]
subsd xmm0, qword [eax + edx + 8]
mov edx, dword [edi]
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax]
movsd qword [eax + edx*8], xmm0
inc dword [edi]
jmp case.0x1008eade.4
mov ecx, dword [ebp + 0x60]
mov edx, dword [ecx]
mov ecx, eax
mov eax, dword [edi]
mov byte [eax + edx], 0x45
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
movsd xmm0, qword [ecx + 8]
mov ecx, dword [esp + 0x6c]
shl eax, 4
shl edx, 4
subsd xmm0, qword [edx + ecx]
addsd xmm0, qword [eax + ecx]
mov edx, dword [esp + 0x68]
subsd xmm0, qword [eax + edx]
mov edx, dword [edi]
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax]
movsd qword [eax + edx*8], xmm0
inc dword [edi]
jmp 0x1008ed1c
mov eax, dword [ebp + 0x60]
mov ecx, dword [eax]
mov eax, dword [esp + 0x84]
mov edx, dword [edi]
mov byte [edx + ecx], 0x45
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax]
movsd xmm0, qword [eax + 8]
mov eax, dword [ebp + 0x5c]
shl edx, 4
subsd xmm0, qword [edx + ecx]
mov ecx, dword [edi]
mov edx, dword [eax]
movsd qword [edx + ecx*8], xmm0
jmp 0x1008f2f9
mov eax, dword [ebp + 0x60]
mov ecx, dword [eax]
mov eax, dword [esp + 0x8c]
mov edx, dword [edi]
mov byte [edx + ecx], 0x45
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax]
movsd xmm0, qword [eax + 8]
mov eax, dword [ebp + 0x5c]
shl edx, 4
subsd xmm0, qword [edx + ecx + 8]
mov ecx, dword [edi]
mov edx, dword [eax]
movsd qword [edx + ecx*8], xmm0
jmp 0x1008f6e3
push dword [esp + 0x6c]
call fcn.101bceaa
pop ecx
jmp 0x1008f9b5
push 0x10
push esi
call fcn.101beb7a
add esp, 8
mov dword [esp + 0x6c], eax
test esi, esi
jle 0x1008fba1
cmp esi, 8
jl 0x1008fbaa
mov ebx, eax
mov eax, esi
and eax, 7
neg eax
add eax, esi
xor edx, edx
pxor xmm0, xmm0
mov ecx, edx
shl ecx, 4
movlpd qword [ecx + ebx + 8], xmm0
movhpd qword [ecx + ebx + 0x18], xmm0
movlpd qword [ecx + ebx], xmm0
movhpd qword [ecx + ebx + 0x10], xmm0
movlpd qword [ecx + ebx + 0x28], xmm0
movhpd qword [ecx + ebx + 0x38], xmm0
movlpd qword [ecx + ebx + 0x20], xmm0
movhpd qword [ecx + ebx + 0x30], xmm0
movlpd qword [ecx + ebx + 0x48], xmm0
movhpd qword [ecx + ebx + 0x58], xmm0
movlpd qword [ecx + ebx + 0x40], xmm0
movhpd qword [ecx + ebx + 0x50], xmm0
movlpd qword [ecx + ebx + 0x68], xmm0
movhpd qword [ecx + ebx + 0x78], xmm0
movlpd qword [ecx + ebx + 0x60], xmm0
movhpd qword [ecx + ebx + 0x70], xmm0
add edx, 8
cmp edx, eax
jb 0x1008fb09
mov edx, eax
shl edx, 4
cmp eax, esi
pxor xmm0, xmm0
jae 0x1008e9eb
mov ecx, dword [esp + 0x6c]
movsd qword [edx + ecx + 8], xmm0
movsd qword [edx + ecx], xmm0
inc eax
add edx, 0x10
cmp eax, esi
jb 0x1008fb89
jmp 0x1008e9eb
pxor xmm0, xmm0
jmp 0x1008ea8b
xor eax, eax
jmp 0x1008fb74