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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x104
mov eax, dword [0x1032e6c0]
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, 0x101d72c0
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, 0x101d7310
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 0x101d3c93
lea ecx, [esp + 0xd0]
push ecx
push eax
call fcn.101d25b0
add esp, 8
test eax, eax
je 0x101d4e10
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 0x101d3ca7
mov eax, dword [esp + 0x28]
mov dword [esp + 0x64], 0x10000
mov dword [esp + 0x68], 0
xor ecx, ecx
mov dword [esp + 0x3c], ecx
cmp dword [esp + 0x6c], ecx
jle 0x101d4e10
movss xmm3, dword [0x102df684]
test esi, esi
movss xmm4, dword [0x102a5500]
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 0x101d3d3f
cmp dword [esp + 0x50], 0
jne 0x101d3d13
mov ebx, dword [ebp + 0x10]
cmp dword [ebx + ecx*4], 0
mov ebx, dword [esp + 0x1c]
jne 0x101d3d3f
jmp 0x101d4dd6
shl ecx, 4
lea edx, [esp + 0xfc]
add ecx, dword [ebp + 0x10]
mov esi, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x101d3d3b
add ecx, 4
add edx, 4
sub esi, 4
jae 0x101d3d25
jmp 0x101d4dc6
mov ecx, dword [esp + 0x3c]
mov eax, dword [ebx + 0x38]
cmp eax, 6
ja case.default.0x101d3d4b
jmp dword [eax*4 + 0x101d4e2c]
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 0x101d3e4c
mov edi, dword [ebx + 0x70]
cmp eax, 1
jne 0x101d3db6
cmp esi, edi
jl 0x101d3d86
nop dword [eax]
sub esi, edi
cmp esi, edi
jge 0x101d3d80
test esi, esi
jns 0x101d3d94
nop word [eax + eax]
add esi, edi
js 0x101d3d90
mov eax, dword [ebx + 0x74]
cmp ecx, eax
jl 0x101d3da6
nop dword [eax + eax]
sub ecx, eax
cmp ecx, eax
jge 0x101d3da0
test ecx, ecx
jns 0x101d3e35
nop
add ecx, eax
js 0x101d3db0
jmp 0x101d3e35
cmp eax, 2
jne 0x101d3dde
test esi, esi
jns 0x101d3dc3
xor esi, esi
jmp 0x101d3dcb
lea eax, [edi - 1]
cmp esi, eax
cmovg esi, eax
mov eax, dword [ebx + 0x74]
test ecx, ecx
jns 0x101d3dd6
xor ecx, ecx
jmp 0x101d3e35
dec eax
cmp ecx, eax
cmovg ecx, eax
jmp 0x101d3e35
lea ebx, [edi + edi]
test esi, esi
jns 0x101d3df3
not esi
mov eax, esi
cdq
idiv ebx
mov eax, ebx
sub eax, edx
dec eax
jmp 0x101d3dfa
mov eax, esi
cdq
idiv ebx
mov eax, edx
mov esi, eax
cmp eax, edi
jl 0x101d3e05
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 0x101d3e21
not ecx
mov eax, ecx
mov ecx, edi
cdq
idiv edi
sub ecx, edx
dec ecx
jmp 0x101d3e28
mov eax, ecx
cdq
idiv edi
mov ecx, edx
cmp ecx, ebx
mov ebx, dword [esp + 0x1c]
jl 0x101d3e35
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 0x101d4dc6
push dword [esp + 0x24]
push 1
push ecx
push esi
push ebx
call edi
add esp, 0x14
jmp 0x101d4dc6
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 0x101d42e6
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 + 0x18], edx
movss dword [esp + 0x34], xmm0
movd xmm0, eax
lea eax, [ebx + 1]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x14], eax
mulss xmm0, xmm3
movss dword [esp + 0x30], xmm0
je 0x101d40e0
cmp dword [esi + 0x34], 1
mov esi, dword [esp + 0xc]
jne 0x101d3f4f
cmp ebx, ecx
jl 0x101d3ee8
sub ebx, ecx
cmp ebx, ecx
jge 0x101d3ee2
test ebx, ebx
jns 0x101d3ef4
nop dword [eax]
add ebx, ecx
js 0x101d3ef0
cmp edi, esi
jl 0x101d3efe
sub edi, esi
cmp edi, esi
jge 0x101d3ef8
test edi, edi
jns 0x101d3f06
add edi, esi
js 0x101d3f02
cmp eax, ecx
jl 0x101d3f1a
nop word [eax + eax]
sub eax, ecx
cmp eax, ecx
jge 0x101d3f10
mov dword [esp + 0x14], eax
test eax, eax
jns 0x101d3f28
nop
add eax, ecx
js 0x101d3f20
mov dword [esp + 0x14], eax
cmp edx, esi
jl 0x101d3f3a
nop dword [eax]
sub edx, esi
cmp edx, esi
jge 0x101d3f30
mov dword [esp + 0x18], edx
test edx, edx
jns 0x101d408f
add edx, esi
js 0x101d3f42
mov dword [esp + 0x18], edx
jmp 0x101d408f
mov esi, dword [esp + 0x1c]
cmp dword [esi + 0x34], 2
mov esi, dword [esp + 0xc]
jne 0x101d3fbf
test ebx, ebx
jns 0x101d3f66
xor ebx, ebx
dec ecx
jmp 0x101d3f71
dec ecx
mov dword [esp + 0xc], ecx
cmp ebx, ecx
jle 0x101d3f75
mov ebx, ecx
mov dword [esp + 0xc], ecx
lea ecx, [esi - 1]
test edi, edi
jns 0x101d3f80
xor edi, edi
jmp 0x101d3f86
cmp edi, ecx
jle 0x101d3f86
mov edi, ecx
test eax, eax
jns 0x101d3f8e
xor esi, esi
jmp 0x101d3f9d
cmp eax, dword [esp + 0xc]
cmovg eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
mov esi, eax
test edx, edx
jns 0x101d3fae
mov dword [esp + 0x18], 0
jmp 0x101d4093
cmp edx, ecx
jle 0x101d4093
mov dword [esp + 0x18], ecx
jmp 0x101d4093
lea eax, [ecx + ecx]
mov dword [esp + 0x10], eax
test ebx, ebx
jns 0x101d3fde
not ebx
mov eax, ebx
cdq
idiv dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebx, eax
sub ebx, edx
dec ebx
jmp 0x101d3feb
mov eax, ebx
cdq
idiv dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebx, edx
cmp ebx, ecx
jl 0x101d3ff4
sub eax, ebx
lea ebx, [eax - 1]
lea eax, [esi + esi]
mov dword [esp + 0xc], eax
test edi, edi
jns 0x101d4013
not edi
mov eax, edi
cdq
idiv dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov edi, eax
sub edi, edx
dec edi
jmp 0x101d4020
mov eax, edi
cdq
idiv dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov edi, edx
cmp edi, esi
jl 0x101d4029
sub eax, edi
lea edi, [eax - 1]
mov eax, dword [esp + 0x14]
test eax, eax
jns 0x101d4045
not eax
cdq
idiv dword [esp + 0x10]
mov eax, dword [esp + 0x10]
sub eax, edx
dec eax
mov dword [esp + 0x14], eax
jmp 0x101d4050
cdq
idiv dword [esp + 0x10]
mov eax, edx
mov dword [esp + 0x14], edx
cmp eax, ecx
jl 0x101d405f
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 0x101d407b
not eax
cdq
idiv ecx
mov eax, ecx
sub eax, edx
dec eax
mov dword [esp + 0x18], eax
jmp 0x101d4084
cdq
idiv ecx
mov eax, edx
mov dword [esp + 0x18], edx
cmp eax, esi
jl 0x101d408f
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 0x101d412c
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 [0x102a5500]
add esp, 0x50
movss xmm5, dword [esp + 0x30]
movaps xmm0, xmm1
movss xmm2, dword [esp + 0x34]
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 + 0x48], xmm0
movss xmm0, dword [esp + 0xa4]
mulss xmm0, xmm3
movss dword [esp + 0x30], xmm1
movss xmm5, dword [esp + 0xc8]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [esp + 0xb4]
mulss xmm0, xmm2
movss dword [esp + 0x34], xmm3
movss dword [esp + 0x38], xmm2
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0xc4]
mulss xmm0, xmm4
movss dword [esp + 0x40], 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 + 0x34]
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 + 0x38]
movss xmm2, dword [esp + 0xcc]
addss xmm7, xmm3
mulss xmm2, dword [esp + 0x40]
addss xmm1, xmm0
movss xmm0, dword [esp + 0xc0]
mulss xmm0, dword [esp + 0x40]
addss xmm7, xmm2
addss xmm1, xmm0
movss xmm0, dword [esp + 0x48]
addss xmm0, dword [esp + 0x44]
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 0x101d4dc6
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 + 0x34], eax
lea eax, [ebx + 1]
mov dword [esp + 0x14], eax
lea edx, [edi + 1]
mov dword [esp + 0x18], edx
je 0x101d4527
cmp dword [esi + 0x34], 1
mov esi, dword [esp + 0xc]
jne 0x101d439f
cmp ebx, ecx
jl 0x101d4336
nop word [eax + eax]
sub ebx, ecx
cmp ebx, ecx
jge 0x101d4330
test ebx, ebx
jns 0x101d4344
nop word [eax + eax]
add ebx, ecx
js 0x101d4340
cmp edi, esi
jl 0x101d434e
sub edi, esi
cmp edi, esi
jge 0x101d4348
test edi, edi
jns 0x101d4356
add edi, esi
js 0x101d4352
cmp eax, ecx
jl 0x101d436a
nop word [eax + eax]
sub eax, ecx
cmp eax, ecx
jge 0x101d4360
mov dword [esp + 0x14], eax
test eax, eax
jns 0x101d4378
nop
add eax, ecx
js 0x101d4370
mov dword [esp + 0x14], eax
cmp edx, esi
jl 0x101d438a
nop dword [eax]
sub edx, esi
cmp edx, esi
jge 0x101d4380
mov dword [esp + 0x18], edx
test edx, edx
jns 0x101d44df
add edx, esi
js 0x101d4392
mov dword [esp + 0x18], edx
jmp 0x101d44df
mov esi, dword [esp + 0x1c]
cmp dword [esi + 0x34], 2
mov esi, dword [esp + 0xc]
jne 0x101d440f
test ebx, ebx
jns 0x101d43b6
xor ebx, ebx
dec ecx
jmp 0x101d43c1
dec ecx
mov dword [esp + 0xc], ecx
cmp ebx, ecx
jle 0x101d43c5
mov ebx, ecx
mov dword [esp + 0xc], ecx
lea ecx, [esi - 1]
test edi, edi
jns 0x101d43d0
xor edi, edi
jmp 0x101d43d6
cmp edi, ecx
jle 0x101d43d6
mov edi, ecx
test eax, eax
jns 0x101d43de
xor esi, esi
jmp 0x101d43ed
cmp eax, dword [esp + 0xc]
cmovg eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
mov esi, eax
test edx, edx
jns 0x101d43fe
mov dword [esp + 0x18], 0
jmp 0x101d44e3
cmp edx, ecx
jle 0x101d44e3
mov dword [esp + 0x18], ecx
jmp 0x101d44e3
lea eax, [ecx + ecx]
mov dword [esp + 0x10], eax
test ebx, ebx
jns 0x101d442e
not ebx
mov eax, ebx
cdq
idiv dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebx, eax
sub ebx, edx
dec ebx
jmp 0x101d443b
mov eax, ebx
cdq
idiv dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebx, edx
cmp ebx, ecx
jl 0x101d4444
sub eax, ebx
lea ebx, [eax - 1]
lea eax, [esi + esi]
mov dword [esp + 0xc], eax
test edi, edi
jns 0x101d4463
not edi
mov eax, edi
cdq
idiv dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov edi, eax
sub edi, edx
dec edi
jmp 0x101d4470
mov eax, edi
cdq
idiv dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov edi, edx
cmp edi, esi
jl 0x101d4479
sub eax, edi
lea edi, [eax - 1]
mov eax, dword [esp + 0x14]
test eax, eax
jns 0x101d4495
not eax
cdq
idiv dword [esp + 0x10]
mov eax, dword [esp + 0x10]
sub eax, edx
dec eax
mov dword [esp + 0x14], eax
jmp 0x101d44a0
cdq
idiv dword [esp + 0x10]
mov eax, edx
mov dword [esp + 0x14], edx
cmp eax, ecx
jl 0x101d44af
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 0x101d44cb
not eax
cdq
idiv ecx
mov eax, ecx
sub eax, edx
dec eax
mov dword [esp + 0x18], eax
jmp 0x101d44d4
cdq
idiv ecx
mov eax, edx
mov dword [esp + 0x18], edx
cmp eax, esi
jl 0x101d44df
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 0x101d456a
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 + 0x34]
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 0x101d4dc6
cmp dword [esp + 0x50], 0
mov eax, dword [ebx + 0x3c]
mov esi, dword [eax]
je 0x101d4a5b
mov edx, dword [eax + 4]
add eax, 8
mov ecx, dword [ebx + 0x34]
mov ebx, dword [ebx + 0x70]
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 + 0x44], edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x48], edx
cmp eax, dword [esp + 0xc]
jge 0x101d49b9
mov edx, ecx
mov dword [esp + 0x30], edx
cmp ecx, esi
jge 0x101d4993
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 0x101d4979
cmp dword [esp + 0x18], 0
je 0x101d4873
cmp dword [esp + 0x18], 1
jne 0x101d47cb
cmp edx, ebx
jl 0x101d479b
sub ecx, ebx
cmp ecx, ebx
jge 0x101d4795
test ecx, ecx
jns 0x101d47a4
nop
add ecx, ebx
js 0x101d47a0
cmp eax, edi
jl 0x101d47ae
sub esi, edi
cmp esi, edi
jge 0x101d47a8
test esi, esi
jns 0x101d4865
add esi, edi
js 0x101d47b6
lea eax, [esp + 0xdc]
push eax
push 0
push esi
push ecx
jmp 0x101d487f
cmp dword [esp + 0x18], 2
jne 0x101d4813
test edx, edx
jns 0x101d47da
xor ecx, ecx
jmp 0x101d47e6
lea eax, [ebx - 1]
cmp edx, eax
cmovg ecx, eax
mov eax, dword [esp + 0x10]
test eax, eax
jns 0x101d47fc
lea eax, [esp + 0xdc]
xor esi, esi
push eax
push esi
push esi
push ecx
jmp 0x101d487f
lea edx, [edi - 1]
cmp eax, edx
jle 0x101d4865
lea eax, [esp + 0xdc]
mov esi, edx
push eax
push 0
push esi
push ecx
jmp 0x101d487f
lea esi, [ebx + ebx]
mov eax, edx
test edx, edx
jns 0x101d4828
not eax
mov ecx, esi
cdq
idiv esi
sub ecx, edx
dec ecx
jmp 0x101d482d
cdq
idiv esi
mov ecx, edx
cmp ecx, ebx
jl 0x101d4836
sub esi, ecx
lea ecx, [esi - 1]
mov edx, dword [esp + 0x10]
lea esi, [edi + edi]
mov dword [esp + 0x34], esi
mov eax, edx
test edx, edx
jns 0x101d4853
not eax
cdq
idiv esi
mov eax, esi
sub esi, edx
dec esi
jmp 0x101d485c
cdq
idiv esi
mov eax, dword [esp + 0x34]
mov esi, edx
cmp esi, edi
jl 0x101d4865
sub eax, esi
lea esi, [eax - 1]
lea eax, [esp + 0xdc]
push eax
push 0
push esi
push ecx
jmp 0x101d487f
lea ecx, [esp + 0xdc]
push ecx
push 1
push eax
push edx
push dword [esp + 0x2c]
call dword [esp + 0x34]
mov eax, dword [esp + 0x58]
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 + 0x102a4f50]
mulss xmm0, dword [esp + 0xdc]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.10264f00
mov dword [esp + 0x44], 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 + 0xe0]
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 + 0x38]
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
cvtsi2sd xmm1, eax
shr eax, 0x1f
mulss xmm0, dword [esp + 0xe4]
addsd xmm1, qword [eax*8 + 0x102a4f50]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.10264f00
mov dword [esp + 0x38], 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 + 0xe8]
addsd xmm1, qword [eax*8 + 0x102a4f50]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.10264f00
mov edx, dword [esp + 0x30]
mov dword [esp + 0x40], 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 0x101d4765
mov ecx, dword [esp + 0x7c]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0xc]
jl 0x101d4757
movss xmm3, dword [0x102df684]
xorps xmm2, xmm2
movss xmm4, dword [0x102a5500]
mov edx, dword [esp + 0x44]
movd xmm1, edx
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm3
comiss xmm2, xmm1
jbe 0x101d49ce
movaps xmm0, xmm2
jmp 0x101d49d5
movaps xmm0, xmm4
minss xmm0, xmm1
movd xmm1, dword [esp + 0x48]
mov eax, dword [esp + 0x24]
cvtdq2ps xmm1, xmm1
movss dword [eax], xmm0
mulss xmm1, xmm3
comiss xmm2, xmm1
jbe 0x101d49f4
movaps xmm0, xmm2
jmp 0x101d49fb
movaps xmm0, xmm4
minss xmm0, xmm1
movd xmm1, dword [esp + 0x38]
cvtdq2ps xmm1, xmm1
movss dword [eax + 4], xmm0
mulss xmm1, xmm3
comiss xmm2, xmm1
jbe 0x101d4a17
movaps xmm0, xmm2
jmp 0x101d4a1e
movaps xmm0, xmm4
minss xmm0, xmm1
movd xmm1, dword [esp + 0x40]
cvtdq2ps xmm1, xmm1
movss dword [eax + 8], xmm0
mulss xmm1, xmm3
comiss xmm2, xmm1
jbe 0x101d4a46
mov ebx, dword [esp + 0x1c]
movaps xmm0, xmm2
movss dword [eax + 0xc], xmm0
jmp 0x101d4dc6
mov ebx, dword [esp + 0x1c]
movaps xmm0, xmm4
minss xmm0, xmm1
movss dword [eax + 0xc], xmm0
jmp 0x101d4dc6
mov ecx, dword [eax + 4]
add eax, 8
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx + 0x34]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
lea eax, [esi - 0x10000]
sar eax, 1
mov ebx, dword [ebx + 0x70]
mov edi, dword [ecx + 0x74]
mov ecx, dword [esp + 0x28]
sub ecx, eax
sar esi, 0x10
dec ecx
mov dword [esp + 0x30], ebx
sar ecx, 0x10
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10]
lea eax, [ecx - 0x10000]
sar ecx, 0x10
sar eax, 1
sub edx, eax
mov eax, edx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x44]
dec eax
sar eax, 0x10
add esi, edx
add ecx, eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], ecx
xor esi, esi
xor ecx, ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], ecx
cmp eax, dword [esp + 0x10]
jge 0x101d4cdd
mov ecx, dword [esp + 0x18]
xorps xmm1, xmm1
movaps xmmword [esp + 0x80], xmm1
nop
mov dword [esp + 0x34], edx
cmp dword [esp + 0x44], ecx
jge 0x101d4ca1
nop
mov ebx, dword [esp + 0x48]
mov ecx, edx
mov esi, eax
mov ebx, dword [ebx]
test ebx, ebx
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x30]
je 0x101d4c8b
cmp dword [esp + 0x40], 0
je 0x101d4c0b
cmp dword [esp + 0x40], 1
jne 0x101d4b6b
cmp edx, ebx
jl 0x101d4b36
sub ecx, ebx
cmp ecx, ebx
jge 0x101d4b30
test ecx, ecx
jns 0x101d4b44
nop word [eax + eax]
add ecx, ebx
js 0x101d4b40
cmp eax, edi
jl 0x101d4b4e
sub esi, edi
cmp esi, edi
jge 0x101d4b48
test esi, esi
jns 0x101d4bfd
add esi, edi
js 0x101d4b56
lea eax, [esp + 0xec]
push eax
push 0
push esi
push ecx
jmp 0x101d4c17
cmp dword [esp + 0x40], 2
jne 0x101d4bb3
test edx, edx
jns 0x101d4b7a
xor ecx, ecx
jmp 0x101d4b86
lea eax, [ebx - 1]
cmp edx, eax
cmovg ecx, eax
mov eax, dword [esp + 0xc]
test eax, eax
jns 0x101d4b9c
lea eax, [esp + 0xec]
xor esi, esi
push eax
push esi
push esi
push ecx
jmp 0x101d4c17
lea edx, [edi - 1]
cmp eax, edx
jle 0x101d4bfd
lea eax, [esp + 0xec]
mov esi, edx
push eax
push 0
push esi
push ecx
jmp 0x101d4c17
lea esi, [ebx + ebx]
mov eax, edx
test edx, edx
jns 0x101d4bc8
not eax
mov ecx, esi
cdq
idiv esi
sub ecx, edx
dec ecx
jmp 0x101d4bcd
cdq
idiv esi
mov ecx, edx
cmp ecx, ebx
jl 0x101d4bd6
sub esi, ecx
lea ecx, [esi - 1]
mov edx, dword [esp + 0xc]
lea ebx, [edi + edi]
mov eax, edx
test edx, edx
jns 0x101d4bef
not eax
mov esi, ebx
cdq
idiv ebx
sub esi, edx
dec esi
jmp 0x101d4bf4
cdq
idiv ebx
mov esi, edx
cmp esi, edi
jl 0x101d4bfd
sub ebx, esi
lea esi, [ebx - 1]
lea eax, [esp + 0xec]
push eax
push 0
push esi
push ecx
jmp 0x101d4c17
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 + 0x38]
mov esi, ebx
shr eax, 8
movzx ecx, al
imul ecx, dword [esp + 0x38]
shr ebx, 0x10
shr esi, 0x18
imul esi, dword [esp + 0x38]
movzx eax, bl
imul eax, dword [esp + 0x38]
movd xmm0, edx
mov edx, dword [esp + 0x34]
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 + 0x48], 4
inc edx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], edx
cmp edx, ecx
jl 0x101d4b00
mov edx, dword [esp + 0x44]
inc eax
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x10]
jl 0x101d4af0
movaps xmm0, xmm1
movd esi, xmm1
psrldq xmm0, 4
movd dword [esp + 0x34], xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
psrldq xmm1, 0xc
movd dword [esp + 0x38], xmm0
movd ecx, xmm1
lea eax, [ecx + 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 + 0x34]
add eax, 0x8000
sar esi, 0x10
cdq
and edx, 0xffff
lea edi, [edx + eax]
mov eax, dword [esp + 0x38]
add eax, 0x8000
sar edi, 0x10
cdq
and edx, 0xffff
add eax, edx
mov edx, 0xff
sar eax, 0x10
test ecx, ecx
jns 0x101d4d3b
xor ecx, ecx
jmp 0x101d4d44
cmp ecx, 0xff
cmovg ecx, edx
test esi, esi
jns 0x101d4d4c
xor esi, esi
jmp 0x101d4d55
cmp esi, 0xff
cmovg esi, edx
test edi, edi
jns 0x101d4d5d
xor edi, edi
jmp 0x101d4d66
cmp edi, 0xff
cmovg edi, edx
test eax, eax
jns 0x101d4d6e
xor eax, eax
jmp 0x101d4d76
cmp eax, 0xff
cmovg eax, edx
mov ebx, dword [esp + 0x1c]
shl ecx, 8
or ecx, esi
shl ecx, 8
or ecx, edi
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x24]
mov dword [eax], ecx
jmp 0x101d4dc6
cmp dword [esp + 0x50], 0
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
je 0x101d4dac
push 0x101d7460
push 0x101d63f0
jmp 0x101d4db6
push 0x101d73a0
push 0x101d63a0
push dword [esp + 0x2c]
push edi
push edx
push ecx
push ebx
call fcn.101d64e0
add esp, 0x1c
mov ecx, dword [esp + 0x3c]
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 [0x102df684]
movss xmm4, dword [0x102a5500]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x3c], ecx
cmp ecx, dword [esp + 0x6c]
jl 0x101d3cf0
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.1026465b
mov esp, ebp
pop ebp
ret