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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0xfc
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0xa4], ebx
mov ebx, dword [esp + 0x138]
mov ebp, dword [esp + 0x13c]
mov dword [esp + 0xa0], ebp
mov ebp, ebx
mov edx, dword [esp + 0x114]
neg ebp
mov eax, dword [esp + 0x110]
and ebp, 0x3f
mov dword [esp + 0xf0], edx
mov edx, dword [esp + 0x130]
mov dword [esp + 0x88], eax
mov eax, edx
and edx, 0xf0
and eax, 0xf
mov dword [esp + 0xe0], edx
mov esi, dword [esp + 0x128]
mov edx, dword [esp + 0x120]
mov ecx, dword [esp + 0x118]
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0x12c]
lea edi, [esi + edx]
mov dword [esp + 0x70], eax
mov eax, dword [ebp + ebx + 0x5c]
cmp edi, eax
mov dword [esp + 0x84], esi
mov dword [esp + 0x9c], esi
mov dword [esp + 0xac], ecx
mov dword [esp + 0x98], ecx
jle 0x10025fa7
sub eax, edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x128], eax
mov esi, dword [esp + 0x124]
mov eax, dword [esp + 0xac]
mov ecx, dword [ebp + ebx + 0x2c]
lea edx, [eax + esi]
cmp edx, ecx
jle 0x10025fd0
sub ecx, esi
mov dword [esp + 0xac], ecx
mov dword [esp + 0x12c], ecx
mov eax, dword [ebp + ebx + 0x3c]
pxor xmm3, xmm3
mov edx, dword [ebp + ebx + 0x6c]
pxor xmm2, xmm2
mov dword [esp + 0x94], eax
pxor xmm4, xmm4
mov dword [esp + 0x90], edx
pxor xmm1, xmm1
mov eax, dword [ebp + ebx + 0x30]
pxor xmm0, xmm0
mov edx, dword [ebp + ebx + 0x34]
cvtsi2sd xmm3, eax
cvtsi2sd xmm2, edx
cvtsi2sd xmm4, esi
shr eax, 0x1f
shr edx, 0x1f
mov esi, dword [ebp + ebx + 0x60]
mov edi, dword [ebp + ebx + 0x64]
cvtsi2sd xmm1, esi
cvtsi2sd xmm0, edi
addsd xmm3, qword [eax*8 + 0x102cb760]
addsd xmm2, qword [edx*8 + 0x102cb760]
shr esi, 0x1f
shr edi, 0x1f
divsd xmm3, xmm2
mulsd xmm4, xmm3
addsd xmm1, qword [esi*8 + 0x102cb760]
addsd xmm0, qword [edi*8 + 0x102cb760]
divsd xmm1, xmm0
mov ecx, dword [ebp + ebx + 0x78]
mov dword [esp + 0x6c], ecx
movsd qword [esp + 0x58], xmm1
movsd qword [esp], xmm4
call fcn.1007eda0
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 + 0x68], eax
call fcn.1007eda0
fstp qword [esp + 0x60]
movsd xmm0, qword [esp + 0x60]
cvttsd2si eax, xmm0
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0xa0]
shl eax, 2
mov dword [esp + 0x74], eax
test ecx, ecx
lea esi, [edx + ecx*4]
mov dword [esp + 0x8c], esi
mov edx, dword [esp + 0x120]
jle 0x10026150
mov esi, ecx
shr esi, 1
test esi, esi
jbe 0x10028483
mov eax, dword [esp + 0xa0]
xor ecx, ecx
nop dword [eax]
nop dword [eax]
mov edi, dword [ebp + ebx + 0x68]
lea edi, [edi + edx*4]
mov edi, dword [edi + ecx*8]
shl edi, 2
mov dword [eax + ecx*8], edi
mov edi, dword [ebp + ebx + 0x68]
lea edi, [edi + edx*4]
mov edi, dword [edi + ecx*8 + 4]
shl edi, 2
mov dword [eax + ecx*8 + 4], edi
inc ecx
cmp ecx, esi
jb 0x10026100
lea eax, [ecx + ecx + 1]
lea ecx, [eax - 1]
cmp ecx, dword [esp + 0x84]
jae 0x10026150
mov ecx, dword [ebp + ebx + 0x68]
lea esi, [edx + eax]
mov edi, dword [ecx + esi*4 - 4]
mov ecx, dword [esp + 0xa0]
shl edi, 2
mov dword [ecx + eax*4 - 4], edi
mov eax, dword [esp + 0x124]
cmp dword [esp + 0xac], 0
jle 0x100261ee
mov ecx, dword [esp + 0xac]
shr ecx, 1
test ecx, ecx
jbe 0x10028479
mov dword [esp + 0xf4], edx
xor esi, esi
mov edx, dword [esp + 0x8c]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
nop dword [eax]
mov edi, dword [ebp + ebx + 0x38]
lea edi, [edi + eax*4]
mov edi, dword [edi + esi*8]
mov dword [edx + esi*8], edi
mov edi, dword [ebp + ebx + 0x38]
lea edi, [edi + eax*4]
mov edi, dword [edi + esi*8 + 4]
mov dword [edx + esi*8 + 4], edi
inc esi
cmp esi, ecx
jb 0x100261a0
mov edx, dword [esp + 0xf4]
lea ecx, [esi + esi + 1]
lea esi, [ecx - 1]
cmp esi, dword [esp + 0xac]
jae 0x100261ee
mov esi, dword [ebp + ebx + 0x38]
lea edi, [eax + ecx]
mov esi, dword [esi + edi*4 - 4]
mov edi, dword [esp + 0x8c]
mov dword [edi + ecx*4 - 4], esi
cmp dword [esp + 0xe0], 0xf0
je 0x100282e8
cmp dword [esp + 0x70], 1
je 0x1002777d
cmp dword [esp + 0x70], 3
jne 0x10026c8d
mov ecx, dword [esp + 0x68]
imul ecx, dword [esp + 0xf0]
mov edi, dword [esp + 0x88]
sub edi, ecx
sub edi, dword [esp + 0x74]
mov ecx, dword [ebp + ebx + 0x10]
mov dword [esp + 0x88], edi
mov dword [esp + 0xb0], ecx
mov edi, dword [ebp + ebx + 0x78]
mov ecx, dword [ebp + ebx + 0x58]
mov esi, dword [ebp + ebx + 0xc]
mov dword [esp + 0x60], edi
mov dword [esp + 0x70], ecx
mov ecx, dword [ebp + ebx + 0x2c]
mov edi, dword [ebp + ebx + 0x5c]
mov dword [esp + 0xc4], esi
mov esi, dword [ebp + ebx + 0x28]
sub ecx, dword [esp + 0xac]
sub edi, dword [esp + 0x84]
sub ecx, eax
mov dword [esp + 0x6c], esi
sub edi, edx
mov esi, dword [esp + 0xe0]
and esi, 0x10
mov dword [esp + 0x5c], esi
jne 0x1002629c
mov esi, dword [ebp + ebx + 0x4c]
cmp esi, eax
mov dword [esp + 0xd8], esi
jg 0x100262a9
mov dword [esp + 0xd8], 0
jmp 0x100262b0
sub dword [esp + 0xd8], eax
mov esi, dword [esp + 0xe0]
and esi, 0x40
mov dword [esp + 0x80], esi
jne 0x100262d2
mov esi, dword [ebp + ebx + 0x7c]
cmp esi, edx
mov dword [esp + 0xd4], esi
jg 0x100262df
mov dword [esp + 0xd4], 0
jmp 0x100262e6
sub dword [esp + 0xd4], edx
mov esi, dword [esp + 0xe0]
and esi, 0x20
mov dword [esp + 0xdc], esi
jne 0x10026305
mov esi, dword [ebp + ebx + 0x50]
cmp esi, ecx
mov dword [esp + 0x74], esi
jg 0x1002630f
mov dword [esp + 0x74], 0
jmp 0x10026313
sub dword [esp + 0x74], ecx
and dword [esp + 0xe0], 0x80
jne 0x1002632b
mov esi, dword [ebp + ebx + 0x80]
cmp esi, edi
jg 0x1002632f
xor esi, esi
jmp 0x10026331
sub esi, edi
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xd0], ebx
mov edi, eax
mov ebx, dword [esp + 0xd8]
cmp eax, ebx
mov dword [esp + 0xcc], ebp
mov ecx, dword [esp + 0xd4]
cmovl ebx, eax
mov ebp, dword [esp + 0x84]
cmp ebp, ecx
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0x74]
cmovl ecx, ebp
cmp eax, edx
mov dword [esp + 0xd8], ebx
jge 0x10026386
mov edx, eax
cmp esi, ebp
mov dword [esp + 0xd4], ecx
jl 0x10026393
mov esi, ebp
sub edi, ebx
add ebx, edx
cmp ebx, eax
mov ebx, ebp
mov dword [esp + 0x64], edi
cmovg edx, edi
lea edi, [esi + ecx]
sub ebx, ecx
cmp edi, ebp
mov edi, dword [esp + 0x8c]
lea ecx, [ecx*4]
cmovg esi, ebx
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0xc4]
lea edi, [edi + eax*4 + 0x1f]
and edi, 0xffffffe0
mov dword [esp + 0x74], edx
shl edx, 2
mov dword [esp + 0xb4], edi
lea ebp, [esi + esi]
mov esi, dword [esp + 0xb0]
imul ecx, ebp
mov dword [esp + 0x68], ebp
lea ebx, [esi + esi]
mov esi, dword [esp + 0xd8]
imul edx, ebx
mov dword [esp + 0xe4], ebx
lea eax, [esi*4]
imul eax, ebx
mov ebp, dword [esp + 0xcc]
lea eax, [eax + edi + 0x1f]
and eax, 0xffffffe0
mov dword [esp + 0xb8], eax
lea ebx, [edx + eax + 0x1f]
and ebx, 0xffffffe0
mov dword [esp + 0xbc], ebx
lea eax, [ecx + ebx + 0x1f]
mov ebx, dword [esp + 0xd0]
and eax, 0xffffffe0
mov dword [esp + 0xc8], eax
test esi, esi
mov eax, dword [esp + 0xf8]
mov esi, dword [esp + 0x78]
lea edx, [eax*4]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0xf4]
jle 0x100265be
mov ecx, dword [esp + 0xe4]
shr ecx, 0x1f
mov edi, dword [esp + 0xb0]
mov dword [esp + 0xf4], edx
xor edx, edx
mov dword [esp + 0x58], edx
mov dword [esp + 0xc0], edx
lea ecx, [ecx + edi*2]
sar ecx, 1
dec ecx
mov dword [esp + 0xf8], eax
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x78], esi
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xb0]
nop dword [eax + eax]
nop dword [eax]
test ebx, ebx
jle 0x1002658d
mov dword [esp + 0xc0], eax
xor esi, esi
mov ebx, dword [esp + 0xcc]
lea ecx, [edx + eax]
mov ebp, dword [esp + 0xd0]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
nop dword [eax]
mov eax, dword [ebx + ebp + 0x38]
mov edx, dword [esp + 0xf8]
lea eax, [eax + edx*4]
mov eax, dword [eax + edi*4]
sub eax, dword [esp + 0xe8]
add eax, esi
cdq
xor eax, edx
sub eax, edx
mov dword [ecx + esi*4], eax
mov edx, dword [ebx + ebp + 0x28]
cmp eax, edx
jl 0x1002655c
add edx, edx
sub edx, eax
add edx, 0xfffffffe
cmp dword [esp + 0xdc], 0
cmove eax, edx
imul eax, dword [esp + 0xf0]
mov dword [ecx + esi*4], eax
inc esi
cmp esi, dword [esp + 0xe4]
jb 0x10026520
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xb0]
inc edi
lea eax, [eax + ebp*8]
cmp edi, dword [esp + 0xd8]
jb 0x100264e0
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0xf8]
mov esi, dword [esp + 0x78]
mov ebp, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
add eax, dword [esp + 0xac]
mov edi, eax
sub edi, dword [esp + 0x74]
cmp edi, eax
jge 0x1002671c
mov dword [esp + 0xf4], edx
sub eax, edi
mov edx, dword [esp + 0xe4]
xor ecx, ecx
shr edx, 0x1f
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x58], ecx
mov dword [esp + 0xdc], edi
mov dword [esp + 0xd0], ebx
lea edx, [edx + eax*2]
sar edx, 1
add eax, eax
mov dword [esp + 0xc0], eax
dec edx
mov dword [esp + 0xec], edx
mov eax, ecx
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xb8]
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x78], esi
mov dword [esp + 0xcc], ebp
test edx, edx
jle 0x100266f2
mov dword [esp + 0xe8], ecx
xor esi, esi
mov dword [esp + 0x58], eax
lea ebp, [ebx + eax]
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
nop dword [eax]
mov eax, dword [ecx + ebx + 0x38]
mov edx, dword [esp + 0xdc]
lea edi, [eax + edx*4]
mov eax, dword [esp + 0xe8]
mov eax, dword [edi + eax*4]
sub eax, dword [esp + 0xec]
add eax, esi
js 0x10028245
mov dword [ebp + esi*4], eax
mov edx, dword [ecx + ebx + 0x28]
mov edi, edx
sub edi, eax
cmp eax, edx
lea edi, [edi + edx - 2]
cmovge eax, edi
imul eax, dword [esp + 0xf0]
mov dword [ebp + esi*4], eax
inc esi
cmp esi, dword [esp + 0xc0]
jb 0x10026680
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xb8]
mov edi, dword [esp + 0xb0]
inc ecx
lea eax, [eax + edi*8]
cmp ecx, dword [esp + 0xf8]
jb 0x10026640
mov edx, dword [esp + 0xf4]
mov esi, dword [esp + 0x78]
mov ebp, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
cmp dword [esp + 0xd4], 0
lea eax, [edx*4]
jle 0x10026876
mov edi, dword [esp + 0x68]
shr edi, 0x1f
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0xf4], edx
xor edx, edx
mov dword [esp + 0x58], edx
mov dword [esp + 0xc0], edx
lea edi, [edi + ecx*2]
sar edi, 1
add ecx, ecx
mov dword [esp + 0xdc], ecx
dec edi
mov dword [esp + 0xe8], edi
mov dword [esp + 0x5c], eax
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xd0], ebx
mov dword [esp + 0x78], esi
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0xc0]
mov edx, ecx
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0xc4]
nop word [eax + eax]
test edx, edx
jle 0x10026848
mov dword [esp + 0xc0], eax
xor esi, esi
mov ebp, dword [esp + 0xd0]
lea ecx, [ebx + eax]
mov ebx, dword [esp + 0xcc]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
nop dword [eax]
mov eax, dword [ebx + ebp + 0x68]
mov edx, dword [esp + 0xf4]
lea eax, [eax + edx*4]
mov eax, dword [eax + edi*4]
sub eax, dword [esp + 0xe8]
add eax, esi
cdq
xor eax, edx
sub eax, edx
mov dword [ecx + esi*4], eax
mov edx, dword [ebx + ebp + 0x58]
cmp eax, edx
jl 0x1002681c
add edx, edx
sub edx, eax
add edx, 0xfffffffe
cmp dword [esp + 0xe0], 0
cmove eax, edx
shl eax, 2
mov dword [ecx + esi*4], eax
inc esi
cmp esi, dword [esp + 0xdc]
jb 0x100267e0
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xdc]
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0xc4]
inc edi
lea eax, [eax + ebp*8]
cmp edi, dword [esp + 0xd4]
jb 0x100267a0
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x78]
mov ebp, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
add edx, dword [esp + 0x84]
mov edi, edx
sub edi, esi
cmp edi, edx
jge 0x100269d4
mov dword [esp + 0xe0], edi
sub edx, edi
mov edi, dword [esp + 0x68]
xor ecx, ecx
shr edi, 0x1f
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0xd0], ebx
lea edi, [edi + edx*2]
sar edi, 1
add edx, edx
mov dword [esp + 0xc0], edx
dec edi
mov dword [esp + 0xdc], edi
mov eax, ecx
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xc4]
mov dword [esp + 0x78], esi
mov dword [esp + 0xcc], ebp
nop dword [eax + eax]
nop dword [eax]
nop
test edx, edx
jle 0x100269ad
mov dword [esp + 0xe8], ecx
xor esi, esi
mov dword [esp + 0x58], eax
lea ebp, [ebx + eax]
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
nop dword [eax]
mov eax, dword [ecx + ebx + 0x68]
mov edx, dword [esp + 0xe0]
lea edi, [eax + edx*4]
mov eax, dword [esp + 0xe8]
mov eax, dword [edi + eax*4]
sub eax, dword [esp + 0xdc]
add eax, esi
js 0x1002822c
mov dword [ebp + esi*4], eax
mov edx, dword [ecx + ebx + 0x58]
mov edi, edx
sub edi, eax
cmp eax, edx
lea edi, [edi + edx - 2]
cmovge eax, edi
shl eax, 2
mov dword [ebp + esi*4], eax
inc esi
cmp esi, dword [esp + 0xc0]
jb 0x10026940
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xc4]
inc ecx
lea eax, [eax + edi*8]
cmp ecx, dword [esp + 0xf4]
jb 0x10026900
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x78]
mov ebp, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
mov edi, dword [esp + 0x88]
mov dword [esp], edi
mov edx, dword [esp + 0xa8]
mov dword [esp + 4], edx
mov ecx, dword [esp + 0xf0]
mov dword [esp + 8], ecx
mov edi, dword [esp + 0xa4]
mov dword [esp + 0xc], edi
mov edx, dword [esp + 0x70]
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x84]
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0xac]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x7c]
imul edi, ecx
imul eax, edx
add edi, dword [esp + 0x94]
mov dword [esp + 0x30], edi
add eax, dword [esp + 0x90]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x44], ecx
mov edi, dword [esp + 0xd8]
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x74]
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], esi
call fcn.10031e60
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0x74]
mov dword [esp + 0x64], eax
test eax, eax
jle 0x100281eb
mov eax, dword [esp + 0x84]
sub eax, dword [esp + 0xd4]
sub eax, esi
mov dword [esp + 0x84], eax
test eax, eax
jle 0x100281eb
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0xb0]
lea edx, [eax*4]
imul edx, esi
mov esi, dword [esp + 0xc8]
lea ecx, [esi + edx + 0x1f]
and ecx, 0xffffffe0
mov dword [esp + 0x58], ecx
lea eax, [ecx + edi*8 + 0x23]
and eax, 0xffffffe0
add edi, edi
mov dword [ecx], eax
test edi, edi
jle 0x10026ba9
mov edx, edi
shr edx, 1
test edx, edx
jbe 0x10028222
mov ecx, dword [esp + 0x84]
xor esi, esi
mov dword [esp + 0xd0], ebx
shl ecx, 4
mov ebx, dword [esp + 0x58]
nop dword [eax + eax]
nop dword [eax]
lea eax, [ecx + eax + 0x1f]
and eax, 0xffffffe0
mov dword [ebx + esi*8 + 4], eax
lea eax, [ecx + eax + 0x1f]
and eax, 0xffffffe0
mov dword [ebx + esi*8 + 8], eax
inc esi
cmp esi, edx
jb 0x10026b60
mov ebx, dword [esp + 0xd0]
lea eax, [esi + esi + 1]
lea edx, [eax - 1]
cmp edx, edi
jae 0x10026ba9
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x84]
shl edx, 4
mov ecx, dword [edi + eax*4 - 4]
lea esi, [edx + ecx + 0x1f]
and esi, 0xffffffe0
mov dword [edi + eax*4], esi
mov dword [esp + 0xcc], ebp
mov esi, dword [esp + 0x8c]
mov ebp, dword [esp + 0xd8]
mov dword [esp + 0xd0], ebx
mov edi, dword [esp + 0xa0]
mov ecx, dword [esp + 0xd4]
lea ebx, [esi + ebp*4]
mov esi, dword [esp + 0x124]
add esi, ebp
imul ebp, dword [esp + 0xa4]
lea edx, [edi + ecx*4]
mov edi, dword [esp + 0xa8]
add edi, ebp
shl esi, 2
imul esi, dword [esp + 0xe4]
mov eax, dword [esp + 0x94]
lea ebp, [edi + ecx*4]
mov dword [esp + 0x5c], ebp
add eax, esi
push dword [esp + 0x58]
mov ebp, dword [esp + 0x64]
add ecx, dword [esp + 0x124]
mov esi, dword [esp + 0x94]
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 + 0xc4]
push dword [esp + 0xdc]
push dword [esp + 0x80]
push dword [esp + 0xa4]
push 0
push dword [esp + 0xcc]
push dword [esp + 0x11c]
push dword [esp + 0x8c]
push dword [esp + 0xbc]
mov ebp, dword [esp + 0x104]
mov ebx, dword [esp + 0x108]
call fcn.10031e60
jmp 0x100281e8
cmp dword [esp + 0x70], 4
jne 0x1002776d
mov ecx, dword [esp + 0x68]
imul ecx, dword [esp + 0xf0]
mov edi, dword [esp + 0x88]
sub edi, ecx
sub edi, dword [esp + 0x74]
mov ecx, dword [ebp + ebx + 0x10]
mov dword [esp + 0x88], edi
mov dword [esp + 0x80], ecx
mov edi, dword [ebp + ebx + 0x78]
mov ecx, dword [ebp + ebx + 0x58]
mov esi, dword [ebp + ebx + 0xc]
mov dword [esp + 0x60], edi
mov dword [esp + 0x6c], ecx
mov ecx, dword [ebp + ebx + 0x2c]
mov edi, dword [ebp + ebx + 0x5c]
mov dword [esp + 0xc0], esi
mov esi, dword [ebp + ebx + 0x28]
sub ecx, dword [esp + 0xac]
sub edi, dword [esp + 0x84]
sub ecx, eax
mov dword [esp + 0x5c], esi
sub edi, edx
mov esi, dword [esp + 0xe0]
and esi, 0x10
mov dword [esp + 0x58], esi
jne 0x10026d1f
mov esi, dword [ebp + ebx + 0x4c]
cmp esi, eax
mov dword [esp + 0xd4], esi
jg 0x10026d2c
mov dword [esp + 0xd4], 0
jmp 0x10026d33
sub dword [esp + 0xd4], eax
mov esi, dword [esp + 0xe0]
and esi, 0x40
mov dword [esp + 0x7c], esi
jne 0x10026d52
mov esi, dword [ebp + ebx + 0x7c]
cmp esi, edx
mov dword [esp + 0xc8], esi
jg 0x10026d5f
mov dword [esp + 0xc8], 0
jmp 0x10026d66
sub dword [esp + 0xc8], edx
mov esi, dword [esp + 0xe0]
and esi, 0x20
mov dword [esp + 0xd8], esi
jne 0x10026d85
mov esi, dword [ebp + ebx + 0x50]
cmp esi, ecx
mov dword [esp + 0x70], esi
jg 0x10026d8f
mov dword [esp + 0x70], 0
jmp 0x10026d93
sub dword [esp + 0x70], ecx
and dword [esp + 0xe0], 0x80
jne 0x10026dab
mov esi, dword [ebp + ebx + 0x80]
cmp esi, edi
jg 0x10026daf
xor esi, esi
jmp 0x10026db1
sub esi, edi
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xd0], ebx
mov edi, eax
mov ebx, dword [esp + 0xd4]
cmp eax, ebx
mov dword [esp + 0xcc], ebp
mov ecx, dword [esp + 0xc8]
cmovl ebx, eax
mov ebp, dword [esp + 0x84]
cmp ebp, ecx
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0x70]
cmovl ecx, ebp
cmp eax, edx
mov dword [esp + 0xd4], ebx
jge 0x10026e06
mov edx, eax
cmp esi, ebp
mov dword [esp + 0xc8], ecx
jl 0x10026e13
mov esi, ebp
sub edi, ebx
add ebx, edx
cmp ebx, eax
mov ebx, ebp
mov dword [esp + 0x64], edi
cmovg edx, edi
lea edi, [esi + ecx]
sub ebx, ecx
cmp edi, ebp
mov edi, dword [esp + 0x8c]
lea ecx, [ecx*4]
cmovg esi, ebx
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0xc0]
lea edi, [edi + eax*4 + 0x1f]
and edi, 0xffffffe0
mov dword [esp + 0x70], edx
shl edx, 2
mov dword [esp + 0xb0], edi
lea ebp, [esi + esi]
mov esi, dword [esp + 0x80]
imul ecx, ebp
mov dword [esp + 0x68], ebp
lea ebx, [esi + esi]
mov esi, dword [esp + 0xd4]
imul edx, ebx
mov dword [esp + 0xdc], ebx
lea eax, [esi*4]
imul eax, ebx
mov ebp, dword [esp + 0xcc]
lea eax, [eax + edi + 0x1f]
and eax, 0xffffffe0
mov dword [esp + 0xb4], eax
lea ebx, [edx + eax + 0x1f]
and ebx, 0xffffffe0
mov dword [esp + 0xb8], ebx
lea eax, [ecx + ebx + 0x1f]
mov ebx, dword [esp + 0xd0]
and eax, 0xffffffe0
mov dword [esp + 0xc4], eax
test esi, esi
mov eax, dword [esp + 0xf8]
mov esi, dword [esp + 0x74]
lea edx, [eax*4]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0xf4]
jle 0x1002704e
mov ecx, dword [esp + 0xdc]
shr ecx, 0x1f
mov edi, dword [esp + 0x80]
mov dword [esp + 0xf4], edx
xor edx, edx
mov dword [esp + 0xe8], edx
mov dword [esp + 0xbc], edx
lea ecx, [ecx + edi*2]
sar ecx, 1
dec ecx
mov dword [esp + 0xf8], eax
mov dword [esp + 0xe4], ecx
mov dword [esp + 0x74], esi
mov dword [esp + 0xd0], ebx
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb0]
mov esi, dword [esp + 0xdc]
mov dword [esp + 0xcc], ebp
nop word [eax + eax]
test esi, esi
jle 0x1002701d
mov dword [esp + 0xbc], ecx
xor ebp, ebp
mov dword [esp + 0xe8], eax
lea edx, [ebx + ecx]
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [ecx + ebx + 0x38]
mov esi, dword [esp + 0xf8]
lea edi, [eax + esi*4]
mov eax, dword [esp + 0xe8]
mov eax, dword [edi + eax*4]
sub eax, dword [esp + 0xe4]
add eax, ebp
js 0x1002829e
mov dword [edx + ebp*4], eax
mov edi, dword [ecx + ebx + 0x28]
cmp eax, edi
jl 0x10026fe5
mov esi, edi
sub esi, eax
cmp dword [esp + 0xd8], 0
lea edi, [esi + edi - 1]
cmove eax, edi
imul eax, dword [esp + 0xf0]
mov dword [edx + ebp*4], eax
inc ebp
cmp ebp, dword [esp + 0xdc]
jb 0x10026fa0
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb0]
mov esi, dword [esp + 0xdc]
mov edi, dword [esp + 0x80]
inc eax
lea ecx, [ecx + edi*8]
cmp eax, dword [esp + 0xd4]
jb 0x10026f60
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0xf8]
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
add eax, dword [esp + 0xac]
mov edi, eax
sub edi, dword [esp + 0x70]
cmp edi, eax
jge 0x100271bf
mov dword [esp + 0xf4], edx
sub eax, edi
mov edx, dword [esp + 0xdc]
xor ecx, ecx
shr edx, 0x1f
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xe4], edi
mov dword [esp + 0xd0], ebx
lea edx, [edx + eax*2]
sar edx, 1
add eax, eax
mov dword [esp + 0xd8], eax
dec edx
mov dword [esp + 0xec], edx
mov eax, ecx
mov edx, dword [esp + 0xd8]
mov ebx, dword [esp + 0xb4]
mov edi, dword [esp + 0x80]
mov dword [esp + 0x74], esi
mov dword [esp + 0xcc], ebp
nop dword [eax + eax]
nop dword [eax + eax]
test edx, edx
jle 0x10027195
mov dword [esp + 0xe8], ecx
xor esi, esi
mov dword [esp + 0xbc], eax
lea ebp, [ebx + eax]
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [ecx + ebx + 0x38]
mov edx, dword [esp + 0xe4]
lea edi, [eax + edx*4]
mov eax, dword [esp + 0xe8]
mov eax, dword [edi + eax*4]
sub eax, dword [esp + 0xec]
add eax, esi
js 0x10028287
mov dword [ebp + esi*4], eax
mov edx, dword [ecx + ebx + 0x28]
mov edi, edx
sub edi, eax
cmp eax, edx
lea edi, [edi + edx - 1]
cmovge eax, edi
imul eax, dword [esp + 0xf0]
mov dword [ebp + esi*4], eax
inc esi
cmp esi, dword [esp + 0xd8]
jb 0x10027120
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0xd8]
mov ebx, dword [esp + 0xb4]
mov edi, dword [esp + 0x80]
inc ecx
lea eax, [eax + edi*8]
cmp ecx, dword [esp + 0xf8]
jb 0x100270e0
mov edx, dword [esp + 0xf4]
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
cmp dword [esp + 0xc8], 0
lea ecx, [edx*4]
jle 0x10027346
mov edi, dword [esp + 0x68]
xor eax, eax
shr edi, 0x1f
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0xc0]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x58], ecx
lea edi, [edi + edx*2]
sar edi, 1
add edx, edx
mov dword [esp + 0xd8], edx
dec edi
mov dword [esp + 0xe8], edi
mov dword [esp + 0x74], esi
mov dword [esp + 0xd0], ebx
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xd8]
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0xc0]
mov dword [esp + 0xcc], ebp
nop dword [eax + eax]
nop dword [eax]
nop
test ebx, ebx
jle 0x10027318
mov dword [esp + 0xbc], ecx
xor ebp, ebp
mov dword [esp + 0xe4], eax
lea edx, [esi + ecx]
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [ecx + ebx + 0x68]
mov esi, dword [esp + 0xf4]
lea edi, [eax + esi*4]
mov eax, dword [esp + 0xe4]
mov eax, dword [edi + eax*4]
sub eax, dword [esp + 0xe8]
add eax, ebp
js 0x1002827c
mov dword [edx + ebp*4], eax
mov edi, dword [ecx + ebx + 0x58]
cmp eax, edi
jl 0x100272e5
mov esi, edi
sub esi, eax
cmp dword [esp + 0xe0], 0
lea edi, [esi + edi - 1]
cmove eax, edi
shl eax, 2
mov dword [edx + ebp*4], eax
inc ebp
cmp ebp, dword [esp + 0xd8]
jb 0x100272a0
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xd8]
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0xc0]
inc eax
lea ecx, [ecx + edi*8]
cmp eax, dword [esp + 0xc8]
jb 0x10027260
mov edx, dword [esp + 0xf4]
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
add edx, dword [esp + 0x84]
mov edi, edx
sub edi, esi
cmp edi, edx
jge 0x100274b7
mov dword [esp + 0xe0], edi
sub edx, edi
mov edi, dword [esp + 0x68]
xor eax, eax
shr edi, 0x1f
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0xc0]
mov dword [esp + 0xbc], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0xd0], ebx
lea edi, [edi + edx*2]
sar edi, 1
add edx, edx
mov dword [esp + 0xd8], edx
dec edi
mov dword [esp + 0xe8], edi
mov edx, eax
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0xc4]
mov edi, dword [esp + 0xc0]
mov dword [esp + 0x74], esi
mov dword [esp + 0xcc], ebp
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
nop dword [eax]
test ecx, ecx
jle 0x10027490
mov dword [esp + 0xe4], eax
xor esi, esi
mov dword [esp + 0xbc], edx
lea ebp, [ebx + edx]
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [ecx + ebx + 0x68]
mov edx, dword [esp + 0xe0]
lea edi, [eax + edx*4]
mov eax, dword [esp + 0xe4]
mov eax, dword [edi + eax*4]
sub eax, dword [esp + 0xe8]
add eax, esi
js 0x10028265
mov dword [ebp + esi*4], eax
mov edx, dword [ecx + ebx + 0x58]
mov edi, edx
sub edi, eax
cmp eax, edx
lea edi, [edi + edx - 1]
cmovge eax, edi
shl eax, 2
mov dword [ebp + esi*4], eax
inc esi
cmp esi, dword [esp + 0xd8]
jb 0x10027420
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0xc4]
mov edi, dword [esp + 0xc0]
inc eax
lea edx, [edx + edi*8]
cmp eax, dword [esp + 0xf4]
jb 0x100273e0
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
mov edi, dword [esp + 0x88]
mov dword [esp], edi
mov eax, dword [esp + 0xa8]
mov dword [esp + 4], eax
mov edx, dword [esp + 0xf0]
mov dword [esp + 8], edx
mov edi, dword [esp + 0xa4]
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x84]
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0xac]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x24], edx
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x78]
imul edi, edx
imul ecx, eax
add edi, dword [esp + 0x94]
mov dword [esp + 0x30], edi
add ecx, dword [esp + 0x90]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x44], ecx
mov edi, dword [esp + 0xd4]
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x70]
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], esi
call fcn.10031e60
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0x70]
mov dword [esp + 0x64], eax
test eax, eax
jle 0x100281eb
mov eax, dword [esp + 0x84]
sub eax, dword [esp + 0xc8]
sub eax, esi
mov dword [esp + 0x84], eax
test eax, eax
jle 0x100281eb
mov edx, dword [esp + 0x68]
mov edi, dword [esp + 0x80]
lea eax, [edx*4]
imul eax, esi
mov esi, dword [esp + 0xc4]
lea ecx, [esi + eax + 0x1f]
and ecx, 0xffffffe0
mov dword [esp + 0x58], ecx
lea edx, [ecx + edi*8 + 0x23]
and edx, 0xffffffe0
add edi, edi
mov dword [ecx], edx
test edi, edi
jle 0x10027689
mov ecx, edi
shr ecx, 1
test ecx, ecx
jbe 0x1002825b
mov eax, dword [esp + 0x84]
xor esi, esi
mov dword [esp + 0xd0], ebx
shl eax, 4
mov ebx, dword [esp + 0x58]
nop dword [eax + eax]
nop dword [eax]
lea edx, [eax + edx + 0x1f]
and edx, 0xffffffe0
mov dword [ebx + esi*8 + 4], edx
lea edx, [eax + edx + 0x1f]
and edx, 0xffffffe0
mov dword [ebx + esi*8 + 8], edx
inc esi
cmp esi, ecx
jb 0x10027640
mov ebx, dword [esp + 0xd0]
lea eax, [esi + esi + 1]
lea edx, [eax - 1]
cmp edx, edi
jae 0x10027689
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x84]
shl edx, 4
mov ecx, dword [edi + eax*4 - 4]
lea esi, [edx + ecx + 0x1f]
and esi, 0xffffffe0
mov dword [edi + eax*4], esi
mov dword [esp + 0xcc], ebp
mov esi, dword [esp + 0x8c]
mov ebp, dword [esp + 0xd4]
mov dword [esp + 0xd0], ebx
mov edi, dword [esp + 0xa0]
mov ecx, dword [esp + 0xc8]
lea ebx, [esi + ebp*4]
mov esi, dword [esp + 0x124]
add esi, ebp
imul ebp, dword [esp + 0xa4]
lea edx, [edi + ecx*4]
mov edi, dword [esp + 0xa8]
add edi, ebp
shl esi, 2
imul esi, dword [esp + 0xdc]
mov eax, dword [esp + 0x94]
lea ebp, [edi + ecx*4]
mov dword [esp + 0x5c], ebp
add eax, esi
push dword [esp + 0x58]
mov ebp, dword [esp + 0x64]
add ecx, dword [esp + 0x124]
mov esi, dword [esp + 0x94]
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 + 0xd8]
push dword [esp + 0x80]
push dword [esp + 0xa4]
push 0
push dword [esp + 0xcc]
push dword [esp + 0x11c]
push dword [esp + 0x8c]
push dword [esp + 0xbc]
mov ebp, dword [esp + 0x104]
mov ebx, dword [esp + 0x108]
call fcn.10031e60
jmp 0x100281e8
mov eax, 0xffffff1f
add esp, 0xfc
pop ebp
pop ebx
pop edi
pop esi
ret
mov ecx, dword [esp + 0x68]
imul ecx, dword [esp + 0xf0]
mov edi, dword [esp + 0x88]
sub edi, ecx
sub edi, dword [esp + 0x74]
mov ecx, dword [ebp + ebx + 0x10]
mov dword [esp + 0x88], edi
mov dword [esp + 0xb0], ecx
mov edi, dword [ebp + ebx + 0x78]
mov ecx, dword [ebp + ebx + 0x58]
mov esi, dword [ebp + ebx + 0xc]
mov dword [esp + 0x60], edi
mov dword [esp + 0x70], ecx
mov ecx, dword [ebp + ebx + 0x2c]
mov edi, dword [ebp + ebx + 0x5c]
mov dword [esp + 0xc4], esi
mov esi, dword [ebp + ebx + 0x28]
sub ecx, dword [esp + 0xac]
sub edi, dword [esp + 0x84]
sub ecx, eax
mov dword [esp + 0x6c], esi
sub edi, edx
mov esi, dword [esp + 0xe0]
and esi, 0x10
mov dword [esp + 0x5c], esi
jne 0x10027804
mov esi, dword [ebp + ebx + 0x4c]
cmp esi, eax
mov dword [esp + 0xd8], esi
jg 0x10027811
mov dword [esp + 0xd8], 0
jmp 0x10027818
sub dword [esp + 0xd8], eax
mov esi, dword [esp + 0xe0]
and esi, 0x40
mov dword [esp + 0x80], esi
jne 0x1002783a
mov esi, dword [ebp + ebx + 0x7c]
cmp esi, edx
mov dword [esp + 0xd4], esi
jg 0x10027847
mov dword [esp + 0xd4], 0
jmp 0x1002784e
sub dword [esp + 0xd4], edx
mov esi, dword [esp + 0xe0]
and esi, 0x20
mov dword [esp + 0xdc], esi
jne 0x1002786d
mov esi, dword [ebp + ebx + 0x50]
cmp esi, ecx
mov dword [esp + 0x74], esi
jg 0x10027877
mov dword [esp + 0x74], 0
jmp 0x1002787b
sub dword [esp + 0x74], ecx
and dword [esp + 0xe0], 0x80
jne 0x10027893
mov esi, dword [ebp + ebx + 0x80]
cmp esi, edi
jg 0x10027897
xor esi, esi
jmp 0x10027899
sub esi, edi
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xd0], ebx
mov edi, eax
mov ebx, dword [esp + 0xd8]
cmp eax, ebx
mov dword [esp + 0xcc], ebp
mov ecx, dword [esp + 0xd4]
cmovl ebx, eax
mov ebp, dword [esp + 0x84]
cmp ebp, ecx
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0x74]
cmovl ecx, ebp
cmp eax, edx
mov dword [esp + 0xd8], ebx
jge 0x100278ee
mov edx, eax
cmp esi, ebp
mov dword [esp + 0xd4], ecx
jl 0x100278fb
mov esi, ebp
sub edi, ebx
add ebx, edx
cmp ebx, eax
mov ebx, ebp
mov dword [esp + 0x64], edi
cmovg edx, edi
lea edi, [esi + ecx]
sub ebx, ecx
cmp edi, ebp
mov edi, dword [esp + 0x8c]
lea ecx, [ecx*4]
cmovg esi, ebx
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0xc4]
lea edi, [edi + eax*4 + 0x1f]
and edi, 0xffffffe0
mov dword [esp + 0x74], edx
shl edx, 2
mov dword [esp + 0xb4], edi
lea ebp, [esi + esi]
mov esi, dword [esp + 0xb0]
imul ecx, ebp
mov dword [esp + 0x68], ebp
lea ebx, [esi + esi]
mov esi, dword [esp + 0xd8]
imul edx, ebx
mov dword [esp + 0xe4], ebx
lea eax, [esi*4]
imul eax, ebx
mov ebp, dword [esp + 0xcc]
lea eax, [eax + edi + 0x1f]
and eax, 0xffffffe0
mov dword [esp + 0xb8], eax
lea ebx, [edx + eax + 0x1f]
and ebx, 0xffffffe0
mov dword [esp + 0xbc], ebx
lea eax, [ecx + ebx + 0x1f]
mov ebx, dword [esp + 0xd0]
and eax, 0xffffffe0
mov dword [esp + 0xc8], eax
test esi, esi
mov eax, dword [esp + 0xf8]
mov esi, dword [esp + 0x78]
lea edx, [eax*4]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0xf4]
jle 0x10027b1c
mov ecx, dword [esp + 0xe4]
shr ecx, 0x1f
mov edi, dword [esp + 0xb0]
mov dword [esp + 0xf4], edx
xor edx, edx
mov dword [esp + 0x58], edx
mov dword [esp + 0xc0], edx
lea ecx, [ecx + edi*2]
sar ecx, 1
dec ecx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x78], esi
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xf8], eax
mov dword [esp + 0xd0], ebx
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xb4]
mov esi, dword [esp + 0xe4]
nop dword [eax]
nop dword [eax]
test esi, esi
jle 0x10027aeb
mov dword [esp + 0xc0], edx
xor ebx, ebx
lea eax, [ebp + edx]
mov edx, dword [esp + 0xcc]
mov ebp, dword [esp + 0xd0]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
nop dword [eax]
mov esi, dword [edx + ebp + 0x38]
mov edi, dword [esp + 0xf8]
lea esi, [esi + edi*4]
mov edi, dword [esi + ecx*4]
sub edi, dword [esp + 0xe8]
add edi, ebx
test edi, edi
jg 0x10027aa3
mov edi, 0
mov dword [eax + ebx*4], edi
mov esi, dword [edx + ebp + 0x28]
cmp edi, esi
jl 0x10027aba
dec esi
cmp dword [esp + 0xdc], 0
cmove edi, esi
imul edi, dword [esp + 0xf0]
mov dword [eax + ebx*4], edi
inc ebx
cmp ebx, dword [esp + 0xe4]
jb 0x10027a80
mov edx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xb4]
mov esi, dword [esp + 0xe4]
mov edi, dword [esp + 0xb0]
inc ecx
lea edx, [edx + edi*8]
cmp ecx, dword [esp + 0xd8]
jb 0x10027a40
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0xf8]
mov esi, dword [esp + 0x78]
mov ebp, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
add eax, dword [esp + 0xac]
mov edi, eax
sub edi, dword [esp + 0x74]
cmp edi, eax
jge 0x10027c75
mov dword [esp + 0xf4], edx
sub eax, edi
mov edx, dword [esp + 0xe4]
xor ecx, ecx
shr edx, 0x1f
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x58], ecx
mov dword [esp + 0xdc], edi
mov dword [esp + 0x78], esi
lea edx, [edx + eax*2]
sar edx, 1
add eax, eax
mov dword [esp + 0xc0], eax
dec edx
mov dword [esp + 0xec], edx
mov eax, ecx
mov edx, dword [esp + 0xc0]
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0xb0]
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xd0], ebx
nop
test edx, edx
jle 0x10027c4b
mov dword [esp + 0x58], eax
xor ebp, ebp
mov dword [esp + 0xe8], ecx
lea ebx, [esi + eax]
mov eax, dword [esp + 0xcc]
mov edx, dword [esp + 0xd0]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
nop dword [eax]
mov ecx, dword [eax + edx + 0x38]
mov esi, dword [esp + 0xdc]
lea edi, [ecx + esi*4]
mov ecx, dword [esp + 0xe8]
mov edi, dword [edi + ecx*4]
sub edi, dword [esp + 0xec]
add edi, ebp
js 0x100282cf
mov dword [ebx + ebp*4], edi
mov ecx, dword [eax + edx + 0x28]
cmp edi, ecx
lea esi, [ecx - 1]
cmovge edi, esi
imul edi, dword [esp + 0xf0]
mov dword [ebx + ebp*4], edi
inc ebp
cmp ebp, dword [esp + 0xc0]
jb 0x10027be0
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xc0]
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0xb0]
inc ecx
lea eax, [eax + edi*8]
cmp ecx, dword [esp + 0xf8]
jb 0x10027ba0
mov edx, dword [esp + 0xf4]
mov esi, dword [esp + 0x78]
mov ebp, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
cmp dword [esp + 0xd4], 0
lea eax, [edx*4]
jle 0x10027dd4
mov edi, dword [esp + 0x68]
shr edi, 0x1f
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0xf4], edx
xor edx, edx
mov dword [esp + 0x58], edx
mov dword [esp + 0xc0], edx
lea edi, [edi + ecx*2]
sar edi, 1
add ecx, ecx
mov dword [esp + 0xdc], ecx
dec edi
mov dword [esp + 0xe8], edi
mov dword [esp + 0x78], esi
mov dword [esp + 0xcc], ebp
mov dword [esp + 0x5c], eax
mov dword [esp + 0xd0], ebx
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xdc]
mov esi, dword [esp + 0xbc]
mov edi, dword [esp + 0xc4]
nop dword [eax + eax]
test ebp, ebp
jle 0x10027da6
mov dword [esp + 0xc0], edx
xor ebx, ebx
mov ebp, dword [esp + 0xd0]
lea eax, [esi + edx]
mov edx, dword [esp + 0xcc]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
nop dword [eax]
mov esi, dword [edx + ebp + 0x68]
mov edi, dword [esp + 0xf4]
lea esi, [esi + edi*4]
mov edi, dword [esi + ecx*4]
sub edi, dword [esp + 0xe8]
add edi, ebx
test edi, edi
jg 0x10027d63
mov edi, 0
mov dword [eax + ebx*4], edi
mov esi, dword [edx + ebp + 0x58]
cmp edi, esi
jl 0x10027d7a
dec esi
cmp dword [esp + 0xe0], 0
cmove edi, esi
shl edi, 2
mov dword [eax + ebx*4], edi
inc ebx
cmp ebx, dword [esp + 0xdc]
jb 0x10027d40
mov edx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xdc]
mov esi, dword [esp + 0xbc]
mov edi, dword [esp + 0xc4]
inc ecx
lea edx, [edx + edi*8]
cmp ecx, dword [esp + 0xd4]
jb 0x10027d00
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x78]
mov ebp, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
add edx, dword [esp + 0x84]
mov edi, edx
sub edi, esi
cmp edi, edx
jge 0x10027f2d
mov dword [esp + 0xe0], edi
sub edx, edi
mov edi, dword [esp + 0x68]
xor ecx, ecx
shr edi, 0x1f
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x78], esi
lea edi, [edi + edx*2]
sar edi, 1
add edx, edx
mov dword [esp + 0xc0], edx
dec edi
mov dword [esp + 0xdc], edi
mov eax, ecx
mov edx, dword [esp + 0xc0]
mov esi, dword [esp + 0xc8]
mov edi, dword [esp + 0xc4]
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xd0], ebx
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
test edx, edx
jle 0x10027f06
mov dword [esp + 0x58], eax
xor ebp, ebp
mov dword [esp + 0xe8], ecx
lea ebx, [esi + eax]
mov eax, dword [esp + 0xcc]
mov edx, dword [esp + 0xd0]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
nop dword [eax]
mov ecx, dword [eax + edx + 0x68]
mov esi, dword [esp + 0xe0]
lea edi, [ecx + esi*4]
mov ecx, dword [esp + 0xe8]
mov edi, dword [edi + ecx*4]
sub edi, dword [esp + 0xdc]
add edi, ebp
js 0x100282b3
mov dword [ebx + ebp*4], edi
mov ecx, dword [eax + edx + 0x58]
cmp edi, ecx
lea esi, [ecx - 1]
cmovge edi, esi
shl edi, 2
mov dword [ebx + ebp*4], edi
inc ebp
cmp ebp, dword [esp + 0xc0]
jb 0x10027ea0
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xc0]
mov esi, dword [esp + 0xc8]
mov edi, dword [esp + 0xc4]
inc ecx
lea eax, [eax + edi*8]
cmp ecx, dword [esp + 0xf4]
jb 0x10027e60
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x78]
mov ebp, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
mov edi, dword [esp + 0x88]
mov dword [esp], edi
mov edx, dword [esp + 0xa8]
mov dword [esp + 4], edx
mov ecx, dword [esp + 0xf0]
mov dword [esp + 8], ecx
mov edi, dword [esp + 0xa4]
mov dword [esp + 0xc], edi
mov edx, dword [esp + 0x70]
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x84]
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0xac]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x7c]
imul edi, ecx
imul eax, edx
add edi, dword [esp + 0x94]
mov dword [esp + 0x30], edi
add eax, dword [esp + 0x90]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x44], ecx
mov edi, dword [esp + 0xd8]
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x74]
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], esi
call fcn.10031e60
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0x74]
mov dword [esp + 0x64], eax
test eax, eax
jle 0x100281eb
mov eax, dword [esp + 0x84]
sub eax, dword [esp + 0xd4]
sub eax, esi
mov dword [esp + 0x84], eax
test eax, eax
jle 0x100281eb
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0xb0]
lea edx, [eax*4]
imul edx, esi
mov esi, dword [esp + 0xc8]
lea ecx, [esi + edx + 0x1f]
and ecx, 0xffffffe0
mov dword [esp + 0x58], ecx
lea eax, [ecx + edi*8 + 0x23]
and eax, 0xffffffe0
add edi, edi
mov dword [ecx], eax
test edi, edi
jle 0x10028109
mov edx, edi
shr edx, 1
test edx, edx
jbe 0x100282a9
mov ecx, dword [esp + 0x84]
xor esi, esi
mov dword [esp + 0xd0], ebx
shl ecx, 4
mov ebx, dword [esp + 0x58]
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
lea eax, [ecx + eax + 0x1f]
and eax, 0xffffffe0
mov dword [ebx + esi*8 + 4], eax
lea eax, [ecx + eax + 0x1f]
and eax, 0xffffffe0
mov dword [ebx + esi*8 + 8], eax
inc esi
cmp esi, edx
jb 0x100280c0
mov ebx, dword [esp + 0xd0]
lea eax, [esi + esi + 1]
lea edx, [eax - 1]
cmp edx, edi
jae 0x10028109
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x84]
shl edx, 4
mov ecx, dword [edi + eax*4 - 4]
lea esi, [edx + ecx + 0x1f]
and esi, 0xffffffe0
mov dword [edi + eax*4], esi
mov dword [esp + 0xcc], ebp
mov esi, dword [esp + 0x8c]
mov ebp, dword [esp + 0xd8]
mov dword [esp + 0xd0], ebx
mov edi, dword [esp + 0xa0]
mov ecx, dword [esp + 0xd4]
lea ebx, [esi + ebp*4]
mov esi, dword [esp + 0x124]
add esi, ebp
imul ebp, dword [esp + 0xa4]
lea edx, [edi + ecx*4]
mov edi, dword [esp + 0xa8]
add edi, ebp
shl esi, 2
imul esi, dword [esp + 0xe4]
mov eax, dword [esp + 0x94]
lea ebp, [edi + ecx*4]
mov dword [esp + 0x5c], ebp
add eax, esi
push dword [esp + 0x58]
mov ebp, dword [esp + 0x64]
add ecx, dword [esp + 0x124]
mov esi, dword [esp + 0x94]
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 + 0xc4]
push dword [esp + 0xdc]
push dword [esp + 0x80]
push dword [esp + 0xa4]
push 0
push dword [esp + 0xcc]
push dword [esp + 0x11c]
push dword [esp + 0x8c]
push dword [esp + 0xbc]
mov ebp, dword [esp + 0x104]
mov ebx, dword [esp + 0x108]
call fcn.10031e60
add esp, 0x38
mov eax, dword [esp + 0x9c]
cmp eax, dword [ebp + ebx + 0x5c]
jg 0x10028205
mov eax, dword [esp + 0x98]
cmp eax, dword [ebp + ebx + 0x2c]
jle 0x10028215
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 0x10026b86
cmp dword [esp + 0x80], 0
jne 0x10026967
neg eax
mov dword [ebp + esi*4], eax
jmp 0x1002696b
cmp dword [esp + 0x5c], 0
jne 0x100266a7
neg eax
mov dword [ebp + esi*4], eax
jmp 0x100266ab
mov eax, 1
jmp 0x10027666
cmp dword [esp + 0x7c], 0
jne 0x10027447
neg eax
dec eax
mov dword [ebp + esi*4], eax
jmp 0x1002744b
neg eax
dec eax
mov dword [edx + ebp*4], eax
jmp 0x100272ca
cmp dword [esp + 0x58], 0
jne 0x10027147
neg eax
dec eax
mov dword [ebp + esi*4], eax
jmp 0x1002714b
neg eax
dec eax
mov dword [edx + ebp*4], eax
jmp 0x10026fca
mov eax, 1
jmp 0x100280e6
cmp dword [esp + 0x80], 0
jne 0x10027ec7
mov dword [ebx + ebp*4], 0
xor edi, edi
jmp 0x10027eca
cmp dword [esp + 0x5c], 0
jne 0x10027c07
mov dword [ebx + ebp*4], 0
xor edi, edi
jmp 0x10027c0a
mov esi, dword [ebp + ebx + 0xc]
add esi, esi
mov dword [esp + 0x58], esi
mov edi, dword [esp + 0x8c]
mov esi, dword [esp + 0xac]
mov ecx, dword [ebp + ebx + 0x10]
lea esi, [edi + esi*4 + 0x1f]
and esi, 0xffffffe0
mov dword [esp + 0x60], esi
lea edi, [esi + ecx*8 + 0x23]
add ecx, ecx
and edi, 0xffffffe0
mov dword [esp + 0x64], edi
test ecx, ecx
mov dword [esi], edi
mov dword [esp + 0x5c], ecx
jle 0x100283cc
mov esi, ecx
shr esi, 1
test esi, esi
jbe 0x1002846c
mov edi, dword [esp + 0x84]
xor ecx, ecx
shl edi, 4
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xd0], ebx
mov ebp, edi
mov edi, dword [esp + 0x64]
mov ebx, dword [esp + 0x60]
nop word [eax + eax]
lea edi, [ebp + edi + 0x1f]
and edi, 0xffffffe0
mov dword [ebx + ecx*8 + 4], edi
lea edi, [ebp + edi + 0x1f]
and edi, 0xffffffe0
mov dword [ebx + ecx*8 + 8], edi
inc ecx
cmp ecx, esi
jb 0x10028360
mov ebp, dword [esp + 0xcc]
lea ecx, [ecx + ecx + 1]
mov ebx, dword [esp + 0xd0]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x64]
lea esi, [ecx - 1]
cmp esi, dword [esp + 0x5c]
jae 0x100283cc
mov dword [esp + 0xf4], edx
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x84]
shl esi, 4
mov edi, dword [ecx + edx*4 - 4]
lea esi, [esi + edi + 0x1f]
and esi, 0xffffffe0
mov dword [ecx + edx*4], esi
mov edx, dword [esp + 0xf4]
push dword [esp + 0x60]
shl eax, 2
imul eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x98]
add ecx, eax
mov eax, dword [esp + 0x6c]
imul eax, dword [esp + 0xf4]
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x8c]
sub esi, eax
sub esi, dword [esp + 0x78]
mov dword [esp + 0x8c], esi
lea esi, [edi + edx*4]
shl edx, 2
imul edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x94]
add eax, edx
test edi, edi
cmove esi, eax
push esi
push ecx
push dword [esp + 0xac]
push dword [esp + 0x9c]
push dword [ebp + ebx + 0x10]
push dword [ebp + ebx + 0xc]
push dword [esp + 0xc8]
push dword [esp + 0xa4]
push 0
push dword [esp + 0xcc]
push dword [esp + 0x11c]
push dword [esp + 0xd8]
push dword [esp + 0xbc]
call fcn.10031e60
jmp 0x100281e8
mov dword [esp + 0x64], 1
jmp 0x10028391
mov ecx, 1
jmp 0x100261cc
mov eax, 1
jmp 0x1002612b