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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x114
mov eax, dword [0x102d94c0]
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, 0x101760d0
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, 0x10176170
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 0x10173ee3
lea eax, [esp + 0xe0]
push eax
push ecx
call sym.project.dll_pixman_transform_point_3d
add esp, 8
test eax, eax
jne 0x10173ea9
mov eax, dword [esp + 0x2c]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x110]
xor ecx, esp
call fcn.101f469d
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 0x10173ef9
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 0x1017507e
cmp dword [esp + 0x54], eax
mov edx, 4
movss xmm4, dword [0x10287e54]
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 0x10173f57
cmp dword [esp + 0x54], 0
jne 0x10173fa9
mov ebx, dword [ebp + 0x10]
cmp dword [ebx + eax*4], 0
mov ebx, dword [esp + 0x20]
je 0x10175048
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x10173fd6
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.101f5970
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.101f5970
movss xmm4, dword [0x10287e54]
mov edx, eax
mov edi, dword [esp + 0x28]
xorps xmm2, xmm2
mov ecx, dword [esp + 0x18]
jmp 0x10173fde
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 0x10173f57
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10173fc0
jmp case.default.0x10173fea
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x18], ecx
mov eax, dword [ebx + 0x38]
cmp eax, 6
ja case.default.0x10173fea
jmp dword [eax*4 + 0x101750a0]
mov eax, dword [ebx + 0x34]
lea esi, [ecx - 1]
lea ecx, [edx - 1]
sar esi, 0x10
sar ecx, 0x10
test eax, eax
je 0x101740e0
mov edi, dword [ebx + 0x70]
cmp eax, 1
jne 0x10174049
cmp esi, edi
jl 0x1017401a
sub esi, edi
cmp esi, edi
jge 0x10174014
test esi, esi
jns 0x10174024
nop
add esi, edi
js 0x10174020
mov eax, dword [ebx + 0x74]
cmp ecx, eax
jl 0x10174036
nop dword [eax + eax]
sub ecx, eax
cmp ecx, eax
jge 0x10174030
test ecx, ecx
jns 0x101740c8
nop
add ecx, eax
js 0x10174040
jmp 0x101740c8
cmp eax, 2
jne 0x10174071
test esi, esi
jns 0x10174056
xor esi, esi
jmp 0x1017405e
lea eax, [edi - 1]
cmp esi, eax
cmovg esi, eax
mov eax, dword [ebx + 0x74]
test ecx, ecx
jns 0x10174069
xor ecx, ecx
jmp 0x101740c8
dec eax
cmp ecx, eax
cmovg ecx, eax
jmp 0x101740c8
lea ebx, [edi + edi]
test esi, esi
jns 0x10174086
not esi
mov eax, esi
cdq
idiv ebx
mov eax, ebx
sub eax, edx
dec eax
jmp 0x1017408d
mov eax, esi
cdq
idiv ebx
mov eax, edx
mov esi, eax
cmp eax, edi
jl 0x10174098
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 0x101740b4
not ecx
mov eax, ecx
mov ecx, edi
cdq
idiv edi
sub ecx, edx
dec ecx
jmp 0x101740bb
mov eax, ecx
cdq
idiv edi
mov ecx, edx
cmp ecx, ebx
mov ebx, dword [esp + 0x20]
jl 0x101740c8
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 0x1017502d
mov eax, dword [esp + 0x2c]
push eax
push 1
push ecx
push esi
push ebx
call edi
add esp, 0x14
jmp 0x1017502d
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 0x10174576
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 0x10174370
cmp dword [esi + 0x34], 1
mov esi, dword [esp + 0x14]
jne 0x101741df
cmp ebx, ecx
jl 0x10174176
nop
sub ebx, ecx
cmp ebx, ecx
jge 0x10174170
test ebx, ebx
jns 0x10174184
nop word [eax + eax]
add ebx, ecx
js 0x10174180
cmp edi, esi
jl 0x1017418e
sub edi, esi
cmp edi, esi
jge 0x10174188
test edi, edi
jns 0x10174196
add edi, esi
js 0x10174192
cmp eax, ecx
jl 0x101741aa
nop word [eax + eax]
sub eax, ecx
cmp eax, ecx
jge 0x101741a0
mov dword [esp + 0x18], eax
test eax, eax
jns 0x101741b8
nop
add eax, ecx
js 0x101741b0
mov dword [esp + 0x18], eax
cmp edx, esi
jl 0x101741ca
nop dword [eax]
sub edx, esi
cmp edx, esi
jge 0x101741c0
mov dword [esp + 0x24], edx
test edx, edx
jns 0x1017431f
add edx, esi
js 0x101741d2
mov dword [esp + 0x24], edx
jmp 0x1017431f
mov esi, dword [esp + 0x20]
cmp dword [esi + 0x34], 2
mov esi, dword [esp + 0x14]
jne 0x1017424f
test ebx, ebx
jns 0x101741f6
xor ebx, ebx
dec ecx
jmp 0x10174201
dec ecx
mov dword [esp + 0x14], ecx
cmp ebx, ecx
jle 0x10174205
mov ebx, ecx
mov dword [esp + 0x14], ecx
lea ecx, [esi - 1]
test edi, edi
jns 0x10174210
xor edi, edi
jmp 0x10174216
cmp edi, ecx
jle 0x10174216
mov edi, ecx
test eax, eax
jns 0x1017421e
xor esi, esi
jmp 0x1017422d
cmp eax, dword [esp + 0x14]
cmovg eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov esi, eax
test edx, edx
jns 0x1017423e
mov dword [esp + 0x24], 0
jmp 0x10174323
cmp edx, ecx
jle 0x10174323
mov dword [esp + 0x24], ecx
jmp 0x10174323
lea eax, [ecx + ecx]
mov dword [esp + 0x1c], eax
test ebx, ebx
jns 0x1017426e
not ebx
mov eax, ebx
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov ebx, eax
sub ebx, edx
dec ebx
jmp 0x1017427b
mov eax, ebx
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov ebx, edx
cmp ebx, ecx
jl 0x10174284
sub eax, ebx
lea ebx, [eax - 1]
lea eax, [esi + esi]
mov dword [esp + 0x14], eax
test edi, edi
jns 0x101742a3
not edi
mov eax, edi
cdq
idiv dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov edi, eax
sub edi, edx
dec edi
jmp 0x101742b0
mov eax, edi
cdq
idiv dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov edi, edx
cmp edi, esi
jl 0x101742b9
sub eax, edi
lea edi, [eax - 1]
mov eax, dword [esp + 0x18]
test eax, eax
jns 0x101742d5
not eax
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
sub eax, edx
dec eax
mov dword [esp + 0x18], eax
jmp 0x101742e0
cdq
idiv dword [esp + 0x1c]
mov eax, edx
mov dword [esp + 0x18], edx
cmp eax, ecx
jl 0x101742ef
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 0x1017430b
not eax
cdq
idiv ecx
mov eax, ecx
sub eax, edx
dec eax
mov dword [esp + 0x24], eax
jmp 0x10174314
cdq
idiv ecx
mov eax, edx
mov dword [esp + 0x24], edx
cmp eax, esi
jl 0x1017431f
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 0x101743bc
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 [0x102c6188]
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 0x1017502d
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 0x101747bd
cmp dword [esi + 0x34], 1
mov esi, dword [esp + 0x14]
jne 0x1017462f
cmp ebx, ecx
jl 0x101745c6
nop word [eax + eax]
sub ebx, ecx
cmp ebx, ecx
jge 0x101745c0
test ebx, ebx
jns 0x101745d4
nop word [eax + eax]
add ebx, ecx
js 0x101745d0
cmp edi, esi
jl 0x101745de
sub edi, esi
cmp edi, esi
jge 0x101745d8
test edi, edi
jns 0x101745e6
add edi, esi
js 0x101745e2
cmp eax, ecx
jl 0x101745fa
nop word [eax + eax]
sub eax, ecx
cmp eax, ecx
jge 0x101745f0
mov dword [esp + 0x18], eax
test eax, eax
jns 0x10174608
nop
add eax, ecx
js 0x10174600
mov dword [esp + 0x18], eax
cmp edx, esi
jl 0x1017461a
nop dword [eax]
sub edx, esi
cmp edx, esi
jge 0x10174610
mov dword [esp + 0x24], edx
test edx, edx
jns 0x1017476f
add edx, esi
js 0x10174622
mov dword [esp + 0x24], edx
jmp 0x1017476f
mov esi, dword [esp + 0x20]
cmp dword [esi + 0x34], 2
mov esi, dword [esp + 0x14]
jne 0x1017469f
test ebx, ebx
jns 0x10174646
xor ebx, ebx
dec ecx
jmp 0x10174651
dec ecx
mov dword [esp + 0x14], ecx
cmp ebx, ecx
jle 0x10174655
mov ebx, ecx
mov dword [esp + 0x14], ecx
lea ecx, [esi - 1]
test edi, edi
jns 0x10174660
xor edi, edi
jmp 0x10174666
cmp edi, ecx
jle 0x10174666
mov edi, ecx
test eax, eax
jns 0x1017466e
xor esi, esi
jmp 0x1017467d
cmp eax, dword [esp + 0x14]
cmovg eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov esi, eax
test edx, edx
jns 0x1017468e
mov dword [esp + 0x24], 0
jmp 0x10174773
cmp edx, ecx
jle 0x10174773
mov dword [esp + 0x24], ecx
jmp 0x10174773
lea eax, [ecx + ecx]
mov dword [esp + 0x1c], eax
test ebx, ebx
jns 0x101746be
not ebx
mov eax, ebx
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov ebx, eax
sub ebx, edx
dec ebx
jmp 0x101746cb
mov eax, ebx
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov ebx, edx
cmp ebx, ecx
jl 0x101746d4
sub eax, ebx
lea ebx, [eax - 1]
lea eax, [esi + esi]
mov dword [esp + 0x14], eax
test edi, edi
jns 0x101746f3
not edi
mov eax, edi
cdq
idiv dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov edi, eax
sub edi, edx
dec edi
jmp 0x10174700
mov eax, edi
cdq
idiv dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov edi, edx
cmp edi, esi
jl 0x10174709
sub eax, edi
lea edi, [eax - 1]
mov eax, dword [esp + 0x18]
test eax, eax
jns 0x10174725
not eax
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
sub eax, edx
dec eax
mov dword [esp + 0x18], eax
jmp 0x10174730
cdq
idiv dword [esp + 0x1c]
mov eax, edx
mov dword [esp + 0x18], edx
cmp eax, ecx
jl 0x1017473f
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 0x1017475b
not eax
cdq
idiv ecx
mov eax, ecx
sub eax, edx
dec eax
mov dword [esp + 0x24], eax
jmp 0x10174764
cdq
idiv ecx
mov eax, edx
mov dword [esp + 0x24], edx
cmp eax, esi
jl 0x1017476f
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 0x10174806
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 0x1017502d
mov eax, dword [ebx + 0x3c]
mov esi, dword [eax]
mov ecx, dword [eax + 4]
add eax, 8
cmp dword [esp + 0x54], 0
je 0x10174d3a
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 0x10174c52
mov ecx, dword [esp + 0x18]
nop
mov eax, ecx
mov dword [esp + 0x14], eax
cmp ecx, esi
jge 0x10174c30
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 0x10174c13
cmp dword [esp + 0x58], 0
je 0x10174b0d
cmp dword [esp + 0x58], 1
jne 0x10174a6b
cmp eax, ebx
jl 0x10174a39
sub ecx, ebx
cmp ecx, ebx
jge 0x10174a33
test ecx, ecx
jns 0x10174a44
nop dword [eax]
add ecx, ebx
js 0x10174a40
cmp edx, edi
jl 0x10174a4e
sub esi, edi
cmp esi, edi
jge 0x10174a48
test esi, esi
jns 0x10174aff
add esi, edi
js 0x10174a56
lea eax, [esp + 0xec]
push eax
push 0
push esi
push ecx
jmp 0x10174b19
cmp dword [esp + 0x58], 2
jne 0x10174ab1
test eax, eax
jns 0x10174a7a
xor ecx, ecx
jmp 0x10174a84
lea eax, [ebx - 1]
cmp dword [esp + 0x14], eax
cmovg ecx, eax
test edx, edx
jns 0x10174a9a
lea eax, [esp + 0xec]
xor esi, esi
push eax
push esi
push esi
push ecx
jmp 0x10174b19
lea eax, [edi - 1]
cmp edx, eax
jle 0x10174aff
mov esi, eax
lea eax, [esp + 0xec]
push eax
push 0
push esi
push ecx
jmp 0x10174b19
lea esi, [ebx + ebx]
test eax, eax
jns 0x10174ac4
not eax
mov ecx, esi
cdq
idiv esi
sub ecx, edx
dec ecx
jmp 0x10174ac9
cdq
idiv esi
mov ecx, edx
cmp ecx, ebx
jl 0x10174ad2
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 0x10174aed
not eax
cdq
idiv esi
mov eax, esi
sub esi, edx
dec esi
jmp 0x10174af6
cdq
idiv esi
mov eax, dword [esp + 0x34]
mov esi, edx
cmp esi, edi
jl 0x10174aff
sub eax, esi
lea esi, [eax - 1]
lea eax, [esp + 0xec]
push eax
push 0
push esi
push ecx
jmp 0x10174b19
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 + 0x10235760]
mulss xmm0, dword [esp + 0xec]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.101f5410
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 + 0x10235760]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.101f5410
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 + 0x10235760]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.101f5410
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 + 0x10235760]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.101f5410
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 0x10174a00
mov ecx, dword [esp + 0x18]
inc edx
mov dword [esp + 0x1c], edx
cmp edx, dword [esp + 0x24]
jl 0x101749f0
movss xmm4, dword [0x10287e54]
xorps xmm2, xmm2
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
movss xmm3, dword [0x102c6188]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10235760]
cvtpd2ps xmm1, xmm0
mulss xmm1, xmm4
comiss xmm2, xmm1
jbe 0x10174c80
movaps xmm0, xmm2
jmp 0x10174c87
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 + 0x10235760]
cvtpd2ps xmm1, xmm0
mulss xmm1, xmm4
comiss xmm2, xmm1
jbe 0x10174cb5
movaps xmm0, xmm2
jmp 0x10174cbc
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 + 0x10235760]
cvtpd2ps xmm1, xmm0
mulss xmm1, xmm4
comiss xmm2, xmm1
jbe 0x10174ceb
movaps xmm0, xmm2
jmp 0x10174cf2
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 + 0x10235760]
cvtpd2ps xmm1, xmm0
mulss xmm1, xmm4
comiss xmm2, xmm1
jbe 0x10174d29
movaps xmm0, xmm2
movss dword [ebx + 0xc], xmm0
jmp case.default.0x10173fea
movaps xmm0, xmm3
minss xmm0, xmm1
movss dword [ebx + 0xc], xmm0
jmp case.default.0x10173fea
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 0x10174fa5
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 0x10174f6f
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 0x10174f55
cmp dword [esp + 0x30], 0
je 0x10174ed5
cmp dword [esp + 0x30], 1
jne 0x10174e3b
cmp eax, ebx
jl 0x10174e06
sub ecx, ebx
cmp ecx, ebx
jge 0x10174e00
test ecx, ecx
jns 0x10174e14
nop word [eax + eax]
add ecx, ebx
js 0x10174e10
cmp edx, edi
jl 0x10174e1e
sub esi, edi
cmp esi, edi
jge 0x10174e18
test esi, esi
jns 0x10174ec7
add esi, edi
js 0x10174e26
lea eax, [esp + 0xfc]
push eax
push 0
push esi
push ecx
jmp 0x10174ee1
cmp dword [esp + 0x30], 2
jne 0x10174e81
test eax, eax
jns 0x10174e4a
xor ecx, ecx
jmp 0x10174e54
lea eax, [ebx - 1]
cmp dword [esp + 0x48], eax
cmovg ecx, eax
test edx, edx
jns 0x10174e6a
lea eax, [esp + 0xfc]
xor esi, esi
push eax
push esi
push esi
push ecx
jmp 0x10174ee1
lea eax, [edi - 1]
cmp edx, eax
jle 0x10174ec7
mov esi, eax
lea eax, [esp + 0xfc]
push eax
push 0
push esi
push ecx
jmp 0x10174ee1
lea esi, [ebx + ebx]
test eax, eax
jns 0x10174e94
not eax
mov ecx, esi
cdq
idiv esi
sub ecx, edx
dec ecx
jmp 0x10174e99
cdq
idiv esi
mov ecx, edx
cmp ecx, ebx
jl 0x10174ea2
sub esi, ecx
lea ecx, [esi - 1]
mov eax, dword [esp + 0x1c]
lea ebx, [edi + edi]
test eax, eax
jns 0x10174eb9
not eax
mov esi, ebx
cdq
idiv ebx
sub esi, edx
dec esi
jmp 0x10174ebe
cdq
idiv ebx
mov esi, edx
cmp esi, edi
jl 0x10174ec7
sub ebx, esi
lea esi, [ebx - 1]
lea eax, [esp + 0xfc]
push eax
push 0
push esi
push ecx
jmp 0x10174ee1
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 0x10174dd0
mov esi, dword [esp + 0x18]
inc edx
mov dword [esp + 0x1c], edx
cmp edx, dword [esp + 0x14]
jl 0x10174dc0
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 0x1017502d
cmp dword [esp + 0x54], 0
je 0x10175013
push 0x101763a0
push 0x10175360
jmp 0x1017501d
push 0x10176330
push 0x10175310
push dword [esp + 0x34]
push edi
push edx
push ecx
push ebx
call fcn.10175450
add esp, 0x1c
movss xmm4, dword [0x10287e54]
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 0x10173f35
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.101f469d
mov esp, ebp
pop ebp
ret