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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0xfc
mov esi, dword [esp + 0x11c]
mov dword [esp + 0xe4], esi
mov esi, dword [esp + 0x138]
mov ebp, dword [esp + 0x13c]
mov dword [esp + 0xe0], ebp
mov ebp, esi
mov ebx, dword [esp + 0x130]
neg ebp
mov ecx, dword [esp + 0x118]
and ebp, 0x3f
mov dword [esp + 0x74], ebx
and ebx, 0xf0
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xf8], ebx
mov ebx, dword [esp + 0x128]
mov ecx, dword [esp + 0x120]
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x12c]
mov dword [esp + 0xec], edx
lea edx, [ebx + ecx]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xd8], eax
mov eax, dword [ebp + esi + 0x58]
mov dword [esp + 0xdc], ebx
cmp edx, eax
jle 0x10014996
mov ebx, eax
sub ebx, ecx
mov dword [esp + 0x128], ebx
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0xf0]
mov edi, dword [ebp + esi + 0x2c]
lea ecx, [edx + eax]
cmp ecx, edi
jle 0x100149bf
sub edi, eax
mov dword [esp + 0xf0], edi
mov dword [esp + 0x12c], edi
vxorpd xmm0, xmm0, xmm0
vxorpd xmm1, xmm1, xmm1
vcvtsi2sd xmm0, xmm0, eax
mov eax, dword [ebp + esi + 0x3c]
vxorpd xmm2, xmm2, xmm2
mov edx, dword [ebp + esi + 0x68]
vxorpd xmm6, xmm6, xmm6
mov ecx, dword [ebp + esi + 0x74]
vxorpd xmm7, xmm7, xmm7
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd0], edx
mov dword [esp + 0x6c], ecx
mov edi, dword [ebp + esi + 0x5c]
mov eax, dword [ebp + esi + 0x60]
mov edx, dword [ebp + esi + 0x30]
mov ecx, dword [ebp + esi + 0x34]
vcvtsi2sd xmm1, xmm1, edi
vcvtsi2sd xmm2, xmm2, eax
vcvtsi2sd xmm6, xmm6, edx
vcvtsi2sd xmm7, xmm7, ecx
shr edi, 0x1f
shr eax, 0x1f
shr edx, 0x1f
shr ecx, 0x1f
vaddsd xmm3, xmm1, qword [edi*8 + 0x102b00c0]
vaddsd xmm4, xmm2, qword [eax*8 + 0x102b00c0]
vaddsd xmm1, xmm6, qword [edx*8 + 0x102b00c0]
vaddsd xmm2, xmm7, qword [ecx*8 + 0x102b00c0]
vdivsd xmm5, xmm3, xmm4
vdivsd xmm3, xmm1, xmm2
vmulsd xmm0, xmm0, xmm3
vmovsd qword [esp + 0x58], xmm5
vmovsd qword [esp], xmm0
call fcn.10064620
fstp qword [esp + 0x60]
vmovsd xmm2, qword [esp + 0x60]
vxorpd xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, dword [esp + 0x120]
vcvttsd2si eax, xmm2
vmulsd xmm1, xmm0, qword [esp + 0x58]
vmovsd qword [esp], xmm1
mov dword [esp + 0x70], eax
call fcn.10064620
fstp qword [esp + 0x60]
vmovsd xmm0, qword [esp + 0x60]
vcvttsd2si eax, xmm0
mov ecx, dword [esp + 0xe0]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x120]
mov dword [esp + 0x68], edx
mov dword [esp + 0xf4], eax
lea edi, [ecx + ebx*4]
mov dword [esp + 0xcc], edi
test ebx, ebx
jle 0x10014b59
mov edi, ebx
shr edi, 1
test edi, edi
jbe 0x100158c6
mov dword [esp + 0xc4], ebx
xor ecx, ecx
mov edx, eax
mov eax, dword [esp + 0xe0]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
mov ebx, dword [ebp + esi + 0x64]
lea ebx, [ebx + edx*4]
mov ebx, dword [ebx + ecx*8]
lea ebx, [ebx + ebx*2]
mov dword [eax + ecx*8], ebx
mov ebx, dword [ebp + esi + 0x64]
lea ebx, [ebx + edx*4]
mov ebx, dword [ebx + ecx*8 + 4]
lea ebx, [ebx + ebx*2]
mov dword [eax + ecx*8 + 4], ebx
inc ecx
cmp ecx, edi
jb 0x10014b00
mov ebx, dword [esp + 0xc4]
lea eax, [ecx + ecx + 1]
lea edx, [eax - 1]
cmp edx, ebx
jae 0x10014b59
mov edx, dword [esp + 0xf4]
mov ecx, dword [ebp + esi + 0x64]
lea edi, [edx + eax]
mov edx, dword [ecx + edi*4 - 4]
mov edi, dword [esp + 0xe0]
lea ecx, [edx + edx*2]
mov dword [edi + eax*4 - 4], ecx
mov eax, dword [esp + 0x124]
cmp dword [esp + 0xf0], 0
jle 0x10014bee
mov ecx, dword [esp + 0xf0]
shr ecx, 1
test ecx, ecx
jbe 0x100158bc
mov dword [esp + 0xc4], ebx
xor edi, edi
mov edx, dword [esp + 0xcc]
nop dword [eax + eax]
nop dword [eax]
nop
mov ebx, dword [ebp + esi + 0x38]
lea ebx, [ebx + eax*4]
mov ebx, dword [ebx + edi*8]
mov dword [edx + edi*8], ebx
mov ebx, dword [ebp + esi + 0x38]
lea ebx, [ebx + eax*4]
mov ebx, dword [ebx + edi*8 + 4]
mov dword [edx + edi*8 + 4], ebx
inc edi
cmp edi, ecx
jb 0x10014ba0
mov ebx, dword [esp + 0xc4]
lea edx, [edi + edi + 1]
lea ecx, [edx - 1]
cmp ecx, dword [esp + 0xf0]
jae 0x10014bee
mov ecx, dword [ebp + esi + 0x38]
lea edi, [eax + edx]
mov ecx, dword [ecx + edi*4 - 4]
mov edi, dword [esp + 0xcc]
mov dword [edi + edx*4 - 4], ecx
cmp dword [esp + 0xf8], 0xf0
je 0x10015726
mov edx, dword [esp + 0x74]
and edx, 0xf
cmp edx, 1
je 0x10014c1b
mov eax, 0xffffff1f
add esp, 0xfc
pop ebp
pop ebx
pop edi
pop esi
ret
mov edx, dword [esp + 0x70]
imul edx, dword [esp + 0xec]
mov ecx, dword [esp + 0xc8]
sub ecx, edx
sub ecx, dword [esp + 0x68]
mov edx, dword [ebp + esi + 0x10]
mov dword [esp + 0xc8], ecx
mov ecx, dword [ebp + esi + 0x74]
mov dword [esp + 0x80], edx
mov edi, dword [ebp + esi + 0xc]
mov edx, dword [ebp + esi + 0x54]
mov dword [esp + 0x60], ecx
mov ecx, dword [ebp + esi + 0x2c]
mov dword [esp + 0x9c], edi
mov dword [esp + 0x6c], edx
mov edi, dword [ebp + esi + 0x28]
mov edx, dword [ebp + esi + 0x58]
sub ecx, dword [esp + 0xf0]
sub edx, ebx
mov dword [esp + 0x5c], edi
sub ecx, eax
sub edx, dword [esp + 0xf4]
mov edi, dword [esp + 0xf8]
and edi, 0x10
mov dword [esp + 0x58], edi
jne 0x10014ca2
mov edi, dword [ebp + esi + 0x4c]
mov dword [esp + 0xa8], edi
cmp edi, eax
jg 0x10014caf
mov dword [esp + 0xa8], 0
jmp 0x10014cb6
sub dword [esp + 0xa8], eax
mov edi, dword [esp + 0xf8]
and edi, 0x40
mov dword [esp + 0x7c], edi
jne 0x10014cda
mov edi, dword [ebp + esi + 0x78]
mov dword [esp + 0xa4], edi
cmp edi, dword [esp + 0xf4]
jg 0x10014ce7
mov dword [esp + 0xa4], 0
jmp 0x10014cf5
mov edi, dword [esp + 0xf4]
sub dword [esp + 0xa4], edi
mov edi, dword [esp + 0xf8]
and edi, 0x20
mov dword [esp + 0xac], edi
jne 0x10014d14
mov edi, dword [ebp + esi + 0x50]
mov dword [esp + 0x74], edi
cmp edi, ecx
jg 0x10014d1e
mov dword [esp + 0x74], 0
jmp 0x10014d22
sub dword [esp + 0x74], ecx
and dword [esp + 0xf8], 0x80
jne 0x10014d3b
mov ecx, dword [ebp + esi + 0x7c]
mov dword [esp + 0x70], ecx
cmp ecx, edx
jg 0x10014d45
mov dword [esp + 0x70], 0
jmp 0x10014d49
sub dword [esp + 0x70], edx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x98], ebp
mov edi, eax
mov ebp, dword [esp + 0xa8]
cmp eax, ebp
mov ecx, dword [esp + 0xa4]
cmovl ebp, eax
cmp ebx, ecx
mov edx, dword [esp + 0x74]
cmovl ecx, ebx
cmp eax, edx
mov dword [esp + 0x94], esi
cmovl edx, eax
sub edi, ebp
mov esi, dword [esp + 0x70]
cmp esi, ebx
mov dword [esp + 0xa8], ebp
cmovge esi, ebx
mov dword [esp + 0x64], edi
add ebp, edx
cmp ebp, eax
mov ebp, ebx
mov dword [esp + 0xc4], ebx
cmovg edx, edi
lea edi, [ecx + esi]
sub ebp, ecx
cmp edi, ebx
mov ebx, dword [esp + 0x9c]
cmovg esi, ebp
mov dword [esp + 0x70], esi
mov edi, dword [esp + 0xcc]
lea esi, [ebx + ebx]
mov ebx, dword [esp + 0x80]
mov dword [esp + 0x74], edx
shl edx, 2
mov dword [esp + 0xa4], ecx
lea edi, [edi + eax*4 + 0x1f]
and edi, 0xffffffe0
lea ebp, [ebx + ebx]
mov ebx, dword [esp + 0xa8]
shl ecx, 2
imul edx, ebp
imul ecx, esi
mov dword [esp + 0xb0], ebp
lea eax, [ebx*4]
imul eax, ebp
mov dword [esp + 0x68], esi
lea eax, [eax + edi + 0x1f]
and eax, 0xffffffe0
mov dword [esp + 0x88], eax
mov dword [esp + 0x84], edi
mov esi, dword [esp + 0x94]
lea ebp, [edx + eax + 0x1f]
and ebp, 0xffffffe0
mov dword [esp + 0x8c], ebp
lea eax, [ecx + ebp + 0x1f]
mov ebp, dword [esp + 0x98]
and eax, 0xffffffe0
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xb4]
lea edx, [eax*4]
mov dword [esp + 0x78], edx
test ebx, ebx
mov ebx, dword [esp + 0xc4]
jle 0x10014fb8
mov ecx, dword [esp + 0xb0]
xor edx, edx
shr ecx, 0x1f
mov edi, dword [esp + 0x80]
mov dword [esp + 0x98], ebp
mov dword [esp + 0x94], esi
mov dword [esp + 0xc4], ebx
lea edi, [ecx + edi*2]
sar edi, 1
xor ecx, ecx
mov dword [esp + 0xb8], edi
mov dword [esp + 0xb4], eax
mov ebp, dword [esp + 0x84]
mov edi, dword [esp + 0xb0]
mov esi, dword [esp + 0x80]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
nop dword [eax]
test edi, edi
jle 0x10014f8b
mov dword [esp + 0x90], ecx
xor eax, eax
mov esi, dword [esp + 0x94]
lea ebx, [ebp + ecx]
mov ebp, dword [esp + 0x98]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
nop dword [eax]
mov ecx, dword [ebp + esi + 0x38]
mov edi, dword [esp + 0xb4]
lea ecx, [ecx + edi*4]
mov edi, dword [ecx + edx*4]
sub edi, dword [esp + 0xb8]
lea ecx, [eax + edi + 1]
xor edi, edi
test ecx, ecx
cmovl ecx, edi
mov dword [ebx + eax*4], ecx
mov edi, dword [ebp + esi + 0x28]
cmp ecx, edi
jl 0x10014f5a
dec edi
cmp dword [esp + 0xac], 0
cmove ecx, edi
imul ecx, dword [esp + 0xec]
mov dword [ebx + eax*4], ecx
inc eax
cmp eax, dword [esp + 0xb0]
jb 0x10014f20
mov ecx, dword [esp + 0x90]
mov ebp, dword [esp + 0x84]
mov edi, dword [esp + 0xb0]
mov esi, dword [esp + 0x80]
inc edx
lea ecx, [ecx + esi*8]
cmp edx, dword [esp + 0xa8]
jb 0x10014ee0
mov ebx, dword [esp + 0xc4]
mov eax, dword [esp + 0xb4]
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
add eax, dword [esp + 0xf0]
mov ecx, eax
mov edx, dword [esp + 0x74]
sub ecx, edx
neg edx
jns 0x10015139
mov edi, dword [esp + 0xb0]
sub eax, ecx
shr edi, 0x1f
mov edx, dword [esp + 0x80]
mov dword [esp + 0xb4], eax
xor eax, eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x90], eax
lea edi, [edi + edx*2]
sar edi, 1
add edx, edx
mov dword [esp + 0xac], edx
mov dword [esp + 0xc0], edi
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x98], ebp
mov dword [esp + 0x94], esi
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0x90]
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x80]
mov dword [esp + 0xc4], ebx
nop dword [eax + eax]
nop dword [eax]
test ebp, ebp
jle 0x10015113
mov dword [esp + 0xbc], edx
xor ebx, ebx
mov dword [esp + 0x90], ecx
lea eax, [esi + ecx]
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
mov ebp, dword [edx + ecx + 0x38]
mov esi, dword [esp + 0xb8]
lea edi, [ebp + esi*4]
mov ebp, dword [esp + 0xbc]
mov esi, dword [edi + ebp*4]
sub esi, dword [esp + 0xc0]
lea edi, [ebx + esi + 1]
test edi, edi
jl 0x1001570d
mov dword [eax + ebx*4], edi
mov ebp, dword [edx + ecx + 0x28]
cmp edi, ebp
lea esi, [ebp - 1]
cmovge edi, esi
imul edi, dword [esp + 0xec]
mov dword [eax + ebx*4], edi
inc ebx
cmp ebx, dword [esp + 0xac]
jb 0x100150a0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0x90]
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x80]
inc edx
lea ecx, [ecx + edi*8]
cmp edx, dword [esp + 0xb4]
jb 0x10015060
mov ebx, dword [esp + 0xc4]
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0xf4]
cmp dword [esp + 0xa4], 0
lea edi, [eax*4]
jle 0x10015291
mov ecx, dword [esp + 0x68]
xor edx, edx
shr ecx, 0x1f
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x90], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x98], ebp
lea ecx, [ecx + eax*2]
sar ecx, 1
add eax, eax
mov dword [esp + 0x94], esi
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xac], ecx
mov ebp, edx
mov edi, dword [esp + 0x8c]
mov esi, dword [esp + 0x9c]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
nop dword [eax]
test eax, eax
jle 0x10015266
mov dword [esp + 0x90], ebp
xor ebx, ebx
mov dword [esp + 0xb4], eax
lea ecx, [edi + ebp]
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [ebp + esi + 0x64]
mov edi, dword [esp + 0xf4]
lea eax, [eax + edi*4]
mov edi, dword [eax + edx*4]
sub edi, dword [esp + 0xac]
lea eax, [ebx + edi + 1]
xor edi, edi
test eax, eax
cmovl eax, edi
mov dword [ecx + ebx*4], eax
mov edi, dword [ebp + esi + 0x54]
cmp eax, edi
jl 0x1001523a
dec edi
cmp dword [esp + 0xf8], 0
cmove eax, edi
lea eax, [eax + eax*2]
mov dword [ecx + ebx*4], eax
inc ebx
cmp ebx, dword [esp + 0xb4]
jb 0x10015200
mov ebp, dword [esp + 0x90]
mov eax, dword [esp + 0xb4]
mov edi, dword [esp + 0x8c]
mov esi, dword [esp + 0x9c]
inc edx
lea ebp, [ebp + esi*8]
cmp edx, dword [esp + 0xa4]
jb 0x100151c0
mov ebx, dword [esp + 0xc4]
mov edi, dword [esp + 0x58]
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
mov ecx, dword [esp + 0xf4]
add ecx, ebx
mov eax, dword [esp + 0x70]
mov dword [esp + 0xf4], ecx
sub ecx, eax
neg eax
jns 0x10015418
mov dword [esp + 0xc4], ebx
xor eax, eax
mov ebx, dword [esp + 0x68]
shr ebx, 0x1f
mov edx, dword [esp + 0x9c]
mov dword [esp + 0xb8], eax
mov dword [esp + 0x90], eax
sub dword [esp + 0xf4], ecx
lea ebx, [ebx + edx*2]
sar ebx, 1
add edx, edx
mov dword [esp + 0xac], edx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x58], edi
mov dword [esp + 0x98], ebp
mov dword [esp + 0x94], esi
mov ebx, dword [esp + 0xc4]
mov edx, dword [esp + 0xb8]
mov ecx, eax
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0xa0]
mov edi, dword [esp + 0x9c]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
test ebp, ebp
jle 0x100153ee
mov dword [esp + 0xb8], edx
xor ebx, ebx
mov dword [esp + 0x90], ecx
lea eax, [esi + ecx]
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
mov ebp, dword [edx + ecx + 0x64]
mov esi, dword [esp + 0xbc]
lea edi, [ebp + esi*4]
mov ebp, dword [esp + 0xb8]
mov esi, dword [edi + ebp*4]
sub esi, dword [esp + 0xb4]
lea edi, [ebx + esi + 1]
test edi, edi
jl 0x100156f4
mov dword [eax + ebx*4], edi
mov ebp, dword [edx + ecx + 0x54]
cmp edi, ebp
lea esi, [ebp - 1]
cmovge edi, esi
lea edi, [edi + edi*2]
mov dword [eax + ebx*4], edi
inc ebx
cmp ebx, dword [esp + 0xac]
jb 0x10015380
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x90]
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0xa0]
mov edi, dword [esp + 0x9c]
inc edx
lea ecx, [ecx + edi*8]
cmp edx, dword [esp + 0xf4]
jb 0x10015340
mov ebx, dword [esp + 0xc4]
mov edi, dword [esp + 0x58]
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
mov ecx, dword [esp + 0xc8]
mov dword [esp], ecx
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], eax
mov edx, dword [esp + 0xec]
mov dword [esp + 8], edx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebx
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x68]
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x78]
imul ecx, edx
imul edi, eax
add ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], ecx
add edi, dword [esp + 0xd0]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x84]
mov dword [esp + 0x38], edi
mov eax, dword [esp + 0x88]
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x44], ecx
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x74]
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x50], edx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x54], ecx
call fcn.1018ffe0
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0x74]
mov dword [esp + 0x64], eax
test eax, eax
jle 0x100156b3
sub ebx, dword [esp + 0xa4]
sub ebx, dword [esp + 0x70]
test ebx, ebx
jle 0x100156b3
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0xa0]
lea ecx, [edx*4]
imul ecx, dword [esp + 0x70]
lea edi, [eax + ecx + 0x1f]
mov eax, dword [esp + 0x80]
and edi, 0xffffffe0
mov dword [esp + 0x5c], edi
lea ecx, [eax + eax]
mov dword [esp + 0x58], ecx
lea edx, [edi + eax*8 + 0x23]
and edx, 0xffffffe0
mov dword [edi], edx
test ecx, ecx
jle 0x100155c4
shr ecx, 1
test ecx, ecx
jbe 0x100156ea
mov dword [esp + 0x94], esi
xor edi, edi
mov esi, dword [esp + 0x5c]
lea eax, [ebx + ebx*2]
lea edx, [edx + eax*4 + 0x1f]
and edx, 0xffffffe0
mov dword [esi + edi*8 + 4], edx
lea edx, [edx + eax*4 + 0x1f]
and edx, 0xffffffe0
mov dword [esi + edi*8 + 8], edx
inc edi
cmp edi, ecx
jb 0x10015580
mov esi, dword [esp + 0x94]
lea edx, [edi + edi + 1]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x58]
jae 0x100155c4
mov eax, dword [esp + 0x5c]
lea edi, [ebx + ebx*2]
mov ecx, dword [eax + edx*4 - 4]
lea ecx, [ecx + edi*4 + 0x1f]
and ecx, 0xffffffe0
mov dword [eax + edx*4], ecx
mov dword [esp + 0x98], ebp
mov ebp, dword [esp + 0xa8]
mov edi, dword [esp + 0xcc]
mov eax, dword [esp + 0x124]
add eax, ebp
shl eax, 2
lea edi, [edi + ebp*4]
imul eax, dword [esp + 0xb0]
imul ebp, dword [esp + 0xe4]
mov dword [esp + 0x94], esi
mov esi, dword [esp + 0xa4]
mov dword [esp + 0xc4], ebx
mov ebx, dword [esp + 0xd4]
mov edx, dword [esp + 0xe8]
add ebx, eax
mov ecx, dword [esp + 0xe0]
add edx, ebp
mov eax, dword [esp + 0x120]
lea ebp, [esi + esi*2]
push dword [esp + 0x5c]
add eax, esi
add edx, ebp
mov dword [esp + 0xec], edx
lea ecx, [ecx + esi*4]
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0xd4]
lea ebp, [edx + eax*4]
shl eax, 2
imul eax, dword [esp + 0x6c]
add esi, eax
test edx, edx
cmove ebp, esi
push ebp
push ebx
push ecx
push edi
push dword [esp + 0x94]
push dword [esp + 0xb4]
push dword [esp + 0x80]
push dword [esp + 0xe4]
push 0
push dword [esp + 0x10c]
push dword [esp + 0x118]
push dword [esp + 0x118]
push dword [esp + 0xfc]
mov ebp, dword [esp + 0xd0]
mov esi, dword [esp + 0xcc]
call fcn.1018ffe0
add esp, 0x38
mov eax, dword [esp + 0xdc]
cmp eax, dword [ebp + esi + 0x58]
jg 0x100156cd
mov eax, dword [esp + 0xd8]
cmp eax, dword [ebp + esi + 0x2c]
jle 0x100156dd
mov eax, 0x30
add esp, 0xfc
pop ebp
pop ebx
pop edi
pop esi
ret
xor eax, eax
add esp, 0xfc
pop ebp
pop ebx
pop edi
pop esi
ret
mov edx, 1
jmp 0x100155a6
cmp dword [esp + 0x7c], 0
jne 0x100153ac
mov dword [eax + ebx*4], 0
xor edi, edi
jmp 0x100153af
cmp dword [esp + 0x58], 0
jne 0x100150cc
mov dword [eax + ebx*4], 0
xor edi, edi
jmp 0x100150cf
mov ecx, dword [ebp + esi + 0xc]
add ecx, ecx
mov dword [esp + 0x58], ecx
mov edi, dword [esp + 0xcc]
mov ecx, dword [esp + 0xf0]
mov edx, dword [ebp + esi + 0x10]
lea edi, [edi + ecx*4 + 0x1f]
and edi, 0xffffffe0
mov dword [esp + 0x60], edi
lea ecx, [edi + edx*8 + 0x23]
add edx, edx
and ecx, 0xffffffe0
mov dword [edi], ecx
mov dword [esp + 0x5c], edx
test edx, edx
jle 0x10015801
shr edx, 1
mov dword [esp + 0x64], edx
test edx, edx
jbe 0x100158af
mov dword [esp + 0x98], ebp
lea edi, [ebx + ebx*2]
xor edx, edx
mov dword [esp + 0x94], esi
mov esi, edi
mov ebp, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
nop dword [eax + eax]
nop dword [eax]
nop
lea ecx, [ecx + esi*4 + 0x1f]
and ecx, 0xffffffe0
mov dword [edi + edx*8 + 4], ecx
lea ecx, [ecx + esi*4 + 0x1f]
and ecx, 0xffffffe0
mov dword [edi + edx*8 + 8], ecx
inc edx
cmp edx, ebp
jb 0x100157a0
mov ebp, dword [esp + 0x98]
lea edx, [edx + edx + 1]
mov esi, dword [esp + 0x94]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x64]
lea ecx, [edx - 1]
cmp ecx, dword [esp + 0x5c]
jae 0x10015801
mov ecx, dword [esp + 0x60]
lea edi, [ebx + ebx*2]
mov dword [esp + 0xc4], ebx
mov ebx, dword [ecx + edx*4 - 4]
lea ebx, [ebx + edi*4 + 0x1f]
and ebx, 0xffffffe0
mov dword [ecx + edx*4], ebx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0xc4], ebx
push dword [esp + 0x60]
shl eax, 2
imul eax, dword [esp + 0x60]
mov edx, dword [esp + 0xd8]
add edx, eax
mov eax, dword [esp + 0x74]
imul eax, dword [esp + 0xf0]
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0xf8]
mov ecx, dword [esp + 0xcc]
sub ecx, eax
sub ecx, dword [esp + 0x6c]
mov dword [esp + 0xcc], ecx
lea ecx, [edi + ebx*4]
shl ebx, 2
imul ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0xd4]
add eax, ebx
test edi, edi
cmove ecx, eax
push ecx
push edx
push dword [esp + 0xec]
push dword [esp + 0xdc]
push dword [ebp + esi + 0x10]
push dword [ebp + esi + 0xc]
push dword [esp + 0x10c]
push dword [esp + 0xe4]
push 0
push dword [esp + 0x10c]
push dword [esp + 0x118]
push dword [esp + 0x118]
push dword [esp + 0xfc]
call fcn.1018ffe0
jmp 0x100156b0
mov dword [esp + 0x64], 1
jmp 0x100157d1
mov edx, 1
jmp 0x10014bcc
mov eax, 1
jmp 0x10014b32