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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x114
mov eax, dword [0x102cf440]
xor eax, esp
mov dword [esp + 0x110], eax
mov edx, dword [ebp + 8]
xorps xmm0, xmm0
mov ecx, dword [ebp + 0xc]
test ecx, ecx
push ebx
push esi
mov esi, dword [edx + 0xc]
mov ebx, dword [edx]
push edi
mov dword [esp + 0x8c], edx
mov edi, 0x1016c9d0
lea eax, [esi + 1]
mov dword [esp + 0x54], ecx
mov dword [edx + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x7c], eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x2c], eax
mov eax, 0x1016ca70
cmovne edi, eax
mov dword [esp + 0x20], ebx
shl edx, 0x10
mov eax, 0x10000
shl esi, 0x10
add edx, 0x8000
add esi, 0x8000
mov dword [esp + 0xe0], edx
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe8], eax
mov ecx, dword [ebx + 0x30]
mov dword [esp + 0x28], edi
mov dword [esp + 0x60], edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], eax
movups xmmword [esp + 0x10c], xmm0
test ecx, ecx
je 0x1016a7e3
lea eax, [esp + 0xe0]
push eax
push ecx
call sym.project.dll_pixman_transform_point_3d
add esp, 8
test eax, eax
jne 0x1016a7a9
mov eax, dword [esp + 0x2c]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x110]
xor ecx, esp
call fcn.101eafcd
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x30]
mov ecx, dword [esp + 0xe8]
mov esi, dword [esp + 0xe4]
mov dword [esp + 0x3c], ecx
mov edx, dword [eax]
mov dword [esp + 0x70], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x74], edx
mov edx, dword [eax + 0x18]
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x78], edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x60], eax
jmp 0x1016a7f9
mov dword [esp + 0x70], eax
mov ecx, eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
xor eax, eax
mov dword [esp + 0x40], eax
cmp dword [esp + 0x7c], eax
jle 0x1016b97e
cmp dword [esp + 0x54], eax
mov edx, 4
movss xmm4, dword [0x1027de14]
xorps xmm2, xmm2
mov dword [esp + 0x34], 0x10
cmovne edx, dword [esp + 0x34]
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x2c]
cmp dword [ebp + 0x10], 0
mov ebx, dword [esp + 0x20]
je 0x1016a857
cmp dword [esp + 0x54], 0
jne 0x1016a8a9
mov ebx, dword [ebp + 0x10]
cmp dword [ebx + eax*4], 0
mov ebx, dword [esp + 0x20]
je 0x1016b948
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x1016a8d6
cdq
mov edi, eax
mov esi, edx
mov eax, dword [esp + 0x60]
cdq
push esi
shld edx, eax, 0x10
push edi
shl eax, 0x10
push edx
push eax
call fcn.101ec290
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
cdq
push esi
shld edx, eax, 0x10
push edi
shl eax, 0x10
push edx
push eax
call fcn.101ec290
movss xmm4, dword [0x1027de14]
mov edx, eax
mov edi, dword [esp + 0x28]
xorps xmm2, xmm2
mov ecx, dword [esp + 0x18]
jmp 0x1016a8de
mov ecx, eax
lea edx, [esp + 0x10c]
shl ecx, 4
mov esi, 0xc
add ecx, dword [ebp + 0x10]
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1016a857
add ecx, 4
add edx, 4
sub esi, 4
jae 0x1016a8c0
jmp case.default.0x1016a8ea
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x18], ecx
mov eax, dword [ebx + 0x38]
cmp eax, 6
ja case.default.0x1016a8ea
jmp dword [eax*4 + 0x1016b9a0]
mov eax, dword [ebx + 0x34]
lea esi, [ecx - 1]
lea ecx, [edx - 1]
sar esi, 0x10
sar ecx, 0x10
test eax, eax
je 0x1016a9e0
mov edi, dword [ebx + 0x70]
cmp eax, 1
jne 0x1016a949
cmp esi, edi
jl 0x1016a91a
sub esi, edi
cmp esi, edi
jge 0x1016a914
test esi, esi
jns 0x1016a924
nop
add esi, edi
js 0x1016a920
mov eax, dword [ebx + 0x74]
cmp ecx, eax
jl 0x1016a936
nop dword [eax + eax]
sub ecx, eax
cmp ecx, eax
jge 0x1016a930
test ecx, ecx
jns 0x1016a9c8
nop
add ecx, eax
js 0x1016a940
jmp 0x1016a9c8
cmp eax, 2
jne 0x1016a971
test esi, esi
jns 0x1016a956
xor esi, esi
jmp 0x1016a95e
lea eax, [edi - 1]
cmp esi, eax
cmovg esi, eax
mov eax, dword [ebx + 0x74]
test ecx, ecx
jns 0x1016a969
xor ecx, ecx
jmp 0x1016a9c8
dec eax
cmp ecx, eax
cmovg ecx, eax
jmp 0x1016a9c8
lea ebx, [edi + edi]
test esi, esi
jns 0x1016a986
not esi
mov eax, esi
cdq
idiv ebx
mov eax, ebx
sub eax, edx
dec eax
jmp 0x1016a98d
mov eax, esi
cdq
idiv ebx
mov eax, edx
mov esi, eax
cmp eax, edi
jl 0x1016a998
mov esi, ebx
sub esi, eax
dec esi
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 0x74]
lea edi, [ebx + ebx]
test ecx, ecx
jns 0x1016a9b4
not ecx
mov eax, ecx
mov ecx, edi
cdq
idiv edi
sub ecx, edx
dec ecx
jmp 0x1016a9bb
mov eax, ecx
cdq
idiv edi
mov ecx, edx
cmp ecx, ebx
mov ebx, dword [esp + 0x20]
jl 0x1016a9c8
sub edi, ecx
lea ecx, [edi - 1]
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push eax
push 0
push ecx
push esi
push ebx
call edi
add esp, 0x14
jmp 0x1016b92d
mov eax, dword [esp + 0x2c]
push eax
push 1
push ecx
push esi
push ebx
call edi
add esp, 0x14
jmp 0x1016b92d
cmp dword [esp + 0x54], 0
lea edi, [edx - 0x8000]
mov edx, dword [esp + 0x20]
lea ebx, [ecx - 0x8000]
mov esi, dword [edx + 0x74]
mov ecx, dword [edx + 0x70]
mov dword [esp + 0x14], esi
mov esi, edx
je 0x1016ae76
movzx eax, bx
sar ebx, 0x10
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, di
sar edi, 0x10
cmp dword [esi + 0x34], 0
mulss xmm0, xmm4
lea edx, [edi + 1]
mov dword [esp + 0x24], edx
movss dword [esp + 0x30], xmm0
movd xmm0, eax
lea eax, [ebx + 1]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x18], eax
mulss xmm0, xmm4
movss dword [esp + 0x34], xmm0
je 0x1016ac70
cmp dword [esi + 0x34], 1
mov esi, dword [esp + 0x14]
jne 0x1016aadf
cmp ebx, ecx
jl 0x1016aa76
nop
sub ebx, ecx
cmp ebx, ecx
jge 0x1016aa70
test ebx, ebx
jns 0x1016aa84
nop word [eax + eax]
add ebx, ecx
js 0x1016aa80
cmp edi, esi
jl 0x1016aa8e
sub edi, esi
cmp edi, esi
jge 0x1016aa88
test edi, edi
jns 0x1016aa96
add edi, esi
js 0x1016aa92
cmp eax, ecx
jl 0x1016aaaa
nop word [eax + eax]
sub eax, ecx
cmp eax, ecx
jge 0x1016aaa0
mov dword [esp + 0x18], eax
test eax, eax
jns 0x1016aab8
nop
add eax, ecx
js 0x1016aab0
mov dword [esp + 0x18], eax
cmp edx, esi
jl 0x1016aaca
nop dword [eax]
sub edx, esi
cmp edx, esi
jge 0x1016aac0
mov dword [esp + 0x24], edx
test edx, edx
jns 0x1016ac1f
add edx, esi
js 0x1016aad2
mov dword [esp + 0x24], edx
jmp 0x1016ac1f
mov esi, dword [esp + 0x20]
cmp dword [esi + 0x34], 2
mov esi, dword [esp + 0x14]
jne 0x1016ab4f
test ebx, ebx
jns 0x1016aaf6
xor ebx, ebx
dec ecx
jmp 0x1016ab01
dec ecx
mov dword [esp + 0x14], ecx
cmp ebx, ecx
jle 0x1016ab05
mov ebx, ecx
mov dword [esp + 0x14], ecx
lea ecx, [esi - 1]
test edi, edi
jns 0x1016ab10
xor edi, edi
jmp 0x1016ab16
cmp edi, ecx
jle 0x1016ab16
mov edi, ecx
test eax, eax
jns 0x1016ab1e
xor esi, esi
jmp 0x1016ab2d
cmp eax, dword [esp + 0x14]
cmovg eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov esi, eax
test edx, edx
jns 0x1016ab3e
mov dword [esp + 0x24], 0
jmp 0x1016ac23
cmp edx, ecx
jle 0x1016ac23
mov dword [esp + 0x24], ecx
jmp 0x1016ac23
lea eax, [ecx + ecx]
mov dword [esp + 0x1c], eax
test ebx, ebx
jns 0x1016ab6e
not ebx
mov eax, ebx
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov ebx, eax
sub ebx, edx
dec ebx
jmp 0x1016ab7b
mov eax, ebx
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov ebx, edx
cmp ebx, ecx
jl 0x1016ab84
sub eax, ebx
lea ebx, [eax - 1]
lea eax, [esi + esi]
mov dword [esp + 0x14], eax
test edi, edi
jns 0x1016aba3
not edi
mov eax, edi
cdq
idiv dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov edi, eax
sub edi, edx
dec edi
jmp 0x1016abb0
mov eax, edi
cdq
idiv dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov edi, edx
cmp edi, esi
jl 0x1016abb9
sub eax, edi
lea edi, [eax - 1]
mov eax, dword [esp + 0x18]
test eax, eax
jns 0x1016abd5
not eax
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
sub eax, edx
dec eax
mov dword [esp + 0x18], eax
jmp 0x1016abe0
cdq
idiv dword [esp + 0x1c]
mov eax, edx
mov dword [esp + 0x18], edx
cmp eax, ecx
jl 0x1016abef
mov ecx, dword [esp + 0x1c]
sub ecx, eax
dec ecx
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
test eax, eax
jns 0x1016ac0b
not eax
cdq
idiv ecx
mov eax, ecx
sub eax, edx
dec eax
mov dword [esp + 0x24], eax
jmp 0x1016ac14
cdq
idiv ecx
mov eax, edx
mov dword [esp + 0x24], edx
cmp eax, esi
jl 0x1016ac1f
sub ecx, eax
dec ecx
mov dword [esp + 0x24], ecx
mov esi, dword [esp + 0x18]
lea eax, [esp + 0xa0]
push eax
push 0
push edi
push ebx
push dword [esp + 0x30]
call dword [esp + 0x3c]
lea eax, [esp + 0xc4]
push eax
push 0
push edi
push esi
push dword [esp + 0x44]
call dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
lea eax, [esp + 0xe8]
push eax
push 0
push edi
push ebx
mov ebx, dword [esp + 0x58]
push ebx
call dword [esp + 0x64]
lea eax, [esp + 0x10c]
push eax
push 0
jmp 0x1016acbc
lea eax, [esp + 0xa0]
push eax
push 1
push edi
push ebx
push esi
call dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
lea eax, [esp + 0xc4]
push eax
push 1
push edi
push esi
push dword [esp + 0x44]
call dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
lea eax, [esp + 0xe8]
push eax
push 1
push edi
push ebx
mov ebx, dword [esp + 0x58]
push ebx
call dword [esp + 0x64]
lea eax, [esp + 0x10c]
push eax
push 1
push edi
mov edi, dword [esp + 0x70]
push esi
push ebx
call edi
movss xmm1, dword [0x102bc0f8]
add esp, 0x50
movss xmm5, dword [esp + 0x34]
movaps xmm0, xmm1
movss xmm2, dword [esp + 0x30]
subss xmm0, xmm5
subss xmm1, xmm2
movss xmm7, dword [esp + 0xbc]
movaps xmm4, xmm5
movss xmm6, dword [esp + 0xc8]
mulss xmm4, xmm2
mov eax, dword [esp + 0x2c]
movaps xmm3, xmm0
mulss xmm3, xmm2
movaps xmm2, xmm1
mulss xmm1, xmm0
movss xmm0, dword [esp + 0xa4]
mulss xmm2, xmm5
mulss xmm0, xmm1
movss xmm5, dword [esp + 0xd8]
movss dword [esp + 0x30], xmm4
movss dword [esp + 0x48], xmm0
movss xmm0, dword [esp + 0xb4]
mulss xmm0, xmm3
mulss xmm5, xmm4
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0xc4]
mulss xmm0, xmm2
movss dword [esp + 0x34], xmm1
movss dword [esp + 0x44], xmm3
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0xd4]
mulss xmm0, xmm4
movss xmm4, dword [esp + 0xac]
mulss xmm4, xmm1
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0xa8]
mulss xmm0, xmm1
movss xmm1, dword [esp + 0xa0]
mulss xmm1, dword [esp + 0x34]
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0xb8]
mulss xmm0, xmm3
movss dword [esp + 0x4c], xmm2
mulss xmm7, xmm3
movss dword [esp + 0x24], xmm0
movss xmm0, dword [esp + 0xb0]
mulss xmm0, dword [esp + 0x44]
addss xmm7, xmm4
movss xmm3, dword [esp + 0xcc]
mulss xmm6, xmm2
addss xmm1, xmm0
mulss xmm3, xmm2
movss xmm0, dword [esp + 0xc0]
mulss xmm0, dword [esp + 0x4c]
movss xmm2, dword [esp + 0xdc]
addss xmm7, xmm3
mulss xmm2, dword [esp + 0x30]
addss xmm1, xmm0
movss xmm0, dword [esp + 0xd0]
mulss xmm0, dword [esp + 0x30]
addss xmm7, xmm2
addss xmm1, xmm0
movss xmm0, dword [esp + 0x48]
addss xmm0, dword [esp + 0x50]
movss dword [eax], xmm1
addss xmm0, dword [esp + 0x58]
addss xmm0, dword [esp + 0x14]
movss dword [eax + 4], xmm0
movss xmm0, dword [esp + 0x1c]
addss xmm0, dword [esp + 0x24]
addss xmm0, xmm6
addss xmm0, xmm5
movss dword [eax + 8], xmm0
movss dword [eax + 0xc], xmm7
jmp 0x1016b92d
mov eax, ebx
sar ebx, 0x10
sar eax, 9
and eax, 0x7f
mov dword [esp + 0x34], eax
mov eax, edi
sar eax, 9
sar edi, 0x10
and eax, 0x7f
cmp dword [esi + 0x34], 0
mov dword [esp + 0x30], eax
lea eax, [ebx + 1]
mov dword [esp + 0x18], eax
lea edx, [edi + 1]
mov dword [esp + 0x24], edx
je 0x1016b0bd
cmp dword [esi + 0x34], 1
mov esi, dword [esp + 0x14]
jne 0x1016af2f
cmp ebx, ecx
jl 0x1016aec6
nop word [eax + eax]
sub ebx, ecx
cmp ebx, ecx
jge 0x1016aec0
test ebx, ebx
jns 0x1016aed4
nop word [eax + eax]
add ebx, ecx
js 0x1016aed0
cmp edi, esi
jl 0x1016aede
sub edi, esi
cmp edi, esi
jge 0x1016aed8
test edi, edi
jns 0x1016aee6
add edi, esi
js 0x1016aee2
cmp eax, ecx
jl 0x1016aefa
nop word [eax + eax]
sub eax, ecx
cmp eax, ecx
jge 0x1016aef0
mov dword [esp + 0x18], eax
test eax, eax
jns 0x1016af08
nop
add eax, ecx
js 0x1016af00
mov dword [esp + 0x18], eax
cmp edx, esi
jl 0x1016af1a
nop dword [eax]
sub edx, esi
cmp edx, esi
jge 0x1016af10
mov dword [esp + 0x24], edx
test edx, edx
jns 0x1016b06f
add edx, esi
js 0x1016af22
mov dword [esp + 0x24], edx
jmp 0x1016b06f
mov esi, dword [esp + 0x20]
cmp dword [esi + 0x34], 2
mov esi, dword [esp + 0x14]
jne 0x1016af9f
test ebx, ebx
jns 0x1016af46
xor ebx, ebx
dec ecx
jmp 0x1016af51
dec ecx
mov dword [esp + 0x14], ecx
cmp ebx, ecx
jle 0x1016af55
mov ebx, ecx
mov dword [esp + 0x14], ecx
lea ecx, [esi - 1]
test edi, edi
jns 0x1016af60
xor edi, edi
jmp 0x1016af66
cmp edi, ecx
jle 0x1016af66
mov edi, ecx
test eax, eax
jns 0x1016af6e
xor esi, esi
jmp 0x1016af7d
cmp eax, dword [esp + 0x14]
cmovg eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov esi, eax
test edx, edx
jns 0x1016af8e
mov dword [esp + 0x24], 0
jmp 0x1016b073
cmp edx, ecx
jle 0x1016b073
mov dword [esp + 0x24], ecx
jmp 0x1016b073
lea eax, [ecx + ecx]
mov dword [esp + 0x1c], eax
test ebx, ebx
jns 0x1016afbe
not ebx
mov eax, ebx
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov ebx, eax
sub ebx, edx
dec ebx
jmp 0x1016afcb
mov eax, ebx
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov ebx, edx
cmp ebx, ecx
jl 0x1016afd4
sub eax, ebx
lea ebx, [eax - 1]
lea eax, [esi + esi]
mov dword [esp + 0x14], eax
test edi, edi
jns 0x1016aff3
not edi
mov eax, edi
cdq
idiv dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov edi, eax
sub edi, edx
dec edi
jmp 0x1016b000
mov eax, edi
cdq
idiv dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov edi, edx
cmp edi, esi
jl 0x1016b009
sub eax, edi
lea edi, [eax - 1]
mov eax, dword [esp + 0x18]
test eax, eax
jns 0x1016b025
not eax
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
sub eax, edx
dec eax
mov dword [esp + 0x18], eax
jmp 0x1016b030
cdq
idiv dword [esp + 0x1c]
mov eax, edx
mov dword [esp + 0x18], edx
cmp eax, ecx
jl 0x1016b03f
mov ecx, dword [esp + 0x1c]
sub ecx, eax
dec ecx
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
test eax, eax
jns 0x1016b05b
not eax
cdq
idiv ecx
mov eax, ecx
sub eax, edx
dec eax
mov dword [esp + 0x24], eax
jmp 0x1016b064
cdq
idiv ecx
mov eax, edx
mov dword [esp + 0x24], edx
cmp eax, esi
jl 0x1016b06f
sub ecx, eax
dec ecx
mov dword [esp + 0x24], ecx
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x64]
push eax
push 0
push edi
push ebx
push dword [esp + 0x30]
call dword [esp + 0x3c]
lea eax, [esp + 0x80]
push eax
push 0
push edi
push esi
push dword [esp + 0x44]
call dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
lea eax, [esp + 0x84]
push eax
push 0
push edi
push ebx
mov ebx, dword [esp + 0x58]
push ebx
call dword [esp + 0x64]
lea eax, [esp + 0xa4]
push eax
push 0
jmp 0x1016b106
lea eax, [esp + 0x64]
push eax
push 1
push edi
push ebx
push esi
call dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
lea eax, [esp + 0x80]
push eax
push 1
push edi
push esi
push dword [esp + 0x44]
call dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
lea eax, [esp + 0x84]
push eax
push 1
push edi
push ebx
mov ebx, dword [esp + 0x58]
push ebx
call dword [esp + 0x64]
lea eax, [esp + 0xa4]
push eax
push 1
push edi
push esi
push ebx
call dword [esp + 0x78]
mov ecx, dword [esp + 0x84]
add esp, 0x50
mov eax, dword [esp + 0x30]
add ecx, ecx
add eax, eax
mov ebx, ecx
imul ebx, eax
shl eax, 8
mov edi, eax
shl ecx, 8
mov edx, ecx
sub edx, ebx
mov dword [esp + 0x24], ebx
mov esi, ebx
mov dword [esp + 0x14], edx
sub esi, eax
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x5c]
sub esi, ecx
mov ecx, dword [esp + 0x64]
and eax, 0xff00
sub edi, ebx
add esi, 0x10000
imul eax, edi
mov ebx, ecx
and ebx, 0xff00
movzx ecx, cl
imul ebx, esi
imul ecx, esi
add ebx, eax
mov eax, edx
and eax, 0xff00
imul eax, dword [esp + 0x14]
add ebx, eax
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x68]
mov eax, ebx
and eax, 0xff00
imul eax, dword [esp + 0x24]
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x5c]
movzx eax, al
imul eax, edi
and dword [esp + 0x1c], 0xff000000
add ecx, eax
movzx eax, dl
imul eax, dword [esp + 0x14]
shr edx, 0x10
mov dword [esp + 0x30], edx
add ecx, eax
movzx eax, bl
imul eax, dword [esp + 0x24]
shr ebx, 0x10
add ecx, eax
mov eax, dword [esp + 0x5c]
or dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x64]
shr eax, 0x10
mov dword [esp + 0x34], eax
and eax, 0xff00
shr ecx, 0x10
imul eax, edi
mov edx, ecx
and edx, 0xff00
movzx ecx, cl
imul edx, esi
add edx, eax
mov eax, dword [esp + 0x30]
and eax, 0xff00
imul eax, dword [esp + 0x14]
add edx, eax
mov eax, ebx
and eax, 0xff00
imul eax, dword [esp + 0x24]
add edx, eax
and edx, 0xff000000
imul ecx, esi
mov eax, dword [esp + 0x34]
movzx eax, al
imul eax, edi
add ecx, eax
mov eax, dword [esp + 0x30]
movzx eax, al
imul eax, dword [esp + 0x14]
add ecx, eax
movzx eax, bl
imul eax, dword [esp + 0x24]
add ecx, eax
mov eax, dword [esp + 0x1c]
and ecx, 0xff0000
shr eax, 0x10
or edx, ecx
or edx, eax
mov eax, dword [esp + 0x2c]
mov dword [eax], edx
jmp 0x1016b92d
mov eax, dword [ebx + 0x3c]
mov esi, dword [eax]
mov ecx, dword [eax + 4]
add eax, 8
cmp dword [esp + 0x54], 0
je 0x1016b63a
mov dword [esp + 0x24], ecx
mov ecx, dword [ebx + 0x34]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x50], eax
lea eax, [esi - 0x10000]
sar eax, 1
mov ebx, dword [ebx + 0x70]
mov edi, dword [ecx + 0x74]
mov ecx, dword [esp + 0x18]
sub ecx, eax
sar esi, 0x10
dec ecx
sar ecx, 0x10
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x24]
add esi, dword [esp + 0x18]
mov dword [esp + 0x84], esi
lea eax, [ecx - 0x10000]
sar ecx, 0x10
sar eax, 1
sub edx, eax
xor eax, eax
dec edx
mov dword [esp + 0x48], eax
sar edx, 0x10
add ecx, edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], ecx
cmp edx, dword [esp + 0x24]
jge 0x1016b552
mov ecx, dword [esp + 0x18]
nop
mov eax, ecx
mov dword [esp + 0x14], eax
cmp ecx, esi
jge 0x1016b530
nop
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x14]
je 0x1016b513
cmp dword [esp + 0x58], 0
je 0x1016b40d
cmp dword [esp + 0x58], 1
jne 0x1016b36b
cmp eax, ebx
jl 0x1016b339
sub ecx, ebx
cmp ecx, ebx
jge 0x1016b333
test ecx, ecx
jns 0x1016b344
nop dword [eax]
add ecx, ebx
js 0x1016b340
cmp edx, edi
jl 0x1016b34e
sub esi, edi
cmp esi, edi
jge 0x1016b348
test esi, esi
jns 0x1016b3ff
add esi, edi
js 0x1016b356
lea eax, [esp + 0xec]
push eax
push 0
push esi
push ecx
jmp 0x1016b419
cmp dword [esp + 0x58], 2
jne 0x1016b3b1
test eax, eax
jns 0x1016b37a
xor ecx, ecx
jmp 0x1016b384
lea eax, [ebx - 1]
cmp dword [esp + 0x14], eax
cmovg ecx, eax
test edx, edx
jns 0x1016b39a
lea eax, [esp + 0xec]
xor esi, esi
push eax
push esi
push esi
push ecx
jmp 0x1016b419
lea eax, [edi - 1]
cmp edx, eax
jle 0x1016b3ff
mov esi, eax
lea eax, [esp + 0xec]
push eax
push 0
push esi
push ecx
jmp 0x1016b419
lea esi, [ebx + ebx]
test eax, eax
jns 0x1016b3c4
not eax
mov ecx, esi
cdq
idiv esi
sub ecx, edx
dec ecx
jmp 0x1016b3c9
cdq
idiv esi
mov ecx, edx
cmp ecx, ebx
jl 0x1016b3d2
sub esi, ecx
lea ecx, [esi - 1]
mov eax, dword [esp + 0x1c]
lea esi, [edi + edi]
mov dword [esp + 0x34], esi
test eax, eax
jns 0x1016b3ed
not eax
cdq
idiv esi
mov eax, esi
sub esi, edx
dec esi
jmp 0x1016b3f6
cdq
idiv esi
mov eax, dword [esp + 0x34]
mov esi, edx
cmp esi, edi
jl 0x1016b3ff
sub eax, esi
lea esi, [eax - 1]
lea eax, [esp + 0xec]
push eax
push 0
push esi
push ecx
jmp 0x1016b419
lea ecx, [esp + 0xec]
push ecx
push 1
push edx
push eax
push dword [esp + 0x30]
call dword [esp + 0x3c]
mov eax, dword [esp + 0x5c]
xorps xmm1, xmm1
mov esi, dword [esp + 0x94]
xorps xmm0, xmm0
add esp, 0x14
cvtsi2sd xmm1, eax
shr eax, 0x1f
cvtsi2ss xmm0, esi
addsd xmm1, qword [eax*8 + 0x1022b760]
mulss xmm0, dword [esp + 0xec]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.101ebd40
mov dword [esp + 0x48], eax
xorps xmm1, xmm1
mov eax, dword [esp + 0x4c]
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
cvtsi2sd xmm1, eax
shr eax, 0x1f
mulss xmm0, dword [esp + 0xf0]
addsd xmm1, qword [eax*8 + 0x1022b760]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.101ebd40
mov dword [esp + 0x4c], eax
xorps xmm1, xmm1
mov eax, dword [esp + 0x44]
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
cvtsi2sd xmm1, eax
shr eax, 0x1f
mulss xmm0, dword [esp + 0xf4]
addsd xmm1, qword [eax*8 + 0x1022b760]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.101ebd40
mov dword [esp + 0x44], eax
xorps xmm1, xmm1
mov eax, dword [esp + 0x30]
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
cvtsi2sd xmm1, eax
shr eax, 0x1f
mulss xmm0, dword [esp + 0xf8]
addsd xmm1, qword [eax*8 + 0x1022b760]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.101ebd40
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
add dword [esp + 0x50], 4
inc eax
mov esi, dword [esp + 0x84]
mov dword [esp + 0x14], eax
cmp eax, esi
jl 0x1016b300
mov ecx, dword [esp + 0x18]
inc edx
mov dword [esp + 0x1c], edx
cmp edx, dword [esp + 0x24]
jl 0x1016b2f0
movss xmm4, dword [0x1027de14]
xorps xmm2, xmm2
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
movss xmm3, dword [0x102bc0f8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1022b760]
cvtpd2ps xmm1, xmm0
mulss xmm1, xmm4
comiss xmm2, xmm1
jbe 0x1016b580
movaps xmm0, xmm2
jmp 0x1016b587
movaps xmm0, xmm3
minss xmm0, xmm1
mov ebx, dword [esp + 0x2c]
movss dword [ebx], xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x1022b760]
cvtpd2ps xmm1, xmm0
mulss xmm1, xmm4
comiss xmm2, xmm1
jbe 0x1016b5b5
movaps xmm0, xmm2
jmp 0x1016b5bc
movaps xmm0, xmm3
minss xmm0, xmm1
mov eax, dword [esp + 0x44]
movss dword [ebx + 4], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1022b760]
cvtpd2ps xmm1, xmm0
mulss xmm1, xmm4
comiss xmm2, xmm1
jbe 0x1016b5eb
movaps xmm0, xmm2
jmp 0x1016b5f2
movaps xmm0, xmm3
minss xmm0, xmm1
mov eax, dword [esp + 0x30]
movss dword [ebx + 8], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1022b760]
cvtpd2ps xmm1, xmm0
mulss xmm1, xmm4
comiss xmm2, xmm1
jbe 0x1016b629
movaps xmm0, xmm2
movss dword [ebx + 0xc], xmm0
jmp case.default.0x1016a8ea
movaps xmm0, xmm3
minss xmm0, xmm1
movss dword [ebx + 0xc], xmm0
jmp case.default.0x1016a8ea
mov dword [esp + 0x14], ecx
mov ecx, dword [ebx + 0x34]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x4c], eax
lea eax, [esi - 0x10000]
mov ebx, dword [ebx + 0x70]
sar eax, 1
mov edi, dword [ecx + 0x74]
mov ecx, dword [esp + 0x18]
sub ecx, eax
sar esi, 0x10
dec ecx
mov dword [esp + 0x34], ebx
sar ecx, 0x10
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
add esi, dword [esp + 0x18]
mov dword [esp + 0x50], esi
xor esi, esi
lea eax, [ecx - 0x10000]
sar ecx, 0x10
sar eax, 1
sub edx, eax
xor eax, eax
dec edx
mov dword [esp + 0x44], eax
sar edx, 0x10
add ecx, edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x14]
jge 0x1016b8a5
mov ecx, dword [esp + 0x50]
xorps xmm1, xmm1
mov esi, dword [esp + 0x18]
movaps xmmword [esp + 0x90], xmm1
nop
mov eax, esi
mov dword [esp + 0x48], eax
cmp esi, ecx
jge 0x1016b86f
nop
mov ebx, dword [esp + 0x4c]
mov ecx, eax
mov esi, edx
mov ebx, dword [ebx]
test ebx, ebx
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x34]
je 0x1016b855
cmp dword [esp + 0x30], 0
je 0x1016b7d5
cmp dword [esp + 0x30], 1
jne 0x1016b73b
cmp eax, ebx
jl 0x1016b706
sub ecx, ebx
cmp ecx, ebx
jge 0x1016b700
test ecx, ecx
jns 0x1016b714
nop word [eax + eax]
add ecx, ebx
js 0x1016b710
cmp edx, edi
jl 0x1016b71e
sub esi, edi
cmp esi, edi
jge 0x1016b718
test esi, esi
jns 0x1016b7c7
add esi, edi
js 0x1016b726
lea eax, [esp + 0xfc]
push eax
push 0
push esi
push ecx
jmp 0x1016b7e1
cmp dword [esp + 0x30], 2
jne 0x1016b781
test eax, eax
jns 0x1016b74a
xor ecx, ecx
jmp 0x1016b754
lea eax, [ebx - 1]
cmp dword [esp + 0x48], eax
cmovg ecx, eax
test edx, edx
jns 0x1016b76a
lea eax, [esp + 0xfc]
xor esi, esi
push eax
push esi
push esi
push ecx
jmp 0x1016b7e1
lea eax, [edi - 1]
cmp edx, eax
jle 0x1016b7c7
mov esi, eax
lea eax, [esp + 0xfc]
push eax
push 0
push esi
push ecx
jmp 0x1016b7e1
lea esi, [ebx + ebx]
test eax, eax
jns 0x1016b794
not eax
mov ecx, esi
cdq
idiv esi
sub ecx, edx
dec ecx
jmp 0x1016b799
cdq
idiv esi
mov ecx, edx
cmp ecx, ebx
jl 0x1016b7a2
sub esi, ecx
lea ecx, [esi - 1]
mov eax, dword [esp + 0x1c]
lea ebx, [edi + edi]
test eax, eax
jns 0x1016b7b9
not eax
mov esi, ebx
cdq
idiv ebx
sub esi, edx
dec esi
jmp 0x1016b7be
cdq
idiv ebx
mov esi, edx
cmp esi, edi
jl 0x1016b7c7
sub ebx, esi
lea esi, [ebx - 1]
lea eax, [esp + 0xfc]
push eax
push 0
push esi
push ecx
jmp 0x1016b7e1
lea ecx, [esp + 0xfc]
push ecx
push 1
push edx
push eax
push dword [esp + 0x30]
call dword [esp + 0x3c]
mov ebx, dword [esp + 0x110]
add esp, 0x14
mov eax, ebx
movzx edx, bl
imul edx, dword [esp + 0x44]
mov esi, ebx
shr eax, 8
movzx ecx, al
imul ecx, dword [esp + 0x44]
shr ebx, 0x10
shr esi, 0x18
imul esi, dword [esp + 0x44]
movzx eax, bl
imul eax, dword [esp + 0x44]
movd xmm0, edx
mov edx, dword [esp + 0x1c]
movd xmm1, ecx
movd xmm2, esi
punpckldq xmm1, xmm2
movd xmm3, eax
mov eax, dword [esp + 0x48]
punpckldq xmm3, xmm0
punpckldq xmm3, xmm1
paddd xmm3, xmmword [esp + 0x90]
movaps xmm1, xmm3
movaps xmmword [esp + 0x90], xmm1
add dword [esp + 0x4c], 4
inc eax
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x48], eax
cmp eax, ecx
jl 0x1016b6d0
mov esi, dword [esp + 0x18]
inc edx
mov dword [esp + 0x1c], edx
cmp edx, dword [esp + 0x14]
jl 0x1016b6c0
movaps xmm0, xmm1
movd dword [esp + 0x44], xmm1
psrldq xmm0, 4
movd ecx, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
psrldq xmm1, 0xc
movd eax, xmm0
movd esi, xmm1
mov edx, dword [esp + 0x44]
add esi, 0x8000
shr esi, 0x10
add eax, 0x8000
add edx, 0x8000
shr eax, 0x10
add ecx, 0x8000
shr edx, 0x10
shr ecx, 0x10
mov ebx, 0xff
cmp esi, 0xff
cmova esi, ebx
cmp edx, ebx
cmova edx, ebx
cmp ecx, ebx
cmova ecx, ebx
cmp eax, ebx
cmova eax, ebx
shl esi, 8
or esi, edx
shl esi, 8
or esi, ecx
shl esi, 8
or esi, eax
mov eax, dword [esp + 0x2c]
mov dword [eax], esi
jmp 0x1016b92d
cmp dword [esp + 0x54], 0
je 0x1016b913
push 0x1016cca0
push 0x1016bc60
jmp 0x1016b91d
push 0x1016cc30
push 0x1016bc10
push dword [esp + 0x34]
push edi
push edx
push ecx
push ebx
call fcn.1016bd50
add esp, 0x1c
movss xmm4, dword [0x1027de14]
xorps xmm2, xmm2
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x70]
inc eax
add dword [esp + 0x60], edi
add esi, dword [esp + 0x74]
add ecx, dword [esp + 0x78]
add edx, dword [esp + 0x88]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x40], eax
cmp eax, dword [esp + 0x7c]
jl 0x1016a835
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x11c]
pop edi
pop esi
mov eax, dword [eax + 4]
pop ebx
xor ecx, esp
call fcn.101eafcd
mov esp, ebp
pop ebp
ret