Function at 0x100158e0
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 + 0xe8], esi
mov esi, dword [esp + 0x138]
mov ebp, dword [esp + 0x13c]
mov eax, dword [esp + 0x110]
mov dword [esp + 0xe4], ebp
mov ebp, esi
mov dword [esp + 0xcc], eax
neg ebp
mov eax, dword [esp + 0x130]
and ebp, 0x3f
mov edx, dword [esp + 0x114]
mov dword [esp + 0x74], eax
and eax, 0xf0
mov dword [esp + 0xf0], edx
mov dword [esp + 0xf8], eax
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x118]
mov dword [esp + 0xec], ecx
mov ebx, dword [esp + 0x12c]
lea ecx, [edx + eax]
mov edi, dword [ebp + esi + 0x58]
cmp ecx, edi
mov dword [esp + 0xc8], edx
mov dword [esp + 0xe0], edx
mov dword [esp + 0xdc], ebx
jle 0x1001599a
sub edi, eax
mov dword [esp + 0xc8], edi
mov dword [esp + 0x128], edi
mov ecx, dword [esp + 0x124]
mov edx, dword [ebp + esi + 0x2c]
lea eax, [ebx + ecx]
cmp eax, edx
jle 0x100159b7
mov ebx, edx
sub ebx, ecx
mov dword [esp + 0x12c], ebx
pxor xmm4, xmm4
pxor xmm3, xmm3
cvtsi2sd xmm4, ecx
mov edx, dword [ebp + esi + 0x68]
pxor xmm2, xmm2
mov ecx, dword [ebp + esi + 0x74]
pxor xmm1, xmm1
mov dword [esp + 0xd4], edx
pxor xmm0, xmm0
mov dword [esp + 0x6c], ecx
mov edx, dword [ebp + esi + 0x30]
mov ecx, dword [ebp + esi + 0x34]
cvtsi2sd xmm3, edx
cvtsi2sd xmm2, ecx
shr edx, 0x1f
shr ecx, 0x1f
mov eax, dword [ebp + esi + 0x3c]
mov dword [esp + 0xd8], eax
mov edi, dword [ebp + esi + 0x5c]
mov eax, dword [ebp + esi + 0x60]
cvtsi2sd xmm1, edi
cvtsi2sd xmm0, eax
addsd xmm3, qword [edx*8 + 0x102b00d0]
addsd xmm2, qword [ecx*8 + 0x102b00d0]
shr edi, 0x1f
shr eax, 0x1f
divsd xmm3, xmm2
mulsd xmm4, xmm3
addsd xmm1, qword [edi*8 + 0x102b00d0]
addsd xmm0, qword [eax*8 + 0x102b00d0]
divsd xmm1, xmm0
movsd qword [esp + 0x58], xmm1
movsd qword [esp], xmm4
call fcn.10064520
fstp qword [esp + 0x60]
movsd xmm1, qword [esp + 0x60]
pxor xmm0, xmm0
cvtsi2sd xmm0, dword [esp + 0x120]
cvttsd2si eax, xmm1
mulsd xmm0, qword [esp + 0x58]
movsd qword [esp], xmm0
mov dword [esp + 0x70], eax
call fcn.10064520
fstp qword [esp + 0x60]
movsd xmm0, qword [esp + 0x60]
cvttsd2si eax, xmm0
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xe4]
shl eax, 2
mov dword [esp + 0x68], eax
test ecx, ecx
mov eax, dword [esp + 0x120]
lea edi, [edx + ecx*4]
mov dword [esp + 0xd0], edi
mov dword [esp + 0xf4], eax
jle 0x10015b5e
mov edi, ecx
shr edi, 1
test edi, edi
jbe 0x100168d1
mov dword [esp + 0xc4], ebx
xor ecx, ecx
mov edx, eax
mov eax, dword [esp + 0xe4]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
mov ebx, dword [ebp + esi + 0x64]
lea ebx, [ebx + edx*4]
mov ebx, dword [ebx + ecx*8]
shl 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]
shl ebx, 2
mov dword [eax + ecx*8 + 4], ebx
inc ecx
cmp ecx, edi
jb 0x10015b00
mov ebx, dword [esp + 0xc4]
lea eax, [ecx + ecx + 1]
lea edx, [eax - 1]
cmp edx, dword [esp + 0xc8]
jae 0x10015b5e
mov edx, dword [esp + 0xf4]
mov ecx, dword [ebp + esi + 0x64]
lea edi, [edx + eax]
mov edx, dword [ecx + edi*4 - 4]
mov ecx, dword [esp + 0xe4]
shl edx, 2
mov dword [ecx + eax*4 - 4], edx
mov eax, dword [esp + 0x124]
test ebx, ebx
jle 0x10015be9
mov ecx, ebx
shr ecx, 1
test ecx, ecx
jbe 0x100168c7
mov dword [esp + 0xc4], ebx
xor edi, edi
mov edx, dword [esp + 0xd0]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
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 0x10015ba0
mov ebx, dword [esp + 0xc4]
lea edx, [edi + edi + 1]
lea ecx, [edx - 1]
cmp ecx, ebx
jae 0x10015be9
mov ecx, dword [ebp + esi + 0x38]
lea edi, [eax + edx]
mov ecx, dword [ecx + edi*4 - 4]
mov edi, dword [esp + 0xd0]
mov dword [edi + edx*4 - 4], ecx
cmp dword [esp + 0xf8], 0xf0
je 0x1001671e
mov edx, dword [esp + 0x74]
and edx, 0xf
cmp edx, 1
je 0x10015c16
mov eax, 0xffffff1f
add esp, 0xfc
pop ebp
pop ebx
pop edi
pop esi
ret
mov edx, dword [esp + 0x70]
imul edx, dword [esp + 0xf0]
mov ecx, dword [esp + 0xcc]
sub ecx, edx
mov edx, dword [ebp + esi + 0x10]
sub ecx, dword [esp + 0x68]
mov dword [esp + 0x80], edx
mov edx, dword [ebp + esi + 0x54]
mov dword [esp + 0xcc], ecx
mov edi, dword [ebp + esi + 0xc]
mov ecx, dword [ebp + esi + 0x74]
mov dword [esp + 0x6c], edx
mov edx, dword [ebp + esi + 0x58]
mov dword [esp + 0x9c], edi
mov dword [esp + 0x60], ecx
mov edi, dword [ebp + esi + 0x28]
mov ecx, dword [ebp + esi + 0x2c]
sub edx, dword [esp + 0xc8]
sub ecx, 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 0x10015c9d
mov edi, dword [ebp + esi + 0x4c]
cmp edi, eax
mov dword [esp + 0xa8], edi
jg 0x10015caa
mov dword [esp + 0xa8], 0
jmp 0x10015cb1
sub dword [esp + 0xa8], eax
mov edi, dword [esp + 0xf8]
and edi, 0x40
mov dword [esp + 0x7c], edi
jne 0x10015cd5
mov edi, dword [ebp + esi + 0x78]
mov dword [esp + 0xa4], edi
cmp edi, dword [esp + 0xf4]
jg 0x10015ce2
mov dword [esp + 0xa4], 0
jmp 0x10015cf0
mov edi, dword [esp + 0xf4]
sub dword [esp + 0xa4], edi
mov edi, dword [esp + 0xf8]
and edi, 0x20
mov dword [esp + 0xac], edi
jne 0x10015d0f
mov edi, dword [ebp + esi + 0x50]
cmp edi, ecx
mov dword [esp + 0x74], edi
jg 0x10015d19
mov dword [esp + 0x74], 0
jmp 0x10015d1d
sub dword [esp + 0x74], ecx
and dword [esp + 0xf8], 0x80
jne 0x10015d36
mov ecx, dword [ebp + esi + 0x7c]
cmp ecx, edx
mov dword [esp + 0x70], ecx
jg 0x10015d40
mov dword [esp + 0x70], 0
jmp 0x10015d44
sub dword [esp + 0x70], edx
mov ecx, dword [esp + 0xa8]
cmp ebx, ecx
mov dword [esp + 0x98], ebp
mov edx, dword [esp + 0xa4]
cmovl ecx, ebx
mov ebp, dword [esp + 0xc8]
cmp ebp, edx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x74]
cmovl edx, ebp
cmp ebx, eax
mov edi, dword [esp + 0x70]
jge 0x10015d7f
mov eax, ebx
cmp edi, ebp
mov dword [esp + 0x94], esi
mov esi, ebx
jl 0x10015d8e
mov edi, ebp
mov dword [esp + 0xa8], ecx
sub esi, ecx
mov dword [esp + 0x64], esi
add ecx, eax
cmp ecx, ebx
mov ecx, ebp
mov dword [esp + 0xc4], ebx
cmovg eax, esi
lea esi, [edi + edx]
sub ecx, edx
cmp esi, ebp
mov esi, dword [esp + 0xd0]
cmovg edi, ecx
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x9c]
lea esi, [esi + ebx*4 + 0x1f]
mov ecx, dword [esp + 0x80]
and esi, 0xffffffe0
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x74], eax
lea ebp, [edi + edi]
mov dword [esp + 0xa4], edx
add ecx, ecx
mov dword [esp + 0xb0], ecx
lea edi, [ebx*4]
imul edi, ecx
shl eax, 2
imul eax, ecx
mov dword [esp + 0x68], ebp
lea edi, [edi + esi + 0x1f]
and edi, 0xffffffe0
shl edx, 2
imul edx, ebp
mov dword [esp + 0x84], esi
lea ecx, [eax + edi + 0x1f]
and ecx, 0xffffffe0
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], ecx
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
lea eax, [edx + ecx + 0x1f]
and eax, 0xffffffe0
mov dword [esp + 0xa0], eax
test ebx, ebx
mov eax, dword [esp + 0xb4]
mov ebx, dword [esp + 0xc4]
lea edx, [eax*4]
mov dword [esp + 0x78], edx
jle 0x10015f9a
mov edx, dword [esp + 0xb0]
xor ecx, ecx
shr edx, 0x1f
mov edi, dword [esp + 0x80]
mov dword [esp + 0xb4], eax
mov dword [esp + 0x94], esi
mov dword [esp + 0xc4], ebx
lea edi, [edx + edi*2]
sar edi, 1
xor edx, edx
mov dword [esp + 0xb8], edi
mov dword [esp + 0x98], ebp
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0x80]
nop
test esi, esi
jle 0x10015f6d
mov dword [esp + 0x90], edx
xor ebp, ebp
lea ebx, [eax + edx]
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x94]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
nop dword [eax]
mov esi, dword [eax + edx + 0x38]
mov edi, dword [esp + 0xb4]
lea esi, [esi + edi*4]
mov edi, dword [esi + ecx*4]
sub edi, dword [esp + 0xb8]
lea edi, [ebp + edi + 1]
test edi, edi
jge 0x10015f25
mov edi, 0
mov dword [ebx + ebp*4], edi
mov esi, dword [eax + edx + 0x28]
cmp edi, esi
jl 0x10015f3c
dec esi
cmp dword [esp + 0xac], 0
cmove edi, esi
imul edi, dword [esp + 0xf0]
mov dword [ebx + ebp*4], edi
inc ebp
cmp ebp, dword [esp + 0xb0]
jb 0x10015f00
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0x80]
inc ecx
lea edx, [edx + edi*8]
cmp ecx, dword [esp + 0xa8]
jb 0x10015ec0
mov eax, dword [esp + 0xb4]
mov ebx, dword [esp + 0xc4]
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
add eax, ebx
mov ecx, eax
mov edx, dword [esp + 0x74]
sub ecx, edx
neg edx
jns 0x10016119
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 0x100160f3
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 0x10016705
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 + 0xf0]
mov dword [eax + ebx*4], edi
inc ebx
cmp ebx, dword [esp + 0xac]
jb 0x10016080
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 0x10016040
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 0x10016272
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 + 0x94], esi
lea ecx, [ecx + eax*2]
sar ecx, 1
add eax, eax
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0x98], ebp
mov ecx, edx
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x9c]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
nop dword [eax]
test eax, eax
jle 0x10016248
mov dword [esp + 0x90], ecx
xor ebp, ebp
mov dword [esp + 0xac], eax
lea ebx, [esi + ecx]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
mov esi, dword [eax + ecx + 0x64]
mov edi, dword [esp + 0xf4]
lea esi, [esi + edi*4]
mov edi, dword [esi + edx*4]
sub edi, dword [esp + 0xb4]
lea edi, [ebp + edi + 1]
test edi, edi
jge 0x10016205
mov edi, 0
mov dword [ebx + ebp*4], edi
mov esi, dword [eax + ecx + 0x54]
cmp edi, esi
jl 0x1001621c
dec esi
cmp dword [esp + 0xf8], 0
cmove edi, esi
shl edi, 2
mov dword [ebx + ebp*4], edi
inc ebp
cmp ebp, dword [esp + 0xac]
jb 0x100161e0
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x9c]
inc edx
lea ecx, [ecx + edi*8]
cmp edx, dword [esp + 0xa4]
jb 0x100161a0
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0xc4]
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0xf4]
add eax, dword [esp + 0xc8]
mov edx, dword [esp + 0x70]
mov dword [esp + 0xf4], eax
sub eax, edx
neg edx
jns 0x100163f8
mov ecx, dword [esp + 0x68]
shr ecx, 0x1f
mov edx, dword [esp + 0x9c]
sub dword [esp + 0xf4], eax
mov dword [esp + 0xbc], eax
xor eax, eax
mov dword [esp + 0xb8], eax
lea ecx, [ecx + edx*2]
mov dword [esp + 0x90], eax
add edx, edx
mov dword [esp + 0xac], edx
sar ecx, 1
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x58], edi
mov dword [esp + 0x98], ebp
mov dword [esp + 0x94], esi
mov eax, dword [esp + 0xbc]
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]
mov dword [esp + 0xc4], ebx
nop dword [eax]
test ebp, ebp
jle 0x100163ce
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 0x100166ec
mov dword [eax + ebx*4], edi
mov ebp, dword [edx + ecx + 0x54]
cmp edi, ebp
lea esi, [ebp - 1]
cmovge edi, esi
shl edi, 2
mov dword [eax + ebx*4], edi
inc ebx
cmp ebx, dword [esp + 0xac]
jb 0x10016360
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 0x10016320
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0xc4]
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
mov edx, dword [esp + 0xcc]
mov dword [esp], edx
mov ecx, dword [esp + 0xec]
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xf0]
mov dword [esp + 8], eax
mov edx, dword [esp + 0xe8]
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0xe4]
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x78]
imul ecx, eax
imul edi, ebx
add ecx, dword [esp + 0xd8]
mov dword [esp + 0x30], ecx
add edi, dword [esp + 0xd4]
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 ebx, dword [esp + 0xa8]
mov dword [esp + 0x48], ebx
mov edi, dword [esp + 0x74]
mov dword [esp + 0x4c], edi
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x70]
mov dword [esp + 0x54], edx
call fcn.1018ffe0
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0x74]
mov dword [esp + 0x64], eax
test eax, eax
jle 0x100166ab
mov eax, dword [esp + 0xc8]
sub eax, dword [esp + 0xa4]
sub eax, dword [esp + 0x70]
mov dword [esp + 0xc8], eax
test eax, eax
jle 0x100166ab
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x80]
lea ecx, [edx*4]
imul ecx, dword [esp + 0x70]
lea ebx, [eax + ecx + 0x1f]
and ebx, 0xffffffe0
mov dword [esp + 0x58], ebx
lea edx, [ebx + edi*8 + 0x23]
and edx, 0xffffffe0
add edi, edi
mov dword [ebx], edx
test edi, edi
jle 0x100165c9
mov ecx, edi
shr ecx, 1
test ecx, ecx
jbe 0x100166e2
mov eax, dword [esp + 0xc8]
xor ebx, ebx
mov dword [esp + 0x94], esi
shl eax, 4
mov esi, dword [esp + 0x58]
nop dword [eax]
nop dword [eax]
lea edx, [eax + edx + 0x1f]
and edx, 0xffffffe0
mov dword [esi + ebx*8 + 4], edx
lea edx, [eax + edx + 0x1f]
and edx, 0xffffffe0
mov dword [esi + ebx*8 + 8], edx
inc ebx
cmp ebx, ecx
jb 0x10016580
mov esi, dword [esp + 0x94]
lea eax, [ebx + ebx + 1]
lea edx, [eax - 1]
cmp edx, edi
jae 0x100165c9
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0xc8]
shl edx, 4
mov ecx, dword [edi + eax*4 - 4]
lea ebx, [edx + ecx + 0x1f]
and ebx, 0xffffffe0
mov dword [edi + eax*4], ebx
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], ebp
mov ebp, dword [esp + 0xa8]
mov esi, dword [esp + 0xd0]
mov ecx, dword [esp + 0xa4]
mov edi, dword [esp + 0xe4]
mov eax, dword [esp + 0xd8]
lea ebx, [esi + ebp*4]
mov esi, dword [esp + 0x124]
add esi, ebp
lea edx, [edi + ecx*4]
imul ebp, dword [esp + 0xe8]
mov edi, dword [esp + 0xec]
add edi, ebp
shl esi, 2
imul esi, dword [esp + 0xb0]
add eax, esi
lea ebp, [edi + ecx*4]
mov dword [esp + 0x5c], ebp
push dword [esp + 0x58]
mov ebp, dword [esp + 0x64]
add ecx, dword [esp + 0x124]
mov esi, dword [esp + 0xd8]
lea edi, [ebp + ecx*4]
shl ecx, 2
imul ecx, dword [esp + 0x6c]
add esi, ecx
test ebp, ebp
cmove edi, esi
push edi
push eax
push edx
push ebx
push dword [esp + 0x94]
push dword [esp + 0xb4]
push dword [esp + 0x80]
push dword [esp + 0xe8]
push 0
push dword [esp + 0x110]
push dword [esp + 0x11c]
push dword [esp + 0x8c]
push dword [esp + 0x100]
mov ebp, dword [esp + 0xd0]
mov esi, dword [esp + 0xcc]
call fcn.1018ffe0
add esp, 0x38
mov eax, dword [esp + 0xe0]
cmp eax, dword [ebp + esi + 0x58]
jg 0x100166c5
mov eax, dword [esp + 0xdc]
cmp eax, dword [ebp + esi + 0x2c]
jle 0x100166d5
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 eax, 1
jmp 0x100165a6
cmp dword [esp + 0x7c], 0
jne 0x1001638c
mov dword [eax + ebx*4], 0
xor edi, edi
jmp 0x1001638f
cmp dword [esp + 0x58], 0
jne 0x100160ac
mov dword [eax + ebx*4], 0
xor edi, edi
jmp 0x100160af
mov edi, dword [esp + 0xd0]
mov edx, dword [ebp + esi + 0x10]
mov ecx, dword [ebp + esi + 0xc]
add ecx, ecx
lea edi, [edi + ebx*4 + 0x1f]
and edi, 0xffffffe0
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], edi
lea ecx, [edi + edx*8 + 0x23]
add edx, edx
and ecx, 0xffffffe0
mov dword [esp + 0x64], ecx
test edx, edx
mov dword [edi], ecx
mov dword [esp + 0x5c], edx
jle 0x1001680c
mov ecx, edx
shr ecx, 1
test ecx, ecx
jbe 0x100168ba
mov edi, dword [esp + 0xc8]
xor edx, edx
shl edi, 4
mov dword [esp + 0x98], ebp
mov dword [esp + 0x94], esi
mov esi, edi
mov edi, dword [esp + 0x64]
mov ebp, dword [esp + 0x60]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
lea edi, [esi + edi + 0x1f]
and edi, 0xffffffe0
mov dword [ebp + edx*8 + 4], edi
lea edi, [esi + edi + 0x1f]
and edi, 0xffffffe0
mov dword [ebp + edx*8 + 8], edi
inc edx
cmp edx, ecx
jb 0x100167a0
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 0x1001680c
mov dword [esp + 0xb4], eax
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0xc8]
shl ecx, 4
mov edi, dword [edx + eax*4 - 4]
lea ecx, [ecx + edi + 0x1f]
and ecx, 0xffffffe0
mov dword [edx + eax*4], ecx
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xc4], ebx
push dword [esp + 0x60]
shl eax, 2
imul eax, dword [esp + 0x60]
mov edx, dword [esp + 0xdc]
add edx, eax
mov eax, dword [esp + 0x74]
imul eax, dword [esp + 0xf4]
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0xf8]
mov ecx, dword [esp + 0xd0]
sub ecx, eax
sub ecx, dword [esp + 0x6c]
mov dword [esp + 0xd0], ecx
lea ecx, [edi + ebx*4]
shl ebx, 2
imul ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0xd8]
add eax, ebx
test edi, edi
cmove ecx, eax
push ecx
push edx
push dword [esp + 0xf0]
push dword [esp + 0xe0]
push dword [ebp + esi + 0x10]
push dword [ebp + esi + 0xc]
push dword [esp + 0xe0]
push dword [esp + 0xe8]
push 0
push dword [esp + 0x110]
push dword [esp + 0x11c]
push dword [esp + 0x11c]
push dword [esp + 0x100]
call fcn.1018ffe0
jmp 0x100166a8
mov dword [esp + 0x64], 1
jmp 0x100167d1
mov edx, 1
jmp 0x10015bcc
mov eax, 1
jmp 0x10015b32