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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x114
mov eax, dword [0x1032e6c0]
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, 0x101d7160
lea eax, [esi + 1]
mov dword [esp + 0x58], 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, 0x101d7200
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 0x101d4f63
lea eax, [esp + 0xe0]
push eax
push ecx
call fcn.101d25b0
add esp, 8
test eax, eax
jne 0x101d4f29
mov eax, dword [esp + 0x2c]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x110]
xor ecx, esp
call fcn.1026465b
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 0x101d4f79
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 0x101d6114
cmp dword [esp + 0x58], eax
mov edx, 4
movss xmm3, dword [0x102df684]
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 0x101d4fd7
cmp dword [esp + 0x58], 0
jne 0x101d5029
mov ebx, dword [ebp + 0x10]
cmp dword [ebx + eax*4], 0
mov ebx, dword [esp + 0x20]
je 0x101d60de
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x101d5056
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.102657d0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
cdq
push esi
shld edx, eax, 0x10
push edi
shl eax, 0x10
push edx
push eax
call fcn.102657d0
movss xmm3, dword [0x102df684]
mov edx, eax
mov edi, dword [esp + 0x28]
xorps xmm2, xmm2
mov ecx, dword [esp + 0x14]
jmp 0x101d505e
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 0x101d4fd7
add ecx, 4
add edx, 4
sub esi, 4
jae 0x101d5040
jmp case.default.0x101d506a
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x14], ecx
mov eax, dword [ebx + 0x38]
cmp eax, 6
ja case.default.0x101d506a
jmp dword [eax*4 + 0x101d6134]
mov eax, dword [ebx + 0x34]
lea esi, [ecx - 1]
lea ecx, [edx - 1]
sar esi, 0x10
sar ecx, 0x10
test eax, eax
je 0x101d5160
mov edi, dword [ebx + 0x70]
cmp eax, 1
jne 0x101d50c9
cmp esi, edi
jl 0x101d509a
sub esi, edi
cmp esi, edi
jge 0x101d5094
test esi, esi
jns 0x101d50a4
nop
add esi, edi
js 0x101d50a0
mov eax, dword [ebx + 0x74]
cmp ecx, eax
jl 0x101d50b6
nop dword [eax + eax]
sub ecx, eax
cmp ecx, eax
jge 0x101d50b0
test ecx, ecx
jns 0x101d5148
nop
add ecx, eax
js 0x101d50c0
jmp 0x101d5148
cmp eax, 2
jne 0x101d50f1
test esi, esi
jns 0x101d50d6
xor esi, esi
jmp 0x101d50de
lea eax, [edi - 1]
cmp esi, eax
cmovg esi, eax
mov eax, dword [ebx + 0x74]
test ecx, ecx
jns 0x101d50e9
xor ecx, ecx
jmp 0x101d5148
dec eax
cmp ecx, eax
cmovg ecx, eax
jmp 0x101d5148
lea ebx, [edi + edi]
test esi, esi
jns 0x101d5106
not esi
mov eax, esi
cdq
idiv ebx
mov eax, ebx
sub eax, edx
dec eax
jmp 0x101d510d
mov eax, esi
cdq
idiv ebx
mov eax, edx
mov esi, eax
cmp eax, edi
jl 0x101d5118
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 0x101d5134
not ecx
mov eax, ecx
mov ecx, edi
cdq
idiv edi
sub ecx, edx
dec ecx
jmp 0x101d513b
mov eax, ecx
cdq
idiv edi
mov ecx, edx
cmp ecx, ebx
mov ebx, dword [esp + 0x20]
jl 0x101d5148
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 0x101d60c3
mov eax, dword [esp + 0x2c]
push eax
push 1
push ecx
push esi
push ebx
call edi
add esp, 0x14
jmp 0x101d60c3
cmp dword [esp + 0x58], 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 + 0x18], esi
mov esi, edx
je 0x101d55f6
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, xmm3
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 + 0x14], eax
mulss xmm0, xmm3
movss dword [esp + 0x34], xmm0
je 0x101d53f0
cmp dword [esi + 0x34], 1
mov esi, dword [esp + 0x18]
jne 0x101d525f
cmp ebx, ecx
jl 0x101d51f6
nop
sub ebx, ecx
cmp ebx, ecx
jge 0x101d51f0
test ebx, ebx
jns 0x101d5204
nop word [eax + eax]
add ebx, ecx
js 0x101d5200
cmp edi, esi
jl 0x101d520e
sub edi, esi
cmp edi, esi
jge 0x101d5208
test edi, edi
jns 0x101d5216
add edi, esi
js 0x101d5212
cmp eax, ecx
jl 0x101d522a
nop word [eax + eax]
sub eax, ecx
cmp eax, ecx
jge 0x101d5220
mov dword [esp + 0x14], eax
test eax, eax
jns 0x101d5238
nop
add eax, ecx
js 0x101d5230
mov dword [esp + 0x14], eax
cmp edx, esi
jl 0x101d524a
nop dword [eax]
sub edx, esi
cmp edx, esi
jge 0x101d5240
mov dword [esp + 0x24], edx
test edx, edx
jns 0x101d539f
add edx, esi
js 0x101d5252
mov dword [esp + 0x24], edx
jmp 0x101d539f
mov esi, dword [esp + 0x20]
cmp dword [esi + 0x34], 2
mov esi, dword [esp + 0x18]
jne 0x101d52cf
test ebx, ebx
jns 0x101d5276
xor ebx, ebx
dec ecx
jmp 0x101d5281
dec ecx
mov dword [esp + 0x18], ecx
cmp ebx, ecx
jle 0x101d5285
mov ebx, ecx
mov dword [esp + 0x18], ecx
lea ecx, [esi - 1]
test edi, edi
jns 0x101d5290
xor edi, edi
jmp 0x101d5296
cmp edi, ecx
jle 0x101d5296
mov edi, ecx
test eax, eax
jns 0x101d529e
xor esi, esi
jmp 0x101d52ad
cmp eax, dword [esp + 0x18]
cmovg eax, dword [esp + 0x18]
mov dword [esp + 0x14], eax
mov esi, eax
test edx, edx
jns 0x101d52be
mov dword [esp + 0x24], 0
jmp 0x101d53a3
cmp edx, ecx
jle 0x101d53a3
mov dword [esp + 0x24], ecx
jmp 0x101d53a3
lea eax, [ecx + ecx]
mov dword [esp + 0x1c], eax
test ebx, ebx
jns 0x101d52ee
not ebx
mov eax, ebx
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov ebx, eax
sub ebx, edx
dec ebx
jmp 0x101d52fb
mov eax, ebx
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov ebx, edx
cmp ebx, ecx
jl 0x101d5304
sub eax, ebx
lea ebx, [eax - 1]
lea eax, [esi + esi]
mov dword [esp + 0x18], eax
test edi, edi
jns 0x101d5323
not edi
mov eax, edi
cdq
idiv dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov edi, eax
sub edi, edx
dec edi
jmp 0x101d5330
mov eax, edi
cdq
idiv dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov edi, edx
cmp edi, esi
jl 0x101d5339
sub eax, edi
lea edi, [eax - 1]
mov eax, dword [esp + 0x14]
test eax, eax
jns 0x101d5355
not eax
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
sub eax, edx
dec eax
mov dword [esp + 0x14], eax
jmp 0x101d5360
cdq
idiv dword [esp + 0x1c]
mov eax, edx
mov dword [esp + 0x14], edx
cmp eax, ecx
jl 0x101d536f
mov ecx, dword [esp + 0x1c]
sub ecx, eax
dec ecx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
test eax, eax
jns 0x101d538b
not eax
cdq
idiv ecx
mov eax, ecx
sub eax, edx
dec eax
mov dword [esp + 0x24], eax
jmp 0x101d5394
cdq
idiv ecx
mov eax, edx
mov dword [esp + 0x24], edx
cmp eax, esi
jl 0x101d539f
sub ecx, eax
dec ecx
mov dword [esp + 0x24], ecx
mov esi, dword [esp + 0x14]
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 0x101d543c
lea eax, [esp + 0xa0]
push eax
push 1
push edi
push ebx
push esi
call dword [esp + 0x3c]
mov esi, dword [esp + 0x28]
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 [0x102a5500]
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 + 0x44], xmm0
movss xmm0, dword [esp + 0xb4]
mulss xmm0, xmm3
mulss xmm5, xmm4
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0xc4]
mulss xmm0, xmm2
movss dword [esp + 0x34], xmm1
movss dword [esp + 0x48], xmm3
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0xd4]
mulss xmm0, xmm4
movss xmm4, dword [esp + 0xac]
mulss xmm4, xmm1
movss dword [esp + 0x18], 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 + 0x50], xmm2
mulss xmm7, xmm3
movss dword [esp + 0x24], xmm0
movss xmm0, dword [esp + 0xb0]
mulss xmm0, dword [esp + 0x48]
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 + 0x50]
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 + 0x44]
addss xmm0, dword [esp + 0x4c]
movss dword [eax], xmm1
addss xmm0, dword [esp + 0x54]
addss xmm0, dword [esp + 0x18]
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 0x101d60c3
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 + 0x14], eax
lea edx, [edi + 1]
mov dword [esp + 0x24], edx
je 0x101d583d
cmp dword [esi + 0x34], 1
mov esi, dword [esp + 0x18]
jne 0x101d56af
cmp ebx, ecx
jl 0x101d5646
nop word [eax + eax]
sub ebx, ecx
cmp ebx, ecx
jge 0x101d5640
test ebx, ebx
jns 0x101d5654
nop word [eax + eax]
add ebx, ecx
js 0x101d5650
cmp edi, esi
jl 0x101d565e
sub edi, esi
cmp edi, esi
jge 0x101d5658
test edi, edi
jns 0x101d5666
add edi, esi
js 0x101d5662
cmp eax, ecx
jl 0x101d567a
nop word [eax + eax]
sub eax, ecx
cmp eax, ecx
jge 0x101d5670
mov dword [esp + 0x14], eax
test eax, eax
jns 0x101d5688
nop
add eax, ecx
js 0x101d5680
mov dword [esp + 0x14], eax
cmp edx, esi
jl 0x101d569a
nop dword [eax]
sub edx, esi
cmp edx, esi
jge 0x101d5690
mov dword [esp + 0x24], edx
test edx, edx
jns 0x101d57ef
add edx, esi
js 0x101d56a2
mov dword [esp + 0x24], edx
jmp 0x101d57ef
mov esi, dword [esp + 0x20]
cmp dword [esi + 0x34], 2
mov esi, dword [esp + 0x18]
jne 0x101d571f
test ebx, ebx
jns 0x101d56c6
xor ebx, ebx
dec ecx
jmp 0x101d56d1
dec ecx
mov dword [esp + 0x18], ecx
cmp ebx, ecx
jle 0x101d56d5
mov ebx, ecx
mov dword [esp + 0x18], ecx
lea ecx, [esi - 1]
test edi, edi
jns 0x101d56e0
xor edi, edi
jmp 0x101d56e6
cmp edi, ecx
jle 0x101d56e6
mov edi, ecx
test eax, eax
jns 0x101d56ee
xor esi, esi
jmp 0x101d56fd
cmp eax, dword [esp + 0x18]
cmovg eax, dword [esp + 0x18]
mov dword [esp + 0x14], eax
mov esi, eax
test edx, edx
jns 0x101d570e
mov dword [esp + 0x24], 0
jmp 0x101d57f3
cmp edx, ecx
jle 0x101d57f3
mov dword [esp + 0x24], ecx
jmp 0x101d57f3
lea eax, [ecx + ecx]
mov dword [esp + 0x1c], eax
test ebx, ebx
jns 0x101d573e
not ebx
mov eax, ebx
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov ebx, eax
sub ebx, edx
dec ebx
jmp 0x101d574b
mov eax, ebx
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov ebx, edx
cmp ebx, ecx
jl 0x101d5754
sub eax, ebx
lea ebx, [eax - 1]
lea eax, [esi + esi]
mov dword [esp + 0x18], eax
test edi, edi
jns 0x101d5773
not edi
mov eax, edi
cdq
idiv dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov edi, eax
sub edi, edx
dec edi
jmp 0x101d5780
mov eax, edi
cdq
idiv dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov edi, edx
cmp edi, esi
jl 0x101d5789
sub eax, edi
lea edi, [eax - 1]
mov eax, dword [esp + 0x14]
test eax, eax
jns 0x101d57a5
not eax
cdq
idiv dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
sub eax, edx
dec eax
mov dword [esp + 0x14], eax
jmp 0x101d57b0
cdq
idiv dword [esp + 0x1c]
mov eax, edx
mov dword [esp + 0x14], edx
cmp eax, ecx
jl 0x101d57bf
mov ecx, dword [esp + 0x1c]
sub ecx, eax
dec ecx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
test eax, eax
jns 0x101d57db
not eax
cdq
idiv ecx
mov eax, ecx
sub eax, edx
dec eax
mov dword [esp + 0x24], eax
jmp 0x101d57e4
cdq
idiv ecx
mov eax, edx
mov dword [esp + 0x24], edx
cmp eax, esi
jl 0x101d57ef
sub ecx, eax
dec ecx
mov dword [esp + 0x24], ecx
mov esi, dword [esp + 0x14]
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 0x101d5886
lea eax, [esp + 0x64]
push eax
push 1
push edi
push ebx
push esi
call dword [esp + 0x3c]
mov esi, dword [esp + 0x28]
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 + 0x18], 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 + 0x18]
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 + 0x18]
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 + 0x18]
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 + 0x18]
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 0x101d60c3
cmp dword [esp + 0x58], 0
mov eax, dword [ebx + 0x3c]
je 0x101d5d72
mov ecx, dword [eax + 4]
mov esi, dword [eax]
add eax, 8
mov dword [esp + 0x24], ecx
mov ecx, dword [ebx + 0x34]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x4c], eax
lea eax, [esi - 0x10000]
sar eax, 1
mov ebx, dword [ebx + 0x70]
mov edi, dword [ecx + 0x74]
mov ecx, dword [esp + 0x14]
sub ecx, eax
sar esi, 0x10
dec ecx
sar ecx, 0x10
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x24]
add esi, dword [esp + 0x14]
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 + 0x44], 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 + 0x48], eax
mov dword [esp + 0x50], ecx
cmp edx, dword [esp + 0x24]
jge 0x101d5cd2
mov ecx, dword [esp + 0x14]
nop
mov eax, ecx
mov dword [esp + 0x18], eax
cmp ecx, esi
jge 0x101d5cb0
nop
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x18]
je 0x101d5c93
cmp dword [esp + 0x54], 0
je 0x101d5b8d
cmp dword [esp + 0x54], 1
jne 0x101d5aeb
cmp eax, ebx
jl 0x101d5ab9
sub ecx, ebx
cmp ecx, ebx
jge 0x101d5ab3
test ecx, ecx
jns 0x101d5ac4
nop dword [eax]
add ecx, ebx
js 0x101d5ac0
cmp edx, edi
jl 0x101d5ace
sub esi, edi
cmp esi, edi
jge 0x101d5ac8
test esi, esi
jns 0x101d5b7f
add esi, edi
js 0x101d5ad6
lea eax, [esp + 0xec]
push eax
push 0
push esi
push ecx
jmp 0x101d5b99
cmp dword [esp + 0x54], 2
jne 0x101d5b31
test eax, eax
jns 0x101d5afa
xor ecx, ecx
jmp 0x101d5b04
lea eax, [ebx - 1]
cmp dword [esp + 0x18], eax
cmovg ecx, eax
test edx, edx
jns 0x101d5b1a
lea eax, [esp + 0xec]
xor esi, esi
push eax
push esi
push esi
push ecx
jmp 0x101d5b99
lea eax, [edi - 1]
cmp edx, eax
jle 0x101d5b7f
mov esi, eax
lea eax, [esp + 0xec]
push eax
push 0
push esi
push ecx
jmp 0x101d5b99
lea esi, [ebx + ebx]
test eax, eax
jns 0x101d5b44
not eax
mov ecx, esi
cdq
idiv esi
sub ecx, edx
dec ecx
jmp 0x101d5b49
cdq
idiv esi
mov ecx, edx
cmp ecx, ebx
jl 0x101d5b52
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 0x101d5b6d
not eax
cdq
idiv esi
mov eax, esi
sub esi, edx
dec esi
jmp 0x101d5b76
cdq
idiv esi
mov eax, dword [esp + 0x34]
mov esi, edx
cmp esi, edi
jl 0x101d5b7f
sub eax, esi
lea esi, [eax - 1]
lea eax, [esp + 0xec]
push eax
push 0
push esi
push ecx
jmp 0x101d5b99
lea ecx, [esp + 0xec]
push ecx
push 1
push edx
push eax
push dword [esp + 0x30]
call dword [esp + 0x3c]
mov eax, dword [esp + 0x58]
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 + 0x102a4f50]
mulss xmm0, dword [esp + 0xec]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.10264f00
mov dword [esp + 0x44], eax
xorps xmm1, xmm1
mov eax, dword [esp + 0x50]
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
cvtsi2sd xmm1, eax
shr eax, 0x1f
mulss xmm0, dword [esp + 0xf0]
addsd xmm1, qword [eax*8 + 0x102a4f50]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.10264f00
mov dword [esp + 0x50], eax
xorps xmm1, xmm1
mov eax, dword [esp + 0x48]
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
cvtsi2sd xmm1, eax
shr eax, 0x1f
mulss xmm0, dword [esp + 0xf4]
addsd xmm1, qword [eax*8 + 0x102a4f50]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.10264f00
mov dword [esp + 0x48], 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 + 0x102a4f50]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.10264f00
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
add dword [esp + 0x4c], 4
inc eax
mov esi, dword [esp + 0x84]
mov dword [esp + 0x18], eax
cmp eax, esi
jl 0x101d5a80
mov ecx, dword [esp + 0x14]
inc edx
mov dword [esp + 0x1c], edx
cmp edx, dword [esp + 0x24]
jl 0x101d5a70
movss xmm3, dword [0x102df684]
xorps xmm2, xmm2
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
movss xmm4, dword [0x102a5500]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm3
comiss xmm2, xmm1
jbe 0x101d5cef
movaps xmm0, xmm2
jmp 0x101d5cf6
movaps xmm0, xmm4
minss xmm0, xmm1
mov eax, dword [esp + 0x2c]
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
movss dword [eax], xmm0
mulss xmm1, xmm3
comiss xmm2, xmm1
jbe 0x101d5d13
movaps xmm0, xmm2
jmp 0x101d5d1a
movaps xmm0, xmm4
minss xmm0, xmm1
movd xmm1, dword [esp + 0x48]
cvtdq2ps xmm1, xmm1
movss dword [eax + 4], xmm0
mulss xmm1, xmm3
comiss xmm2, xmm1
jbe 0x101d5d36
movaps xmm0, xmm2
jmp 0x101d5d3d
movaps xmm0, xmm4
minss xmm0, xmm1
movd xmm1, dword [esp + 0x30]
cvtdq2ps xmm1, xmm1
movss dword [eax + 8], xmm0
mulss xmm1, xmm3
comiss xmm2, xmm1
jbe 0x101d5d61
movaps xmm0, xmm2
movss dword [eax + 0xc], xmm0
jmp case.default.0x101d506a
movaps xmm0, xmm4
minss xmm0, xmm1
movss dword [eax + 0xc], xmm0
jmp case.default.0x101d506a
mov ecx, dword [eax]
mov esi, dword [eax + 4]
add eax, 8
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebx + 0x34]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x50], eax
mov ebx, dword [ebx + 0x70]
mov dword [esp + 0x34], ebx
mov edi, dword [ecx + 0x74]
mov ecx, dword [esp + 0x4c]
lea eax, [ecx - 0x10000]
sar ecx, 0x10
sar eax, 1
sub dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
dec eax
sar eax, 0x10
mov dword [esp + 0x14], eax
lea eax, [esi - 0x10000]
add ecx, dword [esp + 0x14]
sar eax, 1
sub edx, eax
sar esi, 0x10
dec edx
mov dword [esp + 0x4c], ecx
sar edx, 0x10
xor eax, eax
add esi, edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x54], esi
xor esi, esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
cmp edx, dword [esp + 0x54]
jge 0x101d5fe7
mov esi, dword [esp + 0x14]
xorps xmm1, xmm1
movaps xmmword [esp + 0x90], xmm1
nop
mov eax, esi
mov dword [esp + 0x44], eax
cmp esi, ecx
jge 0x101d5faf
nop
mov ebx, dword [esp + 0x50]
mov ecx, eax
mov esi, edx
mov ebx, dword [ebx]
test ebx, ebx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x34]
je 0x101d5f95
cmp dword [esp + 0x30], 0
je 0x101d5f15
cmp dword [esp + 0x30], 1
jne 0x101d5e7b
cmp eax, ebx
jl 0x101d5e46
sub ecx, ebx
cmp ecx, ebx
jge 0x101d5e40
test ecx, ecx
jns 0x101d5e54
nop word [eax + eax]
add ecx, ebx
js 0x101d5e50
cmp edx, edi
jl 0x101d5e5e
sub esi, edi
cmp esi, edi
jge 0x101d5e58
test esi, esi
jns 0x101d5f07
add esi, edi
js 0x101d5e66
lea eax, [esp + 0xfc]
push eax
push 0
push esi
push ecx
jmp 0x101d5f21
cmp dword [esp + 0x30], 2
jne 0x101d5ec1
test eax, eax
jns 0x101d5e8a
xor ecx, ecx
jmp 0x101d5e94
lea eax, [ebx - 1]
cmp dword [esp + 0x44], eax
cmovg ecx, eax
test edx, edx
jns 0x101d5eaa
lea eax, [esp + 0xfc]
xor esi, esi
push eax
push esi
push esi
push ecx
jmp 0x101d5f21
lea eax, [edi - 1]
cmp edx, eax
jle 0x101d5f07
mov esi, eax
lea eax, [esp + 0xfc]
push eax
push 0
push esi
push ecx
jmp 0x101d5f21
lea esi, [ebx + ebx]
test eax, eax
jns 0x101d5ed4
not eax
mov ecx, esi
cdq
idiv esi
sub ecx, edx
dec ecx
jmp 0x101d5ed9
cdq
idiv esi
mov ecx, edx
cmp ecx, ebx
jl 0x101d5ee2
sub esi, ecx
lea ecx, [esi - 1]
mov eax, dword [esp + 0x1c]
lea ebx, [edi + edi]
test eax, eax
jns 0x101d5ef9
not eax
mov esi, ebx
cdq
idiv ebx
sub esi, edx
dec esi
jmp 0x101d5efe
cdq
idiv ebx
mov esi, edx
cmp esi, edi
jl 0x101d5f07
sub ebx, esi
lea esi, [ebx - 1]
lea eax, [esp + 0xfc]
push eax
push 0
push esi
push ecx
jmp 0x101d5f21
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 + 0x48]
mov esi, ebx
shr eax, 8
movzx ecx, al
imul ecx, dword [esp + 0x48]
shr ebx, 0x10
shr esi, 0x18
imul esi, dword [esp + 0x48]
movzx eax, bl
imul eax, dword [esp + 0x48]
movd xmm0, edx
mov edx, dword [esp + 0x1c]
movd xmm1, ecx
movd xmm2, esi
punpckldq xmm1, xmm2
movd xmm3, eax
mov eax, dword [esp + 0x44]
punpckldq xmm3, xmm0
punpckldq xmm3, xmm1
paddd xmm3, xmmword [esp + 0x90]
movaps xmm1, xmm3
movaps xmmword [esp + 0x90], xmm1
add dword [esp + 0x50], 4
inc eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x44], eax
cmp eax, ecx
jl 0x101d5e10
mov esi, dword [esp + 0x14]
inc edx
mov dword [esp + 0x1c], edx
cmp edx, dword [esp + 0x54]
jl 0x101d5e00
movaps xmm0, xmm1
movd esi, xmm1
psrldq xmm0, 4
movd dword [esp + 0x48], xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
psrldq xmm1, 0xc
movd dword [esp + 0x44], xmm0
movd eax, xmm1
add eax, 0x8000
cdq
and edx, 0xffff
lea ecx, [edx + eax]
lea eax, [esi + 0x8000]
sar ecx, 0x10
cdq
and edx, 0xffff
lea esi, [edx + eax]
mov eax, dword [esp + 0x48]
add eax, 0x8000
sar esi, 0x10
cdq
and edx, 0xffff
lea edi, [edx + eax]
mov eax, dword [esp + 0x44]
add eax, 0x8000
sar edi, 0x10
cdq
and edx, 0xffff
add eax, edx
mov edx, 0xff
sar eax, 0x10
test ecx, ecx
jns 0x101d6044
xor ecx, ecx
jmp 0x101d604d
cmp ecx, 0xff
cmovg ecx, edx
test esi, esi
jns 0x101d6055
xor esi, esi
jmp 0x101d605e
cmp esi, 0xff
cmovg esi, edx
test edi, edi
jns 0x101d6066
xor edi, edi
jmp 0x101d606f
cmp edi, 0xff
cmovg edi, edx
test eax, eax
jns 0x101d6077
xor eax, eax
jmp 0x101d607f
cmp eax, 0xff
cmovg eax, edx
shl ecx, 8
or ecx, esi
shl ecx, 8
or ecx, edi
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [eax], ecx
jmp 0x101d60c3
cmp dword [esp + 0x58], 0
je 0x101d60a9
push 0x101d7460
push 0x101d63f0
jmp 0x101d60b3
push 0x101d73a0
push 0x101d63a0
push dword [esp + 0x34]
push edi
push edx
push ecx
push ebx
call fcn.101d64e0
add esp, 0x1c
movss xmm3, dword [0x102df684]
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 0x101d4fb5
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.1026465b
mov esp, ebp
pop ebp
ret