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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x23c
test byte [esp + 0x264], 4
mov dword [esp + 0x24], eax
mov ebp, dword [esp + 0x268]
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x2c], 0
je 0x6fcd1967
mov eax, dword [esp + 0x278]
mov edx, dword [eax + 0x174]
xor eax, eax
test edx, edx
sete al
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x26c]
mov esi, dword [esp + 0x258]
mov ebx, dword [eax + 4]
mov eax, dword [ebp + 0xd4]
sub eax, dword [ebp + 0xd8]
lea ecx, [eax + 4]
mov eax, 1
shl eax, cl
lea ecx, [eax - 1]
neg eax
mov edx, eax
mov eax, dword [esp + 0x258]
shl eax, 4
mov edi, eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
sub eax, edi
add eax, eax
cmp eax, ecx
cmovg eax, ecx
mov dword [ebp], eax
mov eax, dword [esp + 0x25c]
shl eax, 4
sub ebx, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x258]
add ebx, ebx
cmp ebx, ecx
cmovle ecx, ebx
mov dword [ebp + 8], ecx
add eax, 1
mov edi, eax
shl edi, 4
mov dword [esp + 0x30], edi
neg dword [esp + 0x30]
mov edi, dword [esp + 0x30]
lea ecx, [edi + edi]
mov edi, dword [esp + 0x25c]
cmp ecx, edx
cmovl ecx, edx
mov dword [ebp + 4], ecx
add edi, 1
mov dword [esp + 0x28], edi
shl dword [esp + 0x28], 4
neg dword [esp + 0x28]
mov edi, dword [esp + 0x28]
lea ecx, [edi + edi]
mov edi, dword [esp + 0x26c]
cmp ecx, edx
cmovge edx, ecx
mov ecx, dword [esp + 0x25c]
sub esi, 1
mov dword [ebp + 0xc], edx
mov edx, dword [edi + 0x10]
imul ecx, edx
lea ebx, [esi + ecx]
sub ecx, edx
lea edi, [eax + ecx]
add ecx, dword [esp + 0x258]
cmp dword [esp + 0x27c], ebx
mov dword [esp + 0x20], edi
jg 0x6fcd1a5b
test esi, esi
jns 0x6fcd22ac
xor ebx, ebx
cmp dword [esp + 0x27c], ecx
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [ebp + 0x78], 0x100000
jg 0x6fcd22e2
imul ecx, ecx, 0x1e8
add ebx, 1
add ecx, dword [esp + 0x270]
mov esi, dword [ecx + 0x10]
mov edi, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x14c]
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], edi
mov dword [ebp + 0x7c], ecx
mov ecx, 2
mov esi, dword [esp + 0x20]
cmp dword [esp + 0x27c], esi
jg 0x6fcd1ac2
cmp edx, eax
jg 0x6fcd2303
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [ebp + 0x80], 0x100000
mov eax, dword [esp + 0x25c]
or eax, dword [esp + 0x258]
mov dword [esp + 0x20], eax
je 0x6fcd2b8c
cmp ebx, 1
je 0x6fcd2c96
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
cmp eax, edx
je 0x6fcd2d7a
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x44], esi
cmp edi, eax
mov esi, eax
cmovge esi, edi
cmp edi, edx
cmovl edi, edx
cmp esi, edi
cmovle edi, esi
cmp edx, eax
cmovge eax, edx
mov edx, dword [ebp + 0x80]
cmp edi, eax
cmovle eax, edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x50], eax
mov eax, ebx
cmp edi, ebx
cmovge eax, edi
cmp ecx, ebx
cmovge ebx, ecx
cmp eax, ebx
cmovg eax, ebx
cmp edi, ecx
cmovge ecx, edi
cmp eax, ecx
cmovg eax, ecx
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0x78]
cmp dword [ebp + 0x7c], edx
cmovle edx, dword [ebp + 0x7c]
cmp edx, eax
cmovle eax, edx
mov dword [ebp + 0x74], eax
mov edx, dword [ebp + 0xd0]
mov eax, dword [esp + 0x25c]
mov edi, dword [esp + 0x254]
mov dword [ebp + 0x8c], 0
mov dword [ebp + 0x88], 0
imul eax, edx
mov ecx, dword [edi]
shr edx, 1
add eax, dword [esp + 0x258]
imul edx, dword [esp + 0x25c]
add edx, dword [esp + 0x258]
shl eax, 4
add ecx, eax
mov dword [ebp + 0xb8], ecx
mov ecx, dword [edi + 8]
shl edx, 3
add ecx, edx
mov dword [ebp + 0xc0], ecx
mov ecx, dword [edi + 4]
mov edi, dword [esp + 0x24]
add ecx, edx
mov dword [ebp + 0xbc], ecx
mov ecx, dword [edi]
add ecx, eax
mov dword [ebp + 0xa0], ecx
mov ecx, dword [esp + 0x34]
add ecx, eax
mov dword [ebp + 0xa8], ecx
mov ecx, dword [esp + 0x38]
add ecx, eax
add eax, dword [esp + 0x250]
mov dword [ebp + 0xa4], ecx
mov dword [ebp + 0xac], eax
mov eax, dword [edi + 4]
add eax, edx
mov dword [ebp + 0xb0], eax
mov eax, dword [esp + 0x278]
add edx, dword [edi + 8]
lea edi, [ebp + 0x24]
test edi, 1
mov eax, dword [eax + 0xf0]
mov dword [ebp + 0xb4], edx
mov edx, dword [eax*4 + 0x70750fe0]
mov eax, dword [eax*4 + 0x70751d40]
mov dword [ebp + 0xc8], edx
mov edx, 0x28
mov dword [ebp + 0xcc], eax
mov dword [ebp + 0xdc], 0
mov dword [ebp + 0x84], 0
jne 0x6fcd3245
test edi, 2
jne 0x6fcd3234
mov ecx, edx
xor eax, eax
shr ecx, 2
test dl, 2
rep stosd dword es:[edi], eax
je 0x6fcd1c9d
xor eax, eax
add edi, 2
mov word [edi - 2], ax
and edx, 1
je 0x6fcd1ca5
mov byte [edi], 0
mov eax, dword [ebp + 0xd8]
test eax, eax
jne 0x6fcd2be8
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [ebp + 0x98], eax
mov dword [ebp + 0x9c], edx
mov ecx, dword [ebp + 0x98]
xor ebx, ebx
mov edx, dword [ebp + 0xd4]
mov esi, ebx
mov edi, dword [ebp + 0x9c]
neg ecx
mov eax, ecx
cmovne esi, edx
sar eax, 0x1f
xor ecx, eax
sub eax, ecx
lea ecx, [edx - 1]
sar eax, cl
neg edi
cmove edx, ebx
mov ebx, edi
sar ebx, 0x1f
xor edi, ebx
sub ebx, edi
mov edi, dword [esp + 0x278]
sar ebx, cl
mov ecx, dword [ebx*4 + 0x70751ec0]
add ecx, dword [eax*4 + 0x70751ec0]
mov eax, dword [ebp + 0xc8]
add ecx, esi
add edx, ecx
imul eax, edx
add eax, dword [edi + 0x154]
imul edx, dword [ebp + 0xcc]
add edx, dword [edi + 0x144]
mov dword [ebp + 0x10], eax
mov eax, dword [edi + 0x148]
mov dword [ebp + 0x14], edx
mov dword [ebp + 0x18], eax
mov eax, dword [edi + 0x14c]
mov dword [ebp + 0x1c], eax
mov eax, dword [edi + 0x150]
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x264]
and eax, 0x100
mov dword [esp + 0x34], eax
jne 0x6fcd2b7f
mov eax, dword [esp + 0x20]
test eax, eax
je 0x6fcd2ab2
mov eax, dword [ebp + 0x74]
mov dword [esp + 0x24], 0x200
cmp eax, 0x1ff
jg 0x6fcd2c80
mov eax, dword [esp + 0x26c]
mov ebx, dword [esp + 0x25c]
mov ecx, dword [eax + 0x10]
mov edi, dword [eax + 0x14]
mov eax, dword [esp + 0x25c]
imul ebx, ecx
add ebx, dword [esp + 0x258]
lea esi, [ecx - 1]
imul ebx, ebx, 0x1e8
add ebx, dword [esp + 0x274]
test eax, eax
je 0x6fcd2ae8
cmp dword [esp + 0x258], esi
jge 0x6fcd2ae8
mov edx, dword [esp + 0x68]
mov eax, edx
and eax, 0xfffffffe
test edx, edx
js 0x6fcd2cd7
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x78], eax
mov eax, edx
and eax, 0xfffffffe
test edx, edx
js 0x6fcd2ccc
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x258]
test eax, eax
je 0x6fcd2b07
mov eax, dword [esp + 0x58]
mov edx, eax
and edx, 0xfffffffe
test eax, eax
js 0x6fcd2d6f
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x68], edx
mov edx, eax
and edx, 0xfffffffe
test eax, eax
js 0x6fcd2ddb
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x25c]
test edx, edx
je 0x6fcd2b26
mov eax, dword [esp + 0x60]
mov edx, eax
and edx, 0xfffffffe
test eax, eax
js 0x6fcd2dd0
mov eax, dword [esp + 0x64]
mov dword [esp + 0x70], edx
mov edx, eax
and edx, 0xfffffffe
test eax, eax
js 0x6fcd2e07
mov eax, dword [esp + 0x50]
mov dword [esp + 0x74], edx
mov edx, eax
and edx, 0xfffffffe
test eax, eax
js 0x6fcd2b47
mov eax, dword [esp + 0x54]
mov dword [esp + 0x58], edx
mov edx, eax
and edx, 0xfffffffe
test eax, eax
js 0x6fcd2c5d
mov eax, dword [ebx]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov edx, eax
and edx, 0xfffffffe
test eax, eax
js 0x6fcd2c52
mov eax, dword [ebx + 4]
mov dword [esp + 0x60], edx
mov edx, eax
and edx, 0xfffffffe
test eax, eax
js 0x6fcd2c47
cmp dword [esp + 0x258], esi
mov dword [esp + 0x64], edx
jge 0x6fcd2b52
lea eax, [edi - 1]
cmp dword [esp + 0x25c], eax
jge 0x6fcd2b52
add ecx, 1
imul ecx, ecx, 0x1e8
add ecx, ebx
mov edx, dword [ecx]
mov eax, edx
and eax, 0xfffffffe
test edx, edx
js 0x6fcd2ced
mov edx, dword [ecx + 4]
mov dword [esp + 0x80], eax
mov eax, edx
and eax, 0xfffffffe
test edx, edx
js 0x6fcd2ce2
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x2c]
mov esi, 0x6fcd10d0
mov ebx, 1
lea edi, [esp + 0x5c]
test eax, eax
mov eax, fcn.6fcd98e0
cmovne eax, esi
mov dword [esp + 0x20], eax
lea esi, [esi]
mov esi, dword [edi - 4]
lea eax, [esp + 0x50]
xor ecx, ecx
xor edx, edx
jmp 0x6fcd1f70
add edx, 1
add eax, 8
cmp ebx, edx
jbe 0x6fcd2337
mov ecx, dword [eax]
cmp esi, ecx
jne 0x6fcd1f60
mov ecx, dword [eax + 4]
cmp dword [edi], ecx
jne 0x6fcd1f60
add ebx, 1
add edi, 8
cmp ebx, 7
jne 0x6fcd1f50
mov eax, dword [ebp + 0x10]
cmp eax, dword [esp + 0x24]
jle 0x6fcd235e
mov esi, dword [esp + 0x26c]
mov edx, dword [esp + 0x25c]
mov edi, dword [ebp + 0x24]
imul edx, dword [esi + 0x10]
add edx, dword [esp + 0x258]
mov dword [esp + 0x24], edi
imul edx, edx, 0x1e8
add edx, dword [esp + 0x274]
cmp edi, dword [edx]
je 0x6fcd2de6
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x84]
xor edx, edx
mov ebx, 0xff
mov dword [esp + 0x268], ebp
lea esi, [esp + eax*8 + 0x50]
lea eax, [esp + 0x50]
mov ecx, dword [esi]
lea edi, [eax + 0x38]
mov esi, dword [esi + 4]
jmp 0x6fcd2007
cmp esi, dword [eax + 4]
je 0x6fcd2a95
add eax, 8
cmp eax, edi
je 0x6fcd202d
mov edx, dword [eax]
cmp ecx, edx
jne 0x6fcd1ff5
mov edx, dword [eax + 4]
lea ebp, [edx + 2]
cmp esi, ebp
je 0x6fcd2be0
mov ebp, ebx
sub edx, 2
and ebp, 0xfffffff7
cmp esi, edx
cmove ebx, ebp
add eax, 8
cmp eax, edi
jne 0x6fcd2005
test byte [esp + 0x260], 4
mov eax, fcn.6fcc2d30
mov ebp, dword [esp + 0x268]
jne 0x6fcd2058
test byte [esp + 0x260], 1
mov eax, 0x6fcc28d0
mov edx, fcn.6fcc2ef0
cmove eax, edx
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x38]
mov dword [esp], edi
mov dword [esp + 4], esi
call eax
test dword [esp + 0x260], 0x400
je 0x6fcd2366
mov eax, dword [ebp + 0xd8]
mov ebx, dword [ebp + 0x98]
mov esi, dword [ebp + 0x9c]
mov edi, dword [ebp + 0x24]
test eax, eax
mov edx, dword [ebp + 0x28]
je 0x6fcd20b8
mov eax, ebx
shr eax, 0x1f
add ebx, eax
mov eax, esi
shr eax, 0x1f
add esi, eax
sar ebx, 1
sar esi, 1
cmp edi, ebx
je 0x6fcd2cb2
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x38], edx
mov dword [ebp + 0x10], 0x100000
mov dword [esp + 0xc], 0xff
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 8], ebp
mov dword [esp + 4], esi
mov dword [esp], ebx
call eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], 0xff
mov dword [esp + 8], ebp
mov dword [esp + 4], esi
mov dword [esp + 0x10], eax
mov dword [esp], ebx
call fcn.6fcc2ef0
mov eax, dword [esp + 0x24]
cmp eax, dword [ebp + 0x10]
mov edx, dword [esp + 0x38]
jge 0x6fcd2cc1
mov dword [ebp + 0x24], edi
mov esi, edx
mov dword [ebp + 0x28], edx
mov dword [ebp + 0x10], eax
cmp edi, 1
jne 0x6fcd2135
cmp esi, 1
je 0x6fcd2366
mov eax, dword [esp + 0x20]
mov ebx, dword [ebp + 0x10]
mov dword [ebp + 0x10], 0x100000
mov dword [esp + 0xc], 0xff
mov dword [esp + 8], ebp
mov dword [esp + 4], 1
mov dword [esp], 1
call eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], 0xff
mov dword [esp + 8], ebp
mov dword [esp + 4], 1
mov dword [esp + 0x10], eax
mov dword [esp], 1
call fcn.6fcc2ef0
cmp ebx, dword [ebp + 0x10]
jge 0x6fcd2366
mov eax, dword [ebp + 0xd8]
mov dword [ebp + 0x24], edi
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x10], ebx
test eax, eax
je 0x6fcd2374
mov eax, ebp
xor edx, edx
mov edi, dword [eax + 0x24]
add edx, 1
add eax, 8
lea ecx, [edi + edi]
mov edi, dword [eax + 0x20]
mov dword [eax + 0x44], ecx
lea ecx, [edi + edi]
mov dword [eax + 0x48], ecx
cmp edx, 5
jne 0x6fcd21ac
mov eax, dword [esp + 0x260]
and eax, 0x2000080
cmp eax, 0x2000080
je 0x6fcd3838
test dword [esp + 0x260], 0x10080
je 0x6fcd2382
test byte [esp + 0x260], 0x10
jne 0x6fcd2cf8
mov eax, dword [esp + 0x26c]
mov ebx, dword [eax + 4]
mov eax, dword [ebp + 0xd4]
lea ecx, [eax + 4]
mov eax, 1
shl eax, cl
lea edx, [eax - 1]
neg eax
mov ecx, eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
sub eax, dword [esp + 0x3c]
mov dword [ebp + 0xdc], 1
shl eax, 2
cmp eax, edx
cmovg eax, edx
sub ebx, dword [esp + 0x40]
mov dword [ebp], eax
lea eax, [ebx*4]
cmp eax, edx
cmovg eax, edx
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x30]
shl eax, 2
cmp eax, ecx
cmovl eax, ecx
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x28]
shl eax, 2
cmp eax, ecx
cmovl eax, ecx
test byte [esp + 0x260], 0x80
mov dword [ebp + 0xc], eax
je 0x6fcd2382
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], 0
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x50]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.6fcc3090
jmp 0x6fcd2382
imul ebx, ebx, 0x1e8
add ebx, dword [esp + 0x270]
cmp dword [esp + 0x27c], ecx
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov ebx, dword [ebx + 0x148]
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], edi
mov dword [ebp + 0x78], ebx
mov ebx, 1
jle 0x6fcd1a81
mov dword [esp + 0x60], 0
mov ecx, 1
mov dword [esp + 0x64], 0
mov dword [ebp + 0x7c], 0x100000
jmp 0x6fcd1aad
imul eax, esi, 0x1e8
add ebx, 1
add eax, dword [esp + 0x270]
mov ecx, 3
mov esi, dword [eax + 0x10]
mov edi, dword [eax + 0x14]
mov eax, dword [eax + 0x14c]
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], edi
mov dword [ebp + 0x80], eax
jmp 0x6fcd1adc
mov dword [esp + 0xc], ebx
mov dword [esp + 8], ebp
mov eax, dword [edi]
mov dword [esp + 4], eax
mov eax, dword [edi - 4]
mov dword [esp], eax
mov eax, dword [esp + 0x20]
call eax
mov eax, dword [esp + 0x24]
cmp dword [ebp + 0x10], eax
jg 0x6fcd1f7b
mov dword [esp + 0x2c], 0
mov eax, dword [ebp + 0xd8]
test eax, eax
jne 0x6fcd21a8
test byte [esp + 0x260], 0x10
jne 0x6fcd2d44
mov eax, dword [esp + 0x278]
imul edx, dword [eax + 0xf0], 0x1e
mov eax, dword [esp + 0x260]
and eax, 0x2000000
cmp eax, 1
sbb eax, eax
and eax, 0xfffffff9
add eax, 8
imul edx, eax
cmp dword [ebp + 0x10], edx
jl 0x6fcd2b6d
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x6fcd2b6d
lea eax, [esp + 0x88]
mov ecx, 0x6a
mov edx, dword [ebp + 0x30]
mov edi, eax
mov eax, dword [esp + 0x25c]
mov esi, ebp
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0xb0], edx
mov edx, dword [ebp + 0x58]
add eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 0xd8], edx
add eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0xac], eax
mov eax, dword [ebp + 0x54]
mov dword [esp + 0x14], 0
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x160]
test eax, eax
mov eax, dword [esp + 0x25c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x27c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax + 0x10]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x270]
mov dword [esp], eax
jne 0x6fcd2c68
call fcn.6fcc4820
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], edx
mov eax, dword [esp + 0x260]
mov esi, dword [esp + 0x98]
and eax, 0x940
mov dword [esp + 0x20], eax
jne 0x6fcd3542
mov eax, dword [esp + 0x2c]
add eax, 1
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x28]
add eax, 1
mov dword [esp + 0x24], eax
mov edi, dword [esp + 0x160]
test edi, edi
jne 0x6fcd2e12
mov edi, dword [esp + 0x278]
mov eax, dword [esp + 0xac]
sub eax, dword [esp + 0x120]
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xd4]
mov dword [edi + 0x104], eax
mov eax, dword [esp + 0xb0]
sub eax, dword [esp + 0x124]
mov ebx, dword [esp + 0xd8]
mov dword [edi + 0x108], eax
mov eax, dword [esp + 0xac]
mov dword [ebp + 0x54], ecx
mov dword [ebp + 0x14], esi
shl esi, 2
mov dword [ebp + 0x30], edx
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x58], ebx
mov dword [edi], eax
mov eax, dword [ebp + 0x18]
mov dword [edi + 4], edx
mov edx, dword [ebp + 0x38]
mov dword [edi + 0x144], esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 0x34]
mov dword [esp + 0xb0], edx
mov edx, dword [ebp + 0x60]
mov dword [esp + 0xac], eax
mov eax, dword [ebp + 0x5c]
mov dword [esp + 0xd8], edx
mov dword [esp + 0xd4], eax
mov eax, esi
shr eax, 0x1f
add eax, esi
mov dword [esp + 0x30], eax
sar dword [esp + 0x30], 1
mov dword [esp + 0x14], 1
mov eax, dword [esp + 0x25c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x27c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax + 0x10]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x270]
mov dword [esp], eax
call fcn.6fcc4820
mov esi, dword [esp + 0x15c]
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0xac]
mov dword [esp + 0x120], eax
xor eax, eax
sub edx, dword [esp + 0x120]
mov edi, eax
mov ecx, edx
cmovne edi, esi
sar ecx, 0x1f
mov ebx, edi
xor edx, ecx
mov edi, ecx
sub edi, edx
mov edx, dword [esp + 0xb0]
lea ecx, [esi - 1]
sar edi, cl
sub edx, dword [esp + 0x124]
cmovne eax, esi
mov dword [esp + 0x3c], eax
mov eax, edx
sar eax, 0x1f
xor edx, eax
sub eax, edx
sar eax, cl
mov eax, dword [eax*4 + 0x70751ec0]
add eax, dword [edi*4 + 0x70751ec0]
mov edi, dword [esp + 0x3c]
add eax, ebx
mov ebx, dword [esp + 0x20]
add edi, eax
imul edi, dword [esp + 0x154]
add edi, dword [esp + 0x98]
test ebx, ebx
mov dword [esp + 0x98], edi
jne 0x6fcd33ce
mov edx, dword [esp + 0x160]
test edx, edx
jne 0x6fcd30e1
mov esi, dword [esp + 0x278]
mov eax, dword [esp + 0xac]
sub eax, dword [esp + 0x120]
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x98]
mov dword [esi + 0x10c], eax
mov eax, dword [esp + 0xb0]
sub eax, dword [esp + 0x124]
mov edi, dword [esp + 0xd8]
mov dword [esi + 0x110], eax
mov esi, dword [esp + 0xd4]
mov eax, dword [esp + 0xac]
mov dword [ebp + 0x18], ecx
shl ecx, 2
mov dword [ebp + 0x38], edx
mov dword [ebp + 0x5c], esi
mov esi, dword [esp + 0x278]
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x60], edi
mov dword [esi + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esi + 0xc], edx
mov edx, dword [ebp + 0x40]
mov dword [esi + 0x148], ecx
mov esi, dword [esp + 0x24]
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 0x3c]
mov dword [esp + 0xb0], edx
mov edx, dword [ebp + 0x68]
mov dword [esp + 0xac], eax
mov eax, dword [ebp + 0x64]
mov dword [esp + 0xd8], edx
mov dword [esp + 0xd4], eax
mov eax, esi
shr eax, 0x1f
add eax, esi
mov dword [esp + 0x28], eax
sar dword [esp + 0x28], 1
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x27c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax + 0x10]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x270]
mov dword [esp], eax
call fcn.6fcc4820
mov esi, dword [esp + 0x15c]
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0xac]
mov dword [esp + 0x120], eax
xor eax, eax
sub edx, dword [esp + 0x120]
mov edi, eax
mov ecx, edx
cmovne edi, esi
sar ecx, 0x1f
mov ebx, edi
xor edx, ecx
mov edi, ecx
sub edi, edx
mov edx, dword [esp + 0xb0]
lea ecx, [esi - 1]
sar edi, cl
sub edx, dword [esp + 0x124]
cmovne eax, esi
mov dword [esp + 0x3c], eax
mov eax, edx
sar eax, 0x1f
xor edx, eax
sub eax, edx
sar eax, cl
mov eax, dword [eax*4 + 0x70751ec0]
add eax, dword [edi*4 + 0x70751ec0]
mov edi, dword [esp + 0x3c]
add eax, ebx
add edi, eax
mov eax, dword [esp + 0x20]
imul edi, dword [esp + 0x154]
add edi, dword [esp + 0x98]
test eax, eax
mov dword [esp + 0x98], edi
jne 0x6fcd3253
mov eax, dword [esp + 0x160]
test eax, eax
jne 0x6fcd2fa4
mov esi, dword [esp + 0x278]
mov eax, dword [esp + 0xac]
sub eax, dword [esp + 0x120]
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x98]
mov dword [esi + 0x114], eax
mov eax, dword [esp + 0xb0]
sub eax, dword [esp + 0x124]
mov edi, dword [esp + 0xd8]
mov dword [esi + 0x118], eax
mov esi, dword [esp + 0xd4]
mov eax, dword [esp + 0xac]
mov dword [ebp + 0x1c], ecx
shl ecx, 2
mov dword [ebp + 0x40], edx
mov dword [ebp + 0x64], esi
mov esi, dword [esp + 0x278]
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x68], edi
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0x20]
mov dword [esi + 0x14], edx
mov edx, dword [ebp + 0x48]
mov dword [esi + 0x14c], ecx
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 0x44]
mov dword [esp + 0xb0], edx
mov edx, dword [ebp + 0x70]
mov dword [esp + 0xac], eax
mov eax, dword [ebp + 0x6c]
mov dword [esp + 0xd8], edx
mov dword [esp + 0x14], 3
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x27c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax + 0x10]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x270]
mov dword [esp], eax
call fcn.6fcc4820
mov esi, dword [esp + 0x15c]
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0xac]
mov dword [esp + 0x120], eax
xor eax, eax
sub edx, dword [esp + 0x120]
mov edi, eax
mov ecx, edx
cmovne edi, esi
sar ecx, 0x1f
mov ebx, edi
xor edx, ecx
mov edi, ecx
sub edi, edx
mov edx, dword [esp + 0xb0]
lea ecx, [esi - 1]
sar edi, cl
sub edx, dword [esp + 0x124]
cmovne eax, esi
mov dword [esp + 0x28], eax
mov eax, edx
sar eax, 0x1f
xor edx, eax
sub eax, edx
sar eax, cl
mov eax, dword [eax*4 + 0x70751ec0]
add eax, dword [edi*4 + 0x70751ec0]
mov edi, dword [esp + 0x28]
add eax, ebx
add edi, eax
mov eax, dword [esp + 0x20]
imul edi, dword [esp + 0x154]
add edi, dword [esp + 0x98]
test eax, eax
mov dword [esp + 0x98], edi
jne 0x6fcd36b8
mov eax, dword [esp + 0x160]
test eax, eax
jne 0x6fcd2f56
mov esi, dword [esp + 0x278]
mov eax, dword [esp + 0xac]
sub eax, dword [esp + 0x120]
mov ecx, dword [esp + 0xd4]
mov ebx, dword [esp + 0xd8]
mov dword [esi + 0x11c], eax
mov eax, dword [esp + 0xb0]
sub eax, dword [esp + 0x124]
mov dword [esi + 0x120], eax
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x278]
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0xb0]
mov dword [ebp + 0x20], esi
shl esi, 2
mov dword [ebp + 0x6c], ecx
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
mov dword [ebp + 0x70], ebx
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], edx
mov dword [edi + 0x150], esi
mov edi, dword [ebp + 0xe0]
test edi, edi
je 0x6fcd2b74
mov esi, dword [esp + 0x34]
test esi, esi
jne 0x6fcd2b74
mov ebx, dword [ebp + 0xd8]
xor edx, edx
xor eax, eax
mov ecx, ebp
test ebx, ebx
je 0x6fcd38bf
mov esi, 1
mov ebx, dword [ecx + 0x54]
add esi, 1
add ecx, 8
mov edi, ebx
shr edi, 0x1f
add ebx, edi
sar ebx, 1
add eax, ebx
mov ebx, dword [ecx + 0x50]
mov edi, ebx
shr edi, 0x1f
add ebx, edi
sar ebx, 1
add edx, ebx
cmp esi, 5
jne 0x6fcd2a2d
mov ecx, edx
mov ebx, dword [ebp + 0x14]
and ecx, 0xf
sar edx, 3
add edx, dword [ecx*4 + 0x707510a0]
mov dword [esp + 8], ebp
mov dword [esp + 4], edx
mov edx, eax
and edx, 0xf
sar eax, 3
add eax, dword [edx*4 + 0x707510a0]
mov dword [esp], eax
call fcn.6fcc1fd0
add ebx, eax
mov dword [ebp + 0x14], ebx
add esp, 0x23c
pop ebx
pop esi
pop edi
pop ebp
ret
lea ebp, [edx + 2]
cmp ebp, ecx
je 0x6fcd2c3f
mov ebp, ebx
sub edx, 2
and ebp, 0xfffffffd
cmp edx, ecx
cmove ebx, ebp
jmp 0x6fcd1ffe
mov eax, dword [esp + 0x26c]
mov ebx, dword [esp + 0x25c]
mov dword [esp + 0x24], 0x200
mov ecx, dword [eax + 0x10]
mov edi, dword [eax + 0x14]
imul ebx, ecx
add ebx, dword [esp + 0x258]
lea esi, [ecx - 1]
imul ebx, ebx, 0x1e8
add ebx, dword [esp + 0x274]
mov eax, dword [esp + 0x258]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
test eax, eax
jne 0x6fcd1e11
mov edx, dword [esp + 0x25c]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
test edx, edx
jne 0x6fcd1e4a
mov eax, dword [esp + 0x50]
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov edx, eax
and edx, 0xfffffffe
test eax, eax
jns 0x6fcd1e85
lea edx, [eax + 1]
and edx, 0xfffffffe
jmp 0x6fcd1e85
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
jmp 0x6fcd1f2a
mov dword [ebp + 0x14], 0x100000
add esp, 0x23c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x24], 0x200
jmp 0x6fcd1d8e
mov dword [esp + 0x68], 0
mov eax, dword [esp + 0x68]
mov dword [esp + 0x6c], 0
mov edx, dword [esp + 0x6c]
mov dword [ebp + 0x74], 0
mov dword [ebp + 0x80], 0x100000
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
mov dword [ebp + 0x7c], 0x100000
mov dword [ebp + 0x78], 0x100000
jmp 0x6fcd1b7b
and ebx, 0xfffffffb
jmp 0x6fcd1ffe
mov eax, dword [esp + 0x25c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x27c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax + 0x10]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x270]
mov dword [esp], eax
call fcn.6fcc4c50
mov dword [ebp + 0x98], eax
mov dword [ebp + 0x9c], edx
jmp 0x6fcd1cc7
and ebx, 0xfffffffe
jmp 0x6fcd1ffe
lea edx, [eax + 1]
and edx, 0xfffffffe
jmp 0x6fcd1ed1
lea edx, [eax + 1]
and edx, 0xfffffffe
jmp 0x6fcd1ebd
lea edx, [eax + 1]
and edx, 0xfffffffe
jmp 0x6fcd1e9a
call fcn.6fcc4c50
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], edx
jmp 0x6fcd2480
mov esi, 0x400
cmp eax, 0x400
cmovg eax, esi
mov dword [esp + 0x24], eax
jmp 0x6fcd1d8e
mov eax, dword [esp + ecx*8 + 0x50]
mov edx, dword [esp + ecx*8 + 0x54]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + ecx*4 + 0x74]
mov dword [esp + 0x54], edx
mov dword [ebp + 0x74], eax
jmp 0x6fcd1b7b
cmp edx, esi
jne 0x6fcd20c0
mov esi, edx
jmp 0x6fcd2127
mov edi, dword [ebp + 0x24]
mov esi, dword [ebp + 0x28]
jmp 0x6fcd2127
lea eax, [edx + 1]
and eax, 0xfffffffe
jmp 0x6fcd1dfe
lea eax, [edx + 1]
and eax, 0xfffffffe
jmp 0x6fcd1de9
lea eax, [edx + 1]
and eax, 0xfffffffe
jmp 0x6fcd1f23
lea eax, [edx + 1]
and eax, 0xfffffffe
jmp 0x6fcd1f0c
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], 0
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x24]
mov edx, dword [ebp + 0x28]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.6fcc3090
mov eax, ebp
xor edx, edx
mov esi, dword [eax + 0x24]
add edx, 1
add eax, 8
mov edi, dword [eax + 0x20]
lea ecx, [esi + esi]
mov dword [eax + 0x44], ecx
lea ecx, [edi + edi]
mov dword [eax + 0x48], ecx
cmp edx, 5
jne 0x6fcd2d22
jmp 0x6fcd21ff
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], 0
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x24]
mov edx, dword [ebp + 0x28]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.6fcc3090
jmp 0x6fcd2382
lea edx, [eax + 1]
and edx, 0xfffffffe
jmp 0x6fcd1e22
cmp ecx, dword [esp + 0x64]
jne 0x6fcd1b11
cmp eax, dword [esp + 0x68]
jne 0x6fcd1b11
mov ebx, dword [esp + 0x6c]
mov edi, eax
mov dword [esp + 0x44], ecx
cmp ecx, ebx
jne 0x6fcd1b21
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x54], edx
mov edx, dword [ebp + 0x78]
cmp dword [ebp + 0x7c], eax
cmovle eax, dword [ebp + 0x7c]
cmp eax, edx
cmovg eax, edx
mov dword [ebp + 0x74], eax
jmp 0x6fcd1b7b
lea edx, [eax + 1]
and edx, 0xfffffffe
jmp 0x6fcd1e5b
lea edx, [eax + 1]
and edx, 0xfffffffe
jmp 0x6fcd1e37
mov esi, dword [ebp + 0x28]
cmp esi, dword [edx + 4]
mov dword [esp + 0x38], esi
jne 0x6fcd1fcf
cmp eax, dword [edx + 0x154]
jl 0x6fcd235e
jmp 0x6fcd1fcf
lea edx, [eax + 1]
and edx, 0xfffffffe
jmp 0x6fcd1e70
mov edi, dword [esp + 0x278]
mov eax, dword [esp + 0xd4]
sub eax, dword [esp + 0x120]
mov edx, dword [esp + 0xd8]
mov ecx, dword [esp + 0xac]
mov dword [edi + 0x104], eax
mov eax, dword [esp + 0xd8]
sub eax, dword [esp + 0x124]
mov dword [edi + 0x128], edx
mov ebx, dword [esp + 0xb0]
mov dword [edi + 0x108], eax
mov eax, dword [esp + 0xd4]
mov dword [edi + 0x124], eax
mov dword [ebp + 0x54], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x14], esi
shl esi, 2
mov dword [ebp + 0x58], edx
mov edx, dword [ebp + 0x38]
mov dword [ebp + 0x2c], ecx
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 0x34]
mov dword [ebp + 0x30], ebx
mov dword [edi + 0x144], esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0xb0], edx
mov edx, dword [ebp + 0x60]
mov dword [esp + 0xac], eax
mov eax, dword [ebp + 0x5c]
mov dword [edi], ecx
mov dword [edi + 4], ebx
mov dword [esp + 0xd8], edx
mov dword [esp + 0xd4], eax
mov eax, esi
shr eax, 0x1f
add eax, esi
mov dword [esp + 0x30], eax
sar dword [esp + 0x30], 1
mov eax, dword [esp + 0x25c]
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x27c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax + 0x10]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x270]
mov dword [esp], eax
call fcn.6fcc4c50
mov esi, dword [esp + 0x15c]
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x120], eax
xor eax, eax
sub edx, dword [esp + 0x120]
mov edi, eax
mov ecx, edx
cmovne edi, esi
sar ecx, 0x1f
mov ebx, edi
xor edx, ecx
mov edi, ecx
sub edi, edx
mov edx, dword [esp + 0xd8]
lea ecx, [esi - 1]
sar edi, cl
jmp 0x6fcd25f5
mov esi, dword [esp + 0x278]
mov eax, dword [esp + 0xd4]
sub eax, dword [esp + 0x120]
mov ecx, dword [esp + 0xd4]
mov ebx, dword [esp + 0xd8]
mov dword [esi + 0x11c], eax
mov eax, dword [esp + 0xd8]
sub eax, dword [esp + 0x124]
mov dword [esi + 0x13c], ecx
mov dword [esi + 0x140], ebx
mov dword [esi + 0x120], eax
jmp 0x6fcd29c0
mov esi, dword [esp + 0x278]
mov eax, dword [esp + 0xd4]
sub eax, dword [esp + 0x120]
mov edx, dword [esp + 0xd8]
mov ecx, dword [esp + 0x98]
mov dword [esi + 0x114], eax
mov eax, dword [esp + 0xd8]
sub eax, dword [esp + 0x124]
mov dword [esi + 0x138], edx
mov edi, dword [esp + 0xb0]
mov dword [esi + 0x118], eax
mov eax, dword [esp + 0xd4]
mov dword [esi + 0x134], eax
mov esi, dword [esp + 0xac]
mov dword [ebp + 0x64], eax
mov eax, dword [esp + 0x278]
mov dword [ebp + 0x1c], ecx
shl ecx, 2
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x3c], esi
mov dword [ebp + 0x68], edx
mov edx, dword [ebp + 0x48]
mov dword [eax + 0x14c], ecx
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], edi
mov eax, dword [ebp + 0x20]
mov dword [esp + 0xb0], edx
mov edx, dword [ebp + 0x70]
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 0x44]
mov dword [esp + 0xd8], edx
mov dword [esp + 0xac], eax
mov eax, dword [ebp + 0x6c]
mov dword [esp + 0xd4], eax
mov dword [esp + 0x14], 3
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x27c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax + 0x10]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x270]
mov dword [esp], eax
call fcn.6fcc4c50
mov esi, dword [esp + 0x15c]
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x120], eax
xor eax, eax
sub edx, dword [esp + 0x120]
mov edi, eax
mov ecx, edx
cmovne edi, esi
sar ecx, 0x1f
mov ebx, edi
xor edx, ecx
mov edi, ecx
sub edi, edx
mov edx, dword [esp + 0xd8]
lea ecx, [esi - 1]
sar edi, cl
jmp 0x6fcd2923
mov esi, dword [esp + 0x278]
mov eax, dword [esp + 0xd4]
sub eax, dword [esp + 0x120]
mov edx, dword [esp + 0xd8]
mov ecx, dword [esp + 0x98]
mov dword [esi + 0x10c], eax
mov eax, dword [esp + 0xd8]
sub eax, dword [esp + 0x124]
mov dword [esi + 0x130], edx
mov edi, dword [esp + 0xb0]
mov dword [esi + 0x110], eax
mov eax, dword [esp + 0xd4]
mov dword [esi + 0x12c], eax
mov esi, dword [esp + 0xac]
mov dword [ebp + 0x5c], eax
mov eax, dword [esp + 0x278]
mov dword [ebp + 0x18], ecx
shl ecx, 2
mov dword [ebp + 0x38], edi
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x60], edx
mov edx, dword [ebp + 0x40]
mov dword [eax + 0x148], ecx
mov dword [eax + 8], esi
mov esi, dword [esp + 0x24]
mov dword [eax + 0xc], edi
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0xb0], edx
mov edx, dword [ebp + 0x68]
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 0x3c]
mov dword [esp + 0xd8], edx
mov dword [esp + 0xac], eax
mov eax, dword [ebp + 0x64]
mov dword [esp + 0xd4], eax
mov eax, esi
shr eax, 0x1f
add eax, esi
mov dword [esp + 0x28], eax
sar dword [esp + 0x28], 1
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x27c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax + 0x10]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x270]
mov dword [esp], eax
call fcn.6fcc4c50
mov esi, dword [esp + 0x15c]
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x120], eax
xor eax, eax
sub edx, dword [esp + 0x120]
mov edi, eax
mov ecx, edx
cmovne edi, esi
sar ecx, 0x1f
mov ebx, edi
xor edx, ecx
mov edi, ecx
sub edi, edx
mov edx, dword [esp + 0xd8]
lea ecx, [esi - 1]
sar edi, cl
jmp 0x6fcd2797
xor eax, eax
add edi, 2
mov word [edi - 2], ax
sub edx, 2
jmp 0x6fcd1c86
mov byte [ebp + 0x24], 0
lea edi, [ebp + 0x25]
mov dl, 0x27
jmp 0x6fcd1c7a
mov eax, dword [esp + 0xd4]
mov edx, dword [ebp + 0xa0]
mov ebx, dword [esp + 0x26c]
mov dword [esp + 0x164], 0
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xd8]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x24]
shl eax, 3
add edx, eax
mov dword [esp + 0x128], edx
mov edx, dword [ebp + 0xa4]
add edx, eax
mov dword [esp + 0x12c], edx
mov edx, dword [ebp + 0xa8]
add edx, eax
mov dword [esp + 0x130], edx
mov edx, dword [ebp + 0xac]
add edx, eax
add eax, dword [ebp + 0xb8]
mov dword [esp + 0x134], edx
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x160]
sub esi, eax
mov ecx, esi
add ecx, 4
mov dword [esp + 0x3c], eax
mov eax, 1
shl eax, cl
lea edx, [eax - 1]
neg eax
mov ecx, eax
mov eax, dword [esp + 0x2c]
shl eax, 3
mov esi, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
sub eax, esi
add eax, eax
cmp eax, edx
cmovg eax, edx
mov dword [esp + 0x88], eax
mov eax, ebx
shl eax, 3
sub dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x44]
add eax, eax
cmp eax, edx
cmovg eax, edx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x38]
lea esi, [eax*8]
neg esi
lea eax, [esi + esi]
cmp eax, ecx
cmovl eax, ecx
mov dword [esp + 0x8c], eax
lea eax, [ebx*8 + 8]
mov ebx, eax
neg ebx
mov eax, ebx
add eax, eax
cmp eax, ecx
cmovl eax, ecx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x260]
and eax, 0x40800
cmp eax, 0x800
je 0x6fcd3e70
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x6fcd39c2
test byte [esp + 0x260], 0x40
jne 0x6fcd3988
cmp edi, dword [esp + 0x98]
jg 0x6fcd27e8
mov eax, dword [esp + 0x48]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xd8], eax
jmp 0x6fcd27e8
mov eax, dword [esp + 0xd4]
mov ebx, dword [esp + 0x26c]
mov dword [esp + 0x164], 0
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xd8]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0xa0]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x38]
add eax, 8
mov dword [esp + 0x128], eax
mov eax, dword [ebp + 0xa4]
add eax, 8
mov dword [esp + 0x12c], eax
mov eax, dword [ebp + 0xa8]
add eax, 8
mov dword [esp + 0x130], eax
mov eax, dword [ebp + 0xac]
add eax, 8
mov dword [esp + 0x134], eax
mov eax, dword [ebp + 0xb8]
add eax, 8
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x160]
sub esi, eax
mov ecx, esi
add ecx, 4
mov dword [esp + 0x3c], eax
mov eax, 1
shl eax, cl
lea edx, [eax - 1]
neg eax
mov ecx, eax
mov eax, ebx
shl eax, 3
mov esi, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
sub eax, esi
add eax, eax
cmp eax, edx
cmovg eax, edx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x28]
lea esi, [ebx*8 + 8]
shl eax, 3
sub dword [esp + 0x44], eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x44]
add eax, eax
cmp eax, edx
cmovg eax, edx
neg esi
mov dword [esp + 0x90], eax
lea eax, [esi + esi]
cmp eax, ecx
cmovl eax, ecx
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x24]
shl eax, 3
mov ebx, eax
neg ebx
mov eax, ebx
add eax, eax
cmp eax, ecx
cmovl eax, ecx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x260]
and eax, 0x40800
cmp eax, 0x800
je 0x6fcd3e0a
mov ecx, dword [esp + 0x3c]
test ecx, ecx
jne 0x6fcd3ad4
test byte [esp + 0x260], 0x40
jne 0x6fcd394e
cmp edi, dword [esp + 0x98]
jg 0x6fcd2646
mov eax, dword [esp + 0x48]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xd8], eax
jmp 0x6fcd2646
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x164], 0
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0xa0]
mov dword [esp + 0x128], eax
mov eax, dword [ebp + 0xa4]
mov dword [esp + 0x12c], eax
mov eax, dword [ebp + 0xa8]
mov dword [esp + 0x130], eax
mov eax, dword [ebp + 0xac]
mov dword [esp + 0x134], eax
mov eax, dword [ebp + 0xb8]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x160]
mov ebx, eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x26c]
mov edi, dword [eax + 4]
mov eax, dword [esp + 0x15c]
sub eax, ebx
lea ecx, [eax + 4]
mov eax, 1
shl eax, cl
lea edx, [eax - 1]
neg eax
mov ecx, eax
mov eax, dword [esp + 0x2c]
shl eax, 3
mov ebx, eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
sub eax, ebx
mov ebx, dword [esp + 0x28]
add eax, eax
cmp eax, edx
cmovg eax, edx
shl ebx, 3
sub edi, ebx
mov dword [esp + 0x88], eax
lea eax, [edi + edi]
cmp eax, edx
cmovg eax, edx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x28]
add eax, 1
lea edi, [eax*8]
neg edi
mov dword [esp + 0x38], eax
lea eax, [edi + edi]
cmp eax, ecx
cmovl eax, ecx
mov dword [esp + 0x8c], eax
lea eax, [ebx + 1]
mov dword [esp + 0x24], eax
shl eax, 3
mov ebx, eax
neg ebx
mov eax, ebx
add eax, eax
cmp eax, ecx
cmovl eax, ecx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x260]
and eax, 0x40800
cmp eax, 0x800
je 0x6fcd3f3c
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x6fcd3be6
test byte [esp + 0x260], 0x40
jne 0x6fcd3914
cmp esi, dword [esp + 0x98]
jg 0x6fcd36ac
mov eax, dword [esp + 0x44]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xd8], eax
mov esi, dword [esp + 0x98]
jmp 0x6fcd24b3
mov eax, dword [esp + 0xd4]
mov edx, dword [ebp + 0xa0]
mov ebx, dword [esp + 0x26c]
mov dword [esp + 0x164], 0
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xd8]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x38]
lea eax, [eax*8 + 8]
add edx, eax
mov dword [esp + 0x128], edx
mov edx, dword [ebp + 0xa4]
add edx, eax
mov dword [esp + 0x12c], edx
mov edx, dword [ebp + 0xa8]
add edx, eax
mov dword [esp + 0x130], edx
mov edx, dword [ebp + 0xac]
add edx, eax
add eax, dword [ebp + 0xb8]
mov dword [esp + 0x134], edx
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x160]
sub esi, eax
mov ecx, esi
add ecx, 4
mov dword [esp + 0x20], eax
mov eax, 1
shl eax, cl
lea edx, [eax - 1]
neg eax
mov ecx, eax
mov eax, ebx
shl eax, 3
mov esi, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
sub eax, esi
add eax, eax
cmp eax, edx
cmovg eax, edx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x24]
shl eax, 3
sub dword [esp + 0x30], eax
mov esi, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
lea eax, [esi + esi]
cmp eax, edx
lea esi, [ebx*8 + 8]
cmovg eax, edx
neg esi
mov dword [esp + 0x90], eax
lea eax, [esi + esi]
cmp eax, ecx
cmovl eax, ecx
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x24]
lea eax, [eax*8 + 8]
mov ebx, eax
neg ebx
mov eax, ebx
add eax, eax
cmp eax, ecx
cmovl eax, ecx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x260]
and eax, 0x40800
cmp eax, 0x800
je 0x6fcd3ed6
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x6fcd3cf8
test byte [esp + 0x260], 0x40
jne 0x6fcd38da
cmp edi, dword [esp + 0x98]
jg 0x6fcd2974
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xd8], eax
jmp 0x6fcd2974
mov eax, dword [esp + 0x26c]
mov ebx, dword [eax + 4]
mov eax, dword [ebp + 0xd4]
lea ecx, [eax + 4]
mov eax, 1
shl eax, cl
lea edx, [eax - 1]
neg eax
mov ecx, eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
sub eax, dword [esp + 0x3c]
shl eax, 2
cmp eax, edx
cmovg eax, edx
sub ebx, dword [esp + 0x40]
mov dword [ebp], eax
lea eax, [ebx*4]
cmp eax, edx
cmovg eax, edx
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x30]
shl eax, 2
cmp eax, ecx
cmovl eax, ecx
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x28]
shl eax, 2
cmp eax, ecx
cmovl eax, ecx
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 8], 0
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.6fcc3190
jmp 0x6fcd2382
mov ebx, 1
add ebx, 1
add ecx, 8
add eax, dword [ecx + 0x24]
add edx, dword [ecx + 0x28]
cmp ebx, 5
jne 0x6fcd38c4
jmp 0x6fcd2a54
lea eax, [esp + 0x88]
mov edx, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x6fcd0f60
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6fcc3090
jmp 0x6fcd3810
lea eax, [esp + 0x88]
mov edx, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x6fcd0f60
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6fcc3090
jmp 0x6fcd368d
lea eax, [esp + 0x88]
mov edx, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x6fcd0f60
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6fcc3090
jmp 0x6fcd351a
lea eax, [esp + 0x88]
mov edx, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x6fcd0f60
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6fcc3090
jmp 0x6fcd33a6
mov eax, dword [esp + 0xac]
add eax, eax
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xb0]
add eax, eax
test dword [esp + 0x260], 0x20000000
mov dword [esp + 0xd8], eax
jne 0x6fcd40e4
test dword [esp + 0x260], 0x100
je 0x6fcd33a6
test byte [esp + 0x260], 0x40
jne 0x6fcd4226
mov eax, dword [esp + 0x26c]
mov dword [esp + 0x164], 1
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x15c]
lea ecx, [eax + 4]
mov eax, 1
shl eax, cl
lea ecx, [eax - 1]
neg eax
mov edx, eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
sub eax, dword [esp + 0x2c]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x6fcd0f60
shl eax, 2
cmp eax, ecx
cmovg eax, ecx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x40]
sub dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
shl eax, 2
cmp eax, ecx
cmovg eax, ecx
shl esi, 2
cmp esi, edx
mov dword [esp + 0x90], eax
mov eax, ebx
cmovl esi, edx
shl eax, 2
cmp eax, edx
cmovge edx, eax
lea eax, [esp + 0x88]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0xd8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x8c], esi
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6fcc3090
jmp 0x6fcd33a6
mov eax, dword [esp + 0xac]
add eax, eax
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xb0]
add eax, eax
test dword [esp + 0x260], 0x20000000
mov dword [esp + 0xd8], eax
jne 0x6fcd4185
test dword [esp + 0x260], 0x100
je 0x6fcd351a
test byte [esp + 0x260], 0x40
jne 0x6fcd4280
mov eax, dword [esp + 0x26c]
mov dword [esp + 0x164], 1
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x15c]
lea ecx, [eax + 4]
mov eax, 1
shl eax, cl
lea ecx, [eax - 1]
neg eax
mov edx, eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
sub eax, dword [esp + 0x40]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x6fcd0f60
shl eax, 2
cmp eax, ecx
cmovg eax, ecx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x28]
sub dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
shl eax, 2
cmp eax, ecx
cmovg eax, ecx
shl esi, 2
cmp esi, edx
mov dword [esp + 0x90], eax
mov eax, ebx
cmovl esi, edx
shl eax, 2
cmp eax, edx
cmovge edx, eax
lea eax, [esp + 0x88]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0xd8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x8c], esi
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6fcc3090
jmp 0x6fcd351a
mov eax, dword [esp + 0xac]
add eax, eax
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xb0]
add eax, eax
test dword [esp + 0x260], 0x20000000
mov dword [esp + 0xd8], eax
jne 0x6fcd3fa2
test dword [esp + 0x260], 0x100
je 0x6fcd368d
test byte [esp + 0x260], 0x40
jne 0x6fcd42da
mov eax, dword [esp + 0x26c]
mov dword [esp + 0x164], 1
mov eax, dword [eax + 4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x15c]
lea ecx, [eax + 4]
mov eax, 1
shl eax, cl
lea ecx, [eax - 1]
neg eax
mov edx, eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
sub eax, dword [esp + 0x3c]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x6fcd0f60
shl eax, 2
cmp eax, ecx
cmovg eax, ecx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x40]
sub dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
shl eax, 2
cmp eax, ecx
cmovg eax, ecx
shl edi, 2
cmp edi, edx
mov dword [esp + 0x90], eax
mov eax, ebx
cmovl edi, edx
shl eax, 2
cmp eax, edx
cmovge edx, eax
lea eax, [esp + 0x88]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0xd8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x8c], edi
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6fcc3090
jmp 0x6fcd368d
mov eax, dword [esp + 0xac]
add eax, eax
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xb0]
add eax, eax
test dword [esp + 0x260], 0x20000000
mov dword [esp + 0xd8], eax
jne 0x6fcd4043
test dword [esp + 0x260], 0x100
je 0x6fcd3810
test byte [esp + 0x260], 0x40
jne 0x6fcd4334
mov eax, dword [esp + 0x26c]
mov dword [esp + 0x164], 1
mov eax, dword [eax + 4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x15c]
lea ecx, [eax + 4]
mov eax, 1
shl eax, cl
lea edx, [eax - 1]
neg eax
mov ecx, eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
sub eax, dword [esp + 0x28]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x6fcd0f60
shl eax, 2
cmp eax, edx
cmovg eax, edx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x2c]
sub dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
shl eax, 2
cmp eax, edx
cmovg eax, edx
mov edx, dword [esp + 0xd8]
shl esi, 2
cmp esi, ecx
mov dword [esp + 0x90], eax
mov eax, ebx
cmovl esi, ecx
shl eax, 2
cmp eax, ecx
cmovge ecx, eax
lea eax, [esp + 0x88]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 4], edx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], ecx
mov dword [esp], eax
call fcn.6fcc3090
jmp 0x6fcd3810
test byte [esp + 0x260], 8
mov ecx, fcn.6fcc2d30
jne 0x6fcd3e2e
test byte [esp + 0x260], 2
mov ecx, 0x6fcc28d0
mov eax, fcn.6fcc2ef0
cmove ecx, eax
lea eax, [esp + 0x88]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x10], 0x6fcd0f60
mov dword [esp + 0xc], 0xff
mov dword [esp + 4], eax
mov eax, dword [esp + 0xac]
mov dword [esp], eax
call ecx
mov eax, dword [esp + 0x160]
mov dword [esp + 0x3c], eax
jmp 0x6fcd3500
test byte [esp + 0x260], 8
mov ecx, fcn.6fcc2d30
jne 0x6fcd3e94
test byte [esp + 0x260], 2
mov ecx, 0x6fcc28d0
mov eax, fcn.6fcc2ef0
cmove ecx, eax
lea eax, [esp + 0x88]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x10], 0x6fcd0f60
mov dword [esp + 0xc], 0xff
mov dword [esp + 4], eax
mov eax, dword [esp + 0xac]
mov dword [esp], eax
call ecx
mov eax, dword [esp + 0x160]
mov dword [esp + 0x3c], eax
jmp 0x6fcd338c
test byte [esp + 0x260], 8
mov edx, fcn.6fcc2d30
jne 0x6fcd3efa
test byte [esp + 0x260], 2
mov edx, 0x6fcc28d0
mov eax, fcn.6fcc2ef0
cmove edx, eax
lea eax, [esp + 0x88]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x10], 0x6fcd0f60
mov dword [esp + 0xc], 0xff
mov dword [esp + 4], eax
mov eax, dword [esp + 0xac]
mov dword [esp], eax
call edx
mov eax, dword [esp + 0x160]
mov dword [esp + 0x20], eax
jmp 0x6fcd37f6
test byte [esp + 0x260], 8
mov ecx, fcn.6fcc2d30
jne 0x6fcd3f60
test byte [esp + 0x260], 2
mov ecx, 0x6fcc28d0
mov eax, fcn.6fcc2ef0
cmove ecx, eax
lea eax, [esp + 0x88]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x10], 0x6fcd0f60
mov dword [esp + 0xc], 0xff
mov dword [esp + 4], eax
mov eax, dword [esp + 0xac]
mov dword [esp], eax
call ecx
mov eax, dword [esp + 0x160]
mov dword [esp + 0x30], eax
jmp 0x6fcd3673
mov eax, dword [esp + 0x26c]
mov eax, dword [eax + 4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x15c]
lea ecx, [eax + 4]
mov eax, 1
shl eax, cl
lea ecx, [eax - 1]
neg eax
mov edx, eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
sub eax, dword [esp + 0x3c]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x6fcd0f60
shl eax, 2
cmp eax, ecx
cmovg eax, ecx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x40]
sub dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
shl eax, 2
cmp eax, ecx
cmovg eax, ecx
shl edi, 2
cmp edi, edx
mov dword [esp + 0x90], eax
mov eax, ebx
cmovl edi, edx
shl eax, 2
cmp eax, edx
cmovge edx, eax
lea eax, [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 0x8c], edi
mov dword [esp + 0x94], edx
call fcn.6fcc3190
jmp 0x6fcd368d
mov eax, dword [esp + 0x26c]
mov eax, dword [eax + 4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x15c]
lea ecx, [eax + 4]
mov eax, 1
shl eax, cl
lea edx, [eax - 1]
neg eax
mov ecx, eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
sub eax, dword [esp + 0x28]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x6fcd0f60
shl eax, 2
cmp eax, edx
cmovg eax, edx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x2c]
sub dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
shl eax, 2
cmp eax, edx
cmovg eax, edx
shl esi, 2
cmp esi, ecx
mov dword [esp + 0x90], eax
mov eax, ebx
cmovl esi, ecx
shl eax, 2
cmp eax, ecx
cmovge ecx, eax
lea eax, [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], ecx
call fcn.6fcc3190
jmp 0x6fcd3810
mov eax, dword [esp + 0x26c]
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x15c]
lea ecx, [eax + 4]
mov eax, 1
shl eax, cl
lea ecx, [eax - 1]
neg eax
mov edx, eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
sub eax, dword [esp + 0x2c]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x6fcd0f60
shl eax, 2
cmp eax, ecx
cmovg eax, ecx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x40]
sub dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
shl eax, 2
cmp eax, ecx
cmovg eax, ecx
shl esi, 2
cmp esi, edx
mov dword [esp + 0x90], eax
mov eax, ebx
cmovl esi, edx
shl eax, 2
cmp eax, edx
cmovge edx, eax
lea eax, [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], edx
call fcn.6fcc3190
jmp 0x6fcd33a6
mov eax, dword [esp + 0x26c]
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x15c]
lea ecx, [eax + 4]
mov eax, 1
shl eax, cl
lea ecx, [eax - 1]
neg eax
mov edx, eax
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
sub eax, dword [esp + 0x40]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x6fcd0f60
shl eax, 2
cmp eax, ecx
cmovg eax, ecx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x28]
sub dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
shl eax, 2
cmp eax, ecx
cmovg eax, ecx
shl esi, 2
cmp esi, edx
mov dword [esp + 0x90], eax
mov eax, ebx
cmovl esi, edx
shl eax, 2
cmp eax, edx
cmovge edx, eax
lea eax, [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], edx
call fcn.6fcc3190
jmp 0x6fcd351a
lea eax, [esp + 0x88]
mov edx, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x6fcd0f60
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6fcc3090
mov eax, dword [esp + 0xac]
add eax, eax
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xb0]
add eax, eax
mov dword [esp + 0xd8], eax
jmp 0x6fcd3a12
lea eax, [esp + 0x88]
mov edx, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x6fcd0f60
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6fcc3090
mov eax, dword [esp + 0xac]
add eax, eax
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xb0]
add eax, eax
mov dword [esp + 0xd8], eax
jmp 0x6fcd3b24
lea eax, [esp + 0x88]
mov edx, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x6fcd0f60
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6fcc3090
mov eax, dword [esp + 0xac]
add eax, eax
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xb0]
add eax, eax
mov dword [esp + 0xd8], eax
jmp 0x6fcd3c36
lea eax, [esp + 0x88]
mov edx, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x6fcd0f60
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6fcc3090
mov eax, dword [esp + 0xac]
add eax, eax
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xb0]
add eax, eax
mov dword [esp + 0xd8], eax
jmp 0x6fcd3d48