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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x104
mov eax, dword [0x102d94c0]
xor eax, esp
mov dword [esp + 0x100], eax
mov ecx, dword [ebp + 8]
xorps xmm0, xmm0
push ebx
push esi
mov esi, dword [ebp + 0xc]
test esi, esi
mov edx, dword [ecx + 0xc]
mov ebx, dword [ecx]
push edi
mov edi, 0x10176230
mov dword [esp + 0xd8], 0x10000
lea eax, [edx + 1]
mov dword [esp + 0x70], ecx
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x6c], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x24], eax
mov eax, 0x10176280
cmovne edi, eax
mov dword [esp + 0x50], esi
mov eax, dword [ecx + 8]
shl eax, 0x10
add eax, 0x8000
shl edx, 0x10
add edx, 0x8000
mov dword [esp + 0x28], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edx
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], edx
movups xmmword [esp + 0xfc], xmm0
test eax, eax
je 0x10172c23
lea ecx, [esp + 0xd0]
push ecx
push eax
call sym.project.dll_pixman_transform_point_3d
add esp, 8
test eax, eax
je 0x10173d7a
mov eax, dword [ebx + 0x30]
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x2c], edx
mov ecx, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x28], eax
jmp 0x10172c37
mov eax, dword [esp + 0x28]
mov dword [esp + 0x64], 0x10000
mov dword [esp + 0x68], 0
xor ecx, ecx
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x6c], ecx
jle 0x10173d7a
movss xmm4, dword [0x10287e54]
test esi, esi
movss xmm3, dword [0x102c6188]
xorps xmm2, xmm2
mov dword [esp + 0x58], 4
mov esi, dword [esp + 0x58]
mov dword [esp + 0x30], 0x10
cmovne esi, dword [esp + 0x30]
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x24]
nop dword [eax]
cmp dword [ebp + 0x10], 0
mov edi, dword [esp + 0x20]
je 0x10172ccf
cmp dword [esp + 0x50], 0
jne 0x10172ca3
mov ebx, dword [ebp + 0x10]
cmp dword [ebx + ecx*4], 0
mov ebx, dword [esp + 0x1c]
jne 0x10172ccf
jmp 0x10173d40
shl ecx, 4
lea edx, [esp + 0xfc]
add ecx, dword [ebp + 0x10]
mov esi, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10172ccb
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10172cb5
jmp 0x10173d30
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx + 0x38]
cmp eax, 6
ja case.default.0x10172cdb
jmp dword [eax*4 + 0x10173d98]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebx + 0x34]
lea esi, [esi - 1]
lea ecx, [ecx - 1]
sar esi, 0x10
sar ecx, 0x10
test eax, eax
je 0x10172ddc
mov edi, dword [ebx + 0x70]
cmp eax, 1
jne 0x10172d46
cmp esi, edi
jl 0x10172d16
nop dword [eax]
sub esi, edi
cmp esi, edi
jge 0x10172d10
test esi, esi
jns 0x10172d24
nop word [eax + eax]
add esi, edi
js 0x10172d20
mov eax, dword [ebx + 0x74]
cmp ecx, eax
jl 0x10172d36
nop dword [eax + eax]
sub ecx, eax
cmp ecx, eax
jge 0x10172d30
test ecx, ecx
jns 0x10172dc5
nop
add ecx, eax
js 0x10172d40
jmp 0x10172dc5
cmp eax, 2
jne 0x10172d6e
test esi, esi
jns 0x10172d53
xor esi, esi
jmp 0x10172d5b
lea eax, [edi - 1]
cmp esi, eax
cmovg esi, eax
mov eax, dword [ebx + 0x74]
test ecx, ecx
jns 0x10172d66
xor ecx, ecx
jmp 0x10172dc5
dec eax
cmp ecx, eax
cmovg ecx, eax
jmp 0x10172dc5
lea ebx, [edi + edi]
test esi, esi
jns 0x10172d83
not esi
mov eax, esi
cdq
idiv ebx
mov eax, ebx
sub eax, edx
dec eax
jmp 0x10172d8a
mov eax, esi
cdq
idiv ebx
mov eax, edx
mov esi, eax
cmp eax, edi
jl 0x10172d95
mov esi, ebx
sub esi, eax
dec esi
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 0x74]
lea edi, [ebx + ebx]
test ecx, ecx
jns 0x10172db1
not ecx
mov eax, ecx
mov ecx, edi
cdq
idiv edi
sub ecx, edx
dec ecx
jmp 0x10172db8
mov eax, ecx
cdq
idiv edi
mov ecx, edx
cmp ecx, ebx
mov ebx, dword [esp + 0x1c]
jl 0x10172dc5
sub edi, ecx
lea ecx, [edi - 1]
push dword [esp + 0x24]
mov edi, dword [esp + 0x24]
push 0
push ecx
push esi
push ebx
call edi
add esp, 0x14
jmp 0x10173d30
push dword [esp + 0x24]
push 1
push ecx
push esi
push ebx
call edi
add esp, 0x14
jmp 0x10173d30
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
add ebx, 0xffff8000
add edi, 0xffff8000
cmp dword [esp + 0x50], 0
mov esi, dword [edx + 0x74]
mov ecx, dword [edx + 0x70]
mov dword [esp + 0xc], esi
mov esi, edx
je 0x10173276
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 + 0x18], edx
movss dword [esp + 0x38], xmm0
movd xmm0, eax
lea eax, [ebx + 1]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x14], eax
mulss xmm0, xmm4
movss dword [esp + 0x30], xmm0
je 0x10173070
cmp dword [esi + 0x34], 1
mov esi, dword [esp + 0xc]
jne 0x10172edf
cmp ebx, ecx
jl 0x10172e78
sub ebx, ecx
cmp ebx, ecx
jge 0x10172e72
test ebx, ebx
jns 0x10172e84
nop dword [eax]
add ebx, ecx
js 0x10172e80
cmp edi, esi
jl 0x10172e8e
sub edi, esi
cmp edi, esi
jge 0x10172e88
test edi, edi
jns 0x10172e96
add edi, esi
js 0x10172e92
cmp eax, ecx
jl 0x10172eaa
nop word [eax + eax]
sub eax, ecx
cmp eax, ecx
jge 0x10172ea0
mov dword [esp + 0x14], eax
test eax, eax
jns 0x10172eb8
nop
add eax, ecx
js 0x10172eb0
mov dword [esp + 0x14], eax
cmp edx, esi
jl 0x10172eca
nop dword [eax]
sub edx, esi
cmp edx, esi
jge 0x10172ec0
mov dword [esp + 0x18], edx
test edx, edx
jns 0x1017301f
add edx, esi
js 0x10172ed2
mov dword [esp + 0x18], edx
jmp 0x1017301f
mov esi, dword [esp + 0x1c]
cmp dword [esi + 0x34], 2
mov esi, dword [esp + 0xc]
jne 0x10172f4f
test ebx, ebx
jns 0x10172ef6
xor ebx, ebx
dec ecx
jmp 0x10172f01
dec ecx
mov dword [esp + 0xc], ecx
cmp ebx, ecx
jle 0x10172f05
mov ebx, ecx
mov dword [esp + 0xc], ecx
lea ecx, [esi - 1]
test edi, edi
jns 0x10172f10
xor edi, edi
jmp 0x10172f16
cmp edi, ecx
jle 0x10172f16
mov edi, ecx
test eax, eax
jns 0x10172f1e
xor esi, esi
jmp 0x10172f2d
cmp eax, dword [esp + 0xc]
cmovg eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
mov esi, eax
test edx, edx
jns 0x10172f3e
mov dword [esp + 0x18], 0
jmp 0x10173023
cmp edx, ecx
jle 0x10173023
mov dword [esp + 0x18], ecx
jmp 0x10173023
lea eax, [ecx + ecx]
mov dword [esp + 0x10], eax
test ebx, ebx
jns 0x10172f6e
not ebx
mov eax, ebx
cdq
idiv dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebx, eax
sub ebx, edx
dec ebx
jmp 0x10172f7b
mov eax, ebx
cdq
idiv dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebx, edx
cmp ebx, ecx
jl 0x10172f84
sub eax, ebx
lea ebx, [eax - 1]
lea eax, [esi + esi]
mov dword [esp + 0xc], eax
test edi, edi
jns 0x10172fa3
not edi
mov eax, edi
cdq
idiv dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov edi, eax
sub edi, edx
dec edi
jmp 0x10172fb0
mov eax, edi
cdq
idiv dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov edi, edx
cmp edi, esi
jl 0x10172fb9
sub eax, edi
lea edi, [eax - 1]
mov eax, dword [esp + 0x14]
test eax, eax
jns 0x10172fd5
not eax
cdq
idiv dword [esp + 0x10]
mov eax, dword [esp + 0x10]
sub eax, edx
dec eax
mov dword [esp + 0x14], eax
jmp 0x10172fe0
cdq
idiv dword [esp + 0x10]
mov eax, edx
mov dword [esp + 0x14], edx
cmp eax, ecx
jl 0x10172fef
mov ecx, dword [esp + 0x10]
sub ecx, eax
dec ecx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
test eax, eax
jns 0x1017300b
not eax
cdq
idiv ecx
mov eax, ecx
sub eax, edx
dec eax
mov dword [esp + 0x18], eax
jmp 0x10173014
cdq
idiv ecx
mov eax, edx
mov dword [esp + 0x18], edx
cmp eax, esi
jl 0x1017301f
sub ecx, eax
dec ecx
mov dword [esp + 0x18], ecx
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x90]
push eax
push 0
push edi
push ebx
push dword [esp + 0x2c]
call dword [esp + 0x34]
lea eax, [esp + 0xb4]
push eax
push 0
push edi
push esi
push dword [esp + 0x40]
call dword [esp + 0x48]
mov edi, dword [esp + 0x40]
lea eax, [esp + 0xd8]
push eax
push 0
push edi
push ebx
mov ebx, dword [esp + 0x54]
push ebx
call dword [esp + 0x5c]
lea eax, [esp + 0xfc]
push eax
push 0
jmp 0x101730bc
lea eax, [esp + 0x90]
push eax
push 1
push edi
push ebx
push esi
call dword [esp + 0x34]
mov esi, dword [esp + 0x28]
lea eax, [esp + 0xb4]
push eax
push 1
push edi
push esi
push dword [esp + 0x40]
call dword [esp + 0x48]
mov edi, dword [esp + 0x40]
lea eax, [esp + 0xd8]
push eax
push 1
push edi
push ebx
mov ebx, dword [esp + 0x54]
push ebx
call dword [esp + 0x5c]
lea eax, [esp + 0xfc]
push eax
push 1
push edi
mov edi, dword [esp + 0x68]
push esi
push ebx
call edi
movss xmm1, dword [0x102c6188]
add esp, 0x50
movss xmm5, dword [esp + 0x30]
movaps xmm0, xmm1
movss xmm2, dword [esp + 0x38]
subss xmm0, xmm5
subss xmm1, xmm2
movss xmm7, dword [esp + 0x9c]
movaps xmm4, xmm5
movss xmm6, dword [esp + 0xb8]
mulss xmm4, xmm2
mov eax, dword [esp + 0x24]
movaps xmm3, xmm0
mulss xmm3, xmm2
movaps xmm2, xmm1
mulss xmm1, xmm0
movss xmm0, dword [esp + 0x94]
mulss xmm2, xmm5
mulss xmm0, xmm1
mulss xmm7, xmm1
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0xa4]
mulss xmm0, xmm3
movss dword [esp + 0x30], xmm1
movss xmm5, dword [esp + 0xc8]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [esp + 0xb4]
mulss xmm0, xmm2
movss dword [esp + 0x38], xmm3
movss dword [esp + 0x44], xmm2
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0xc4]
mulss xmm0, xmm4
movss dword [esp + 0x3c], xmm4
mulss xmm5, xmm4
movss dword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x98]
mulss xmm0, xmm1
movss xmm1, dword [esp + 0x90]
mulss xmm1, dword [esp + 0x30]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0xa8]
mulss xmm0, xmm3
movss xmm4, dword [esp + 0xac]
mulss xmm4, xmm3
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0xa0]
mulss xmm0, dword [esp + 0x38]
addss xmm7, xmm4
movss xmm3, dword [esp + 0xbc]
mulss xmm6, xmm2
addss xmm1, xmm0
mulss xmm3, xmm2
movss xmm0, dword [esp + 0xb0]
mulss xmm0, dword [esp + 0x44]
movss xmm2, dword [esp + 0xcc]
addss xmm7, xmm3
mulss xmm2, dword [esp + 0x3c]
addss xmm1, xmm0
movss xmm0, dword [esp + 0xc0]
mulss xmm0, dword [esp + 0x3c]
addss xmm7, xmm2
addss xmm1, xmm0
movss xmm0, dword [esp + 0x40]
addss xmm0, dword [esp + 0x48]
movss dword [eax], xmm1
addss xmm0, dword [esp + 0xc]
addss xmm0, dword [esp + 0x10]
movss dword [eax + 4], xmm0
movss xmm0, dword [esp + 0x18]
addss xmm0, dword [esp + 0x14]
addss xmm0, xmm6
addss xmm0, xmm5
movss dword [eax + 8], xmm0
movss dword [eax + 0xc], xmm7
jmp 0x10173d30
mov eax, ebx
sar ebx, 0x10
sar eax, 9
and eax, 0x7f
mov dword [esp + 0x30], eax
mov eax, edi
sar eax, 9
sar edi, 0x10
and eax, 0x7f
cmp dword [esi + 0x34], 0
mov dword [esp + 0x38], eax
lea eax, [ebx + 1]
mov dword [esp + 0x14], eax
lea edx, [edi + 1]
mov dword [esp + 0x18], edx
je 0x101734b7
cmp dword [esi + 0x34], 1
mov esi, dword [esp + 0xc]
jne 0x1017332f
cmp ebx, ecx
jl 0x101732c6
nop word [eax + eax]
sub ebx, ecx
cmp ebx, ecx
jge 0x101732c0
test ebx, ebx
jns 0x101732d4
nop word [eax + eax]
add ebx, ecx
js 0x101732d0
cmp edi, esi
jl 0x101732de
sub edi, esi
cmp edi, esi
jge 0x101732d8
test edi, edi
jns 0x101732e6
add edi, esi
js 0x101732e2
cmp eax, ecx
jl 0x101732fa
nop word [eax + eax]
sub eax, ecx
cmp eax, ecx
jge 0x101732f0
mov dword [esp + 0x14], eax
test eax, eax
jns 0x10173308
nop
add eax, ecx
js 0x10173300
mov dword [esp + 0x14], eax
cmp edx, esi
jl 0x1017331a
nop dword [eax]
sub edx, esi
cmp edx, esi
jge 0x10173310
mov dword [esp + 0x18], edx
test edx, edx
jns 0x1017346f
add edx, esi
js 0x10173322
mov dword [esp + 0x18], edx
jmp 0x1017346f
mov esi, dword [esp + 0x1c]
cmp dword [esi + 0x34], 2
mov esi, dword [esp + 0xc]
jne 0x1017339f
test ebx, ebx
jns 0x10173346
xor ebx, ebx
dec ecx
jmp 0x10173351
dec ecx
mov dword [esp + 0xc], ecx
cmp ebx, ecx
jle 0x10173355
mov ebx, ecx
mov dword [esp + 0xc], ecx
lea ecx, [esi - 1]
test edi, edi
jns 0x10173360
xor edi, edi
jmp 0x10173366
cmp edi, ecx
jle 0x10173366
mov edi, ecx
test eax, eax
jns 0x1017336e
xor esi, esi
jmp 0x1017337d
cmp eax, dword [esp + 0xc]
cmovg eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
mov esi, eax
test edx, edx
jns 0x1017338e
mov dword [esp + 0x18], 0
jmp 0x10173473
cmp edx, ecx
jle 0x10173473
mov dword [esp + 0x18], ecx
jmp 0x10173473
lea eax, [ecx + ecx]
mov dword [esp + 0x10], eax
test ebx, ebx
jns 0x101733be
not ebx
mov eax, ebx
cdq
idiv dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebx, eax
sub ebx, edx
dec ebx
jmp 0x101733cb
mov eax, ebx
cdq
idiv dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebx, edx
cmp ebx, ecx
jl 0x101733d4
sub eax, ebx
lea ebx, [eax - 1]
lea eax, [esi + esi]
mov dword [esp + 0xc], eax
test edi, edi
jns 0x101733f3
not edi
mov eax, edi
cdq
idiv dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov edi, eax
sub edi, edx
dec edi
jmp 0x10173400
mov eax, edi
cdq
idiv dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov edi, edx
cmp edi, esi
jl 0x10173409
sub eax, edi
lea edi, [eax - 1]
mov eax, dword [esp + 0x14]
test eax, eax
jns 0x10173425
not eax
cdq
idiv dword [esp + 0x10]
mov eax, dword [esp + 0x10]
sub eax, edx
dec eax
mov dword [esp + 0x14], eax
jmp 0x10173430
cdq
idiv dword [esp + 0x10]
mov eax, edx
mov dword [esp + 0x14], edx
cmp eax, ecx
jl 0x1017343f
mov ecx, dword [esp + 0x10]
sub ecx, eax
dec ecx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
test eax, eax
jns 0x1017345b
not eax
cdq
idiv ecx
mov eax, ecx
sub eax, edx
dec eax
mov dword [esp + 0x18], eax
jmp 0x10173464
cdq
idiv ecx
mov eax, edx
mov dword [esp + 0x18], edx
cmp eax, esi
jl 0x1017346f
sub ecx, eax
dec ecx
mov dword [esp + 0x18], ecx
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x54]
push eax
push 0
push edi
push ebx
push dword [esp + 0x2c]
call dword [esp + 0x34]
lea eax, [esp + 0x70]
push eax
push 0
push edi
push esi
push dword [esp + 0x40]
call dword [esp + 0x48]
mov edi, dword [esp + 0x40]
lea eax, [esp + 0x74]
push eax
push 0
push edi
push ebx
mov ebx, dword [esp + 0x54]
push ebx
call dword [esp + 0x5c]
lea eax, [esp + 0x9c]
push eax
push 0
jmp 0x101734fa
lea eax, [esp + 0x54]
push eax
push 1
push edi
push ebx
push esi
call dword [esp + 0x34]
mov esi, dword [esp + 0x28]
lea eax, [esp + 0x70]
push eax
push 1
push edi
push esi
push dword [esp + 0x40]
call dword [esp + 0x48]
mov edi, dword [esp + 0x40]
lea eax, [esp + 0x74]
push eax
push 1
push edi
push ebx
mov ebx, dword [esp + 0x54]
push ebx
call dword [esp + 0x5c]
lea eax, [esp + 0x9c]
push eax
push 1
push edi
push esi
push ebx
call dword [esp + 0x70]
mov ecx, dword [esp + 0x80]
add esp, 0x50
mov eax, dword [esp + 0x38]
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 + 0x14], ebx
mov dword [esp + 0x18], edx
mov esi, ebx
sub esi, eax
sub edi, ebx
mov eax, dword [esp + 0x4c]
sub esi, ecx
mov ecx, dword [esp + 0x54]
and eax, 0xff00
mov ebx, dword [esp + 0x5c]
mov edx, ecx
imul eax, edi
and edx, 0xff00
add esi, 0x10000
movzx ecx, cl
imul edx, esi
imul ecx, esi
add edx, eax
mov eax, ebx
and eax, 0xff00
imul eax, dword [esp + 0x18]
add edx, eax
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x60]
mov eax, edx
and eax, 0xff00
imul eax, dword [esp + 0x14]
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x4c]
movzx eax, al
imul eax, edi
and dword [esp + 0x10], 0xff000000
add ecx, eax
movzx eax, bl
imul eax, dword [esp + 0x18]
shr ebx, 0x10
add ecx, eax
movzx eax, dl
imul eax, dword [esp + 0x14]
shr edx, 0x10
add ecx, eax
mov eax, dword [esp + 0x4c]
or dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x54]
shr eax, 0x10
shr ecx, 0x10
mov dword [esp + 0x30], eax
mov dword [esp + 0xc], ecx
movzx eax, al
imul eax, edi
movzx ecx, cl
imul ecx, esi
add ecx, eax
movzx eax, bl
imul eax, dword [esp + 0x18]
add ecx, eax
movzx eax, dl
imul eax, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0xc]
and eax, 0xff00
and ecx, 0xff0000
imul eax, esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
and eax, 0xff00
and ebx, 0xff00
imul ebx, dword [esp + 0x18]
and edx, 0xff00
imul edx, dword [esp + 0x14]
imul eax, edi
add dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add eax, ebx
mov ebx, dword [esp + 0x1c]
add eax, edx
and eax, 0xff000000
or ecx, eax
mov eax, dword [esp + 0x10]
shr eax, 0x10
or ecx, eax
mov eax, dword [esp + 0x24]
mov dword [eax], ecx
jmp 0x10173d30
mov eax, dword [ebx + 0x3c]
mov ecx, dword [ebx + 0x34]
mov ebx, dword [ebx + 0x70]
mov esi, dword [eax]
mov edx, dword [eax + 4]
add eax, 8
cmp dword [esp + 0x50], 0
je 0x10173a35
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
lea eax, [esi - 0x10000]
sar eax, 1
mov dword [esp + 0xc], edx
mov edi, dword [ecx + 0x74]
mov ecx, dword [esp + 0x28]
sub ecx, eax
sar esi, 0x10
lea eax, [edx - 0x10000]
dec ecx
mov edx, dword [esp + 0x2c]
sar eax, 1
sub edx, eax
sar ecx, 0x10
mov eax, edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0xc]
dec eax
sar eax, 0x10
add esi, ecx
sar edx, 0x10
add edx, eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0xc], edx
xor edx, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x78], esi
mov dword [esp + 0x48], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], edx
cmp eax, dword [esp + 0xc]
jge 0x10173949
mov edx, ecx
mov dword [esp + 0x30], edx
cmp ecx, esi
jge 0x10173923
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x10]
je 0x10173909
cmp dword [esp + 0x18], 0
je 0x10173803
cmp dword [esp + 0x18], 1
jne 0x1017375b
cmp edx, ebx
jl 0x1017372b
sub ecx, ebx
cmp ecx, ebx
jge 0x10173725
test ecx, ecx
jns 0x10173734
nop
add ecx, ebx
js 0x10173730
cmp eax, edi
jl 0x1017373e
sub esi, edi
cmp esi, edi
jge 0x10173738
test esi, esi
jns 0x101737f5
add esi, edi
js 0x10173746
lea eax, [esp + 0xdc]
push eax
push 0
push esi
push ecx
jmp 0x1017380f
cmp dword [esp + 0x18], 2
jne 0x101737a3
test edx, edx
jns 0x1017376a
xor ecx, ecx
jmp 0x10173776
lea eax, [ebx - 1]
cmp edx, eax
cmovg ecx, eax
mov eax, dword [esp + 0x10]
test eax, eax
jns 0x1017378c
lea eax, [esp + 0xdc]
xor esi, esi
push eax
push esi
push esi
push ecx
jmp 0x1017380f
lea edx, [edi - 1]
cmp eax, edx
jle 0x101737f5
lea eax, [esp + 0xdc]
mov esi, edx
push eax
push 0
push esi
push ecx
jmp 0x1017380f
lea esi, [ebx + ebx]
mov eax, edx
test edx, edx
jns 0x101737b8
not eax
mov ecx, esi
cdq
idiv esi
sub ecx, edx
dec ecx
jmp 0x101737bd
cdq
idiv esi
mov ecx, edx
cmp ecx, ebx
jl 0x101737c6
sub esi, ecx
lea ecx, [esi - 1]
mov edx, dword [esp + 0x10]
lea esi, [edi + edi]
mov dword [esp + 0x38], esi
mov eax, edx
test edx, edx
jns 0x101737e3
not eax
cdq
idiv esi
mov eax, esi
sub esi, edx
dec esi
jmp 0x101737ec
cdq
idiv esi
mov eax, dword [esp + 0x38]
mov esi, edx
cmp esi, edi
jl 0x101737f5
sub eax, esi
lea esi, [eax - 1]
lea eax, [esp + 0xdc]
push eax
push 0
push esi
push ecx
jmp 0x1017380f
lea ecx, [esp + 0xdc]
push ecx
push 1
push eax
push edx
push dword [esp + 0x2c]
call dword [esp + 0x34]
mov eax, dword [esp + 0x5c]
xorps xmm1, xmm1
mov esi, dword [esp + 0x88]
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 + 0xdc]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.101f5410
mov dword [esp + 0x48], eax
xorps xmm1, xmm1
mov eax, dword [esp + 0x40]
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
cvtsi2sd xmm1, eax
shr eax, 0x1f
mulss xmm0, dword [esp + 0xe0]
addsd xmm1, qword [eax*8 + 0x10235760]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.101f5410
mov dword [esp + 0x40], 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 + 0xe4]
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 + 0x3c]
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
cvtsi2sd xmm1, eax
shr eax, 0x1f
mulss xmm0, dword [esp + 0xe8]
addsd xmm1, qword [eax*8 + 0x10235760]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.101f5410
mov edx, dword [esp + 0x30]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x10]
add dword [esp + 0x14], 4
inc edx
mov esi, dword [esp + 0x78]
mov dword [esp + 0x30], edx
cmp edx, esi
jl 0x101736f5
mov ecx, dword [esp + 0x7c]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0xc]
jl 0x101736e7
movss xmm3, dword [0x102c6188]
xorps xmm2, xmm2
movss xmm4, dword [0x10287e54]
mov edx, dword [esp + 0x48]
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x10235760]
cvtpd2ps xmm1, xmm0
mulss xmm1, xmm4
comiss xmm2, xmm1
jbe 0x1017396f
movaps xmm0, xmm2
jmp 0x10173976
movaps xmm0, xmm3
minss xmm0, xmm1
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x40]
movss dword [ecx], 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 0x101739a8
movaps xmm0, xmm2
jmp 0x101739af
movaps xmm0, xmm3
minss xmm0, xmm1
mov eax, dword [esp + 0x44]
movss dword [ecx + 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 0x101739de
movaps xmm0, xmm2
jmp 0x101739e5
movaps xmm0, xmm3
minss xmm0, xmm1
mov eax, dword [esp + 0x3c]
movss dword [ecx + 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 0x10173a20
mov ebx, dword [esp + 0x1c]
movaps xmm0, xmm2
movss dword [ecx + 0xc], xmm0
jmp 0x10173d30
mov ebx, dword [esp + 0x1c]
movaps xmm0, xmm3
minss xmm0, xmm1
movss dword [ecx + 0xc], xmm0
jmp 0x10173d30
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
lea eax, [esi - 0x10000]
sar eax, 1
mov dword [esp + 0x10], edx
mov edi, dword [ecx + 0x74]
mov ecx, dword [esp + 0x28]
sub ecx, eax
sar esi, 0x10
lea eax, [edx - 0x10000]
mov dword [esp + 0x30], ebx
mov edx, dword [esp + 0x2c]
dec ecx
sar eax, 1
sar ecx, 0x10
sub edx, eax
add esi, ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov eax, edx
dec eax
sar ecx, 0x10
sar eax, 0x10
add ecx, eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
xor edx, edx
mov dword [esp + 0x48], esi
xor ecx, ecx
xor esi, esi
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x10]
jge 0x10173c9e
mov ecx, dword [esp + 0x48]
xorps xmm1, xmm1
mov esi, dword [esp + 0x18]
movaps xmmword [esp + 0x80], xmm1
mov edx, esi
mov dword [esp + 0x38], edx
cmp esi, ecx
jge 0x10173c68
mov ebx, dword [esp + 0x40]
mov ecx, edx
mov esi, eax
mov ebx, dword [ebx]
test ebx, ebx
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x30]
je 0x10173c4e
cmp dword [esp + 0x3c], 0
je 0x10173bce
cmp dword [esp + 0x3c], 1
jne 0x10173b2b
cmp edx, ebx
jl 0x10173afb
sub ecx, ebx
cmp ecx, ebx
jge 0x10173af5
test ecx, ecx
jns 0x10173b04
nop
add ecx, ebx
js 0x10173b00
cmp eax, edi
jl 0x10173b0e
sub esi, edi
cmp esi, edi
jge 0x10173b08
test esi, esi
jns 0x10173bc0
add esi, edi
js 0x10173b16
lea eax, [esp + 0xec]
push eax
push 0
push esi
push ecx
jmp 0x10173bda
cmp dword [esp + 0x3c], 2
jne 0x10173b76
test edx, edx
jns 0x10173b3a
xor ecx, ecx
jmp 0x10173b46
lea eax, [ebx - 1]
cmp edx, eax
cmovg ecx, eax
mov eax, dword [esp + 0xc]
test eax, eax
jns 0x10173b5c
lea eax, [esp + 0xec]
xor esi, esi
push eax
push esi
push esi
push ecx
jmp 0x10173bda
lea edx, [edi - 1]
cmp eax, edx
jle 0x10173bc0
lea eax, [esp + 0xec]
mov esi, edx
push eax
push 0
push esi
push ecx
jmp 0x10173bda
lea esi, [ebx + ebx]
mov eax, edx
test edx, edx
jns 0x10173b8b
not eax
mov ecx, esi
cdq
idiv esi
sub ecx, edx
dec ecx
jmp 0x10173b90
cdq
idiv esi
mov ecx, edx
cmp ecx, ebx
jl 0x10173b99
sub esi, ecx
lea ecx, [esi - 1]
mov edx, dword [esp + 0xc]
lea ebx, [edi + edi]
mov eax, edx
test edx, edx
jns 0x10173bb2
not eax
mov esi, ebx
cdq
idiv ebx
sub esi, edx
dec esi
jmp 0x10173bb7
cdq
idiv ebx
mov esi, edx
cmp esi, edi
jl 0x10173bc0
sub ebx, esi
lea esi, [ebx - 1]
lea eax, [esp + 0xec]
push eax
push 0
push esi
push ecx
jmp 0x10173bda
lea ecx, [esp + 0xec]
push ecx
push 1
push eax
push edx
push dword [esp + 0x2c]
call dword [esp + 0x34]
mov ebx, dword [esp + 0x100]
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 + 0x38]
movd xmm1, ecx
movd xmm2, esi
punpckldq xmm1, xmm2
movd xmm3, eax
mov eax, dword [esp + 0xc]
punpckldq xmm3, xmm0
punpckldq xmm3, xmm1
paddd xmm3, xmmword [esp + 0x80]
movaps xmm1, xmm3
movaps xmmword [esp + 0x80], xmm1
add dword [esp + 0x40], 4
inc edx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x38], edx
cmp edx, ecx
jl 0x10173ac5
mov esi, dword [esp + 0x18]
inc eax
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x10]
jl 0x10173ab7
movaps xmm0, xmm1
movd edx, xmm1
psrldq xmm0, 4
movd ecx, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
psrldq xmm1, 0xc
movd eax, xmm0
movd esi, xmm1
jmp 0x10173ca0
xor eax, eax
add esi, 0x8000
add eax, 0x8000
shr esi, 0x10
add edx, 0x8000
add ecx, 0x8000
shr eax, 0x10
shr edx, 0x10
mov ebx, 0xff
shr ecx, 0x10
cmp esi, 0xff
cmova esi, ebx
cmp edx, ebx
cmova edx, ebx
cmp ecx, ebx
cmova ecx, ebx
cmp eax, ebx
cmova eax, ebx
mov ebx, dword [esp + 0x1c]
shl esi, 8
or esi, edx
shl esi, 8
or esi, ecx
shl esi, 8
or esi, eax
mov eax, dword [esp + 0x24]
mov dword [eax], esi
jmp 0x10173d30
cmp dword [esp + 0x50], 0
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
je 0x10173d16
push 0x101763a0
push 0x10175360
jmp 0x10173d20
push 0x10176330
push 0x10175310
push dword [esp + 0x2c]
push edi
push edx
push ecx
push ebx
call fcn.10175450
add esp, 0x1c
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
add eax, dword [esp + 0x64]
inc ecx
add edx, dword [esp + 0x68]
xorps xmm2, xmm2
add esi, dword [esp + 0x58]
movss xmm3, dword [0x102c6188]
movss xmm4, dword [0x10287e54]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x34], ecx
cmp ecx, dword [esp + 0x6c]
jl 0x10172c80
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x10c]
pop edi
pop esi
mov eax, dword [eax + 4]
pop ebx
xor ecx, esp
call fcn.101f469d
mov esp, ebp
pop ebp
ret