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

Disassembly:
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
sub esp, 0x114
xor edx, edx
cmp eax, edx
push esi
je 0x57d417
mov eax, dword [eax + 0x14]
mov esi, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
cmp eax, dword [esi + 0x1c]
jne 0x5bd223
mov eax, dword [ecx + 0x14]
mov ecx, 1
cmp dword [eax + 0x20], ecx
je 0x5bd223
cmp dword [eax + 0x28], ecx
je 0x5bd223
mov eax, dword [esp + 0x124]
mov esi, dword [eax]
shl esi, 0x12
add esi, 0x20000
mov dword [esp + 0x108], esi
mov esi, dword [eax + 4]
shl esi, 0x12
add esi, 0x20000
mov dword [esp + 0xf4], esi
mov esi, dword [eax + 8]
shl esi, 0x12
mov dword [esp + 0xe4], esi
mov esi, dword [eax + 0xc]
shl esi, 0x12
mov dword [esp + 0xd4], esi
mov esi, dword [eax + 0x10]
shl esi, 0x12
add esi, 0x20000
mov dword [esp + 0x10c], esi
mov esi, dword [eax + 0x14]
shl esi, 0x12
add esi, 0x20000
mov dword [esp + 0xf8], esi
mov esi, dword [eax + 0x18]
shl esi, 0x12
mov dword [esp + 0xe8], esi
mov esi, dword [eax + 0x1c]
shl esi, 0x12
mov dword [esp + 0xd8], esi
mov esi, dword [eax + 0x20]
shl esi, 0x12
add esi, 0x20000
mov dword [esp + 0x110], esi
mov esi, dword [eax + 0x24]
shl esi, 0x12
add esi, 0x20000
mov dword [esp + 0xfc], esi
mov esi, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
shl eax, 0x12
push ebx
mov dword [esp + 0xe0], eax
mov eax, 2
shl esi, 0x12
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xc4], eax
mov dword [esp + 0xd0], eax
mov ebx, 4
lea ecx, [esp + 0xbc]
push ebp
xor eax, eax
mov dword [esp + 0xf4], esi
mov dword [esp + 0xc0], edx
mov dword [esp + 0xcc], edx
sub ebx, ecx
push edi
lea esp, [esp]
lea ecx, [eax + 1]
cmp ecx, 3
mov dword [esp + 0x110], ecx
jge 0x57d5b3
lea esi, [esp + eax*4 + 0xc4]
lea edi, [esp + eax*4 + 0xd0]
lea eax, [ebx + esi]
mov edx, dword [esi]
mov ecx, dword [esp + eax + 0xc4]
mov ebp, dword [esp + edx*4 + 0x114]
cmp ebp, dword [esp + ecx*4 + 0x114]
jle 0x57d582
mov dword [esp + eax + 0xc4], edx
mov dword [esi], ecx
mov edx, dword [edi]
mov ecx, dword [esp + eax + 0xd0]
mov ebp, dword [esp + edx*4 + 0x100]
cmp ebp, dword [esp + ecx*4 + 0x100]
jle 0x57d5a4
mov dword [esp + eax + 0xd0], edx
mov dword [edi], ecx
add eax, 4
cmp eax, 0xc
jl 0x57d560
mov ecx, dword [esp + 0x110]
mov eax, ecx
cmp eax, 3
jl 0x57d540
mov esi, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc4]
mov edi, dword [esp + ebx*4 + 0x114]
mov eax, dword [esp + esi*4 + 0x114]
sub eax, edi
cdq
mov ebp, dword [esp + ebx*4 + 0xf0]
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + esi*4 + 0xf0]
sub eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0xc8]
sar eax, 0x12
mov dword [esp + 0x5c], eax
mov eax, dword [esp + edx*4 + 0x114]
sub eax, edi
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xc8]
mov eax, dword [esp + eax*4 + 0xf0]
sub eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + ebx*4 + 0x100]
mov ebx, dword [esp + ebx*4 + 0xe0]
mov dword [esp + 0xb8], edx
mov dword [esp + 0x4c], edi
mov edi, eax
mov eax, dword [esp + esi*4 + 0x100]
sub eax, edx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
mov dword [esp + 0x58], eax
mov eax, dword [esp + esi*4 + 0xe0]
sub eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x94], ebp
mov ebp, eax
mov eax, dword [esp + edx*4 + 0x100]
sub eax, dword [esp + 0xb8]
mov dword [esp + 0x88], ebx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
mov eax, dword [esp + 0xc8]
mov eax, dword [esp + eax*4 + 0xe0]
sub eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
imul edx, dword [esp + 0x60]
mov ebx, eax
sar esi, 0x12
sar ecx, 0x12
mov eax, esi
imul eax, ecx
sar edi, 0x12
sar ebp, 0x12
sar ebx, 0x12
sub eax, edx
mov dword [esp + 0xac], ecx
mov dword [esp + 0x110], eax
je case.0x5bc480.5
mov ecx, dword [esp + 0x58]
fild dword [esp + 0x110]
mov edx, esi
imul ecx, edi
fst qword [esp + 0xc4]
imul edx, dword [esp + 0x5c]
sub edx, ecx
mov dword [esp + 0x110], edx
sub esp, 8
fild dword [esp + 0x118]
fmul qword [0x6abb78]
fdivrp st(1)
fstp qword [esp]
call fcn.004dc240
imul edi, dword [esp + 0xb4]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x68]
imul eax, dword [esp + 0x64]
sub edi, eax
mov dword [esp + 0x64], edi
fild dword [esp + 0x64]
fmul qword [0x6abb78]
fdiv qword [esp + 0xcc]
fstp qword [esp]
call fcn.004dc240
imul esi, ebp
mov ecx, ebx
imul ecx, dword [esp + 0x60]
sub esi, ecx
mov dword [esp + 0x60], esi
mov dword [esp + 0x88], eax
fild dword [esp + 0x60]
fmul qword [0x6abb78]
fdiv qword [esp + 0xcc]
fstp qword [esp]
call fcn.004dc240
imul ebp, dword [esp + 0x68]
imul ebx, dword [esp + 0xb4]
sub ebx, ebp
mov dword [esp + 0x60], ebx
mov dword [esp + 0x50], eax
fild dword [esp + 0x60]
fmul qword [0x6abb78]
fdiv qword [esp + 0xcc]
fstp qword [esp]
call fcn.004dc240
mov ebx, dword [esp + 0xd8]
mov ecx, dword [esp + ebx*4 + 0x108]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x54]
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xc0]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0xdc]
mov esi, dword [esp + edx*4 + 0x108]
sar eax, 0x12
add esp, 8
cmp ecx, esi
mov dword [esp + 0x8c], eax
jne 0x57d94a
mov eax, 1
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd8]
mov edi, dword [esp + eax*4 + 0x100]
sub esi, edi
mov dword [esp + 0x58], esi
fild dword [esp + 0x58]
sub ecx, edi
fld qword [0x6abb70]
mov dword [esp + 0x58], ecx
fmul st(1), st(0)
fild dword [esp + 0x58]
fmulp st(1)
fldz
fld st(0)
fucomp st(3)
fnstsw ax
fstp st(2)
test ah, 0x44
jnp 0x5bd209
fucompp
fnstsw ax
test ah, 0x44
jnp case.0x5bc480.5
mov ecx, dword [esp + ebx*4 + 0x114]
cmp ecx, dword [esp + edx*4 + 0x114]
jle 0x57d89f
mov eax, ebx
jmp 0x57d8a3
mov eax, edx
mov edx, ebx
mov ecx, dword [esp + eax*4 + 0x114]
mov ebx, dword [esp + edx*4 + 0x114]
mov ebp, dword [esp + eax*4 + 0x100]
mov edx, dword [esp + edx*4 + 0x100]
mov eax, edi
sub eax, edx
mov dword [esp + 0xf4], edx
mov dword [esp + 0xc0], eax
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xb4], ecx
je case.0x5bc480.5
mov edx, dword [esp + 0xd8]
mov ecx, dword [esp + edx*4 + 0x114]
mov eax, ecx
sub eax, ebx
cdq
idiv esi
sub edi, ebp
mov dword [esp + 0xd4], eax
mov eax, edi
mov dword [esp + 0x104], eax
cdq
and edx, 0x3ffff
add eax, edx
mov edi, eax
sar edi, 0x12
mov dword [esp + 0x60], edi
je case.0x5bc480.5
mov eax, ecx
sub eax, dword [esp + 0xb4]
cdq
idiv edi
mov dword [esp + 0xc8], eax
jmp 0x57dcb1
mov eax, dword [esp + 0xd8]
mov edi, dword [esp + eax*4 + 0x100]
cmp esi, edi
jne 0x57da6d
sub esi, ecx
mov dword [esp + 0x58], esi
fild dword [esp + 0x58]
sub edi, ecx
fld qword [0x6abb70]
mov dword [esp + 0x58], edi
mov eax, 1
fmul st(1), st(0)
mov dword [esp + 0x34], eax
fild dword [esp + 0x58]
mov dword [esp + 0x30], eax
fmulp st(1)
fldz
fld st(0)
fucomp st(3)
fnstsw ax
fstp st(2)
test ah, 0x44
jnp 0x5bd209
fucompp
fnstsw ax
test ah, 0x44
jnp case.0x5bc480.5
mov ebp, dword [esp + ebx*4 + 0x114]
mov esi, dword [esp + edx*4 + 0x114]
mov eax, dword [esp + 0xd8]
cmp esi, dword [esp + eax*4 + 0x114]
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xe4], ebp
mov dword [esp + 0xf4], ecx
jle 0x57d9e6
mov ebx, eax
mov dword [esp + 0x58], edx
jmp 0x57d9ec
mov ebx, edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + ebx*4 + 0x100]
mov edx, dword [esp + 0x58]
mov edi, dword [esp + edx*4 + 0x100]
sub eax, ecx
mov dword [esp + 0xc0], eax
cdq
and edx, 0x3ffff
add eax, edx
sub edi, ecx
mov esi, eax
sar esi, 0x12
mov dword [esp + 0x104], edi
je case.0x5bc480.5
mov eax, dword [esp + ebx*4 + 0x114]
sub eax, ebp
cdq
idiv esi
mov dword [esp + 0xd4], eax
mov eax, edi
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
sar ecx, 0x12
mov dword [esp + 0x60], ecx
je case.0x5bc480.5
mov eax, dword [esp + 0x58]
mov eax, dword [esp + eax*4 + 0x114]
sub eax, ebp
cdq
idiv ecx
mov dword [esp + 0xc8], eax
jmp 0x57dcb1
mov eax, esi
sub eax, ecx
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fld qword [0x6abb70]
fmul st(1), st(0)
fld st(1)
fldz
fld st(0)
fucomp st(2)
fnstsw ax
test ah, 0x44
jnp 0x5bd218
mov eax, edi
sub eax, ecx
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fmulp st(3)
fld st(2)
fld st(1)
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x5bd203
fld st(1)
fucomp st(5)
fnstsw ax
fstp st(4)
test ah, 0x44
jnp 0x5bd218
fucomp st(2)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x5bd21c
mov ebp, dword [esp + edx*4 + 0x114]
mov edx, dword [esp + ebx*4 + 0x114]
mov eax, dword [esp + 0xd8]
mov eax, dword [esp + eax*4 + 0x114]
mov ebx, ebp
sub ebx, edx
mov dword [esp + 0x60], ebx
fild dword [esp + 0x60]
mov dword [esp + 0x58], eax
sub eax, edx
mov dword [esp + 0x60], eax
fdivrp st(1)
fild dword [esp + 0x60]
fdivrp st(2)
fcompp
fnstsw ax
test ah, 5
mov eax, esi
jp 0x57dbeb
sub eax, ecx
mov dword [esp + 0xb4], edx
mov dword [esp + 0xe0], edx
mov dword [esp + 0xbc], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 1
mov dword [esp + 0xf0], ecx
je case.0x5bc480.5
mov eax, ebp
sub eax, dword [esp + 0xb4]
mov dword [esp + 0xf4], esi
cdq
idiv ebx
mov dword [esp + 0xe4], ebp
mov dword [esp + 0xd0], eax
mov eax, edi
sub eax, esi
mov dword [esp + 0xc0], eax
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
je case.0x5bc480.5
mov ebx, dword [esp + 0x58]
mov eax, ebx
sub eax, ebp
cdq
idiv esi
sub edi, ecx
mov dword [esp + 0x104], edi
mov dword [esp + 0xd4], eax
mov eax, edi
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
sar ecx, 0x12
mov dword [esp + 0x60], ecx
je case.0x5bc480.5
mov eax, ebx
sub eax, dword [esp + 0xb4]
cdq
idiv ecx
mov dword [esp + 0xc8], eax
jmp 0x57dcb1
sub eax, ecx
mov dword [esp + 0xb0], edx
mov dword [esp + 0xe4], edx
mov dword [esp + 0x100], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov dword [esp + 0x30], 1
mov dword [esp + 0x34], 0
mov dword [esp + 0xf4], ecx
je case.0x5bc480.5
mov eax, ebp
sub eax, dword [esp + 0xb0]
add ebp, 1
cdq
idiv ebx
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xc4], eax
mov eax, edi
sub eax, esi
mov dword [esp + 0x104], eax
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
mov dword [esp + 0x60], esi
je case.0x5bc480.5
mov ebx, dword [esp + 0x58]
mov eax, ebx
sub eax, ebp
cdq
idiv esi
sub edi, ecx
mov dword [esp + 0xc0], edi
mov dword [esp + 0xc8], eax
mov eax, edi
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
je case.0x5bc480.5
mov eax, ebx
sub eax, dword [esp + 0xb0]
cdq
idiv esi
mov dword [esp + 0xd4], eax
mov ecx, dword [esp + 0x12c]
test ecx, ecx
je 0x57dcd3
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x90], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x98], edx
mov eax, dword [esp + 0x128]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x4c], eax
mov eax, dword [eax + 0xc]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x138]
test eax, eax
mov dword [esp + 0x78], edx
je 0x57dd11
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
mov dword [esp + 0xac], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0xb8], edx
test ecx, ecx
je 0x57dd28
mov eax, dword [ecx + 0x14]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x38]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], edx
jmp 0x57dd30
mov dword [esp + 0x54], 0
movzx eax, byte [0x8e80e6]
shl eax, 0xa
add eax, 0x9b7168
mov dword [esp + 0xa8], eax
mov ecx, dword [0x8e80e4]
mov edi, dword [esp + 0x34]
mov ebp, dword [0x8e80c0]
movzx eax, ch
shl eax, 0xa
add eax, 0x9b7168
mov dword [esp + 0xa4], eax
movzx eax, cl
mov ecx, dword [esp + 0x30]
shl eax, 0xa
add eax, 0x9b7168
mov dword [esp + 0xa0], eax
mov eax, dword [esp + ecx*4 + 0xe0]
mov dword [esp + 0x24], eax
mov eax, dword [esp + edi*4 + 0xb0]
mov dword [esp + 0x20], eax
mov eax, dword [esp + edi*4 + 0xc4]
mov dword [esp + 0x3c], eax
mov eax, dword [0x8e7f8c]
mov dword [esp + 0x70], eax
mov eax, dword [0x8e7f90]
mov dword [esp + 0x68], eax
mov edx, dword [esp + ecx*4 + 0xf0]
mov ebx, ebp
shl ebx, 0xa
shl ebp, 0xb
add ebx, 0x9b7168
add ebp, 0x9f7568
mov eax, ecx
neg eax
sbb eax, eax
not eax
and eax, esi
mov dword [esp + 0x64], eax
mov dword [esp + 0x5c], edx
mov edx, dword [esp + ecx*4 + 0xd0]
mov dword [esp + 0x38], edx
mov edx, dword [0x8e7f94]
mov eax, edi
neg eax
sbb eax, eax
not eax
and eax, dword [esp + 0x60]
mov dword [esp + 0x40], edx
mov edx, dword [0x8e7f98]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + ecx*4 + 0xbc]
mov dword [esp + 0x6c], edx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
mov dword [esp + 0x28], eax
mov eax, dword [esp + edi*4 + 0x100]
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x5c]
cdq
and edx, 0x3ffff
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x24]
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0x20]
cdq
and edx, 0x3ffff
sar edi, 0x12
sar ecx, 0x12
mov dword [esp + 0x50], ebx
mov dword [esp + 0xdc], ebp
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
cmp dword [esp + 0x12c], 0
je 0x5bb6f4
mov edx, dword [esp + 0x12c]
mov eax, dword [edx + 4]
shl eax, 0x12
mov dword [esp + 0x100], eax
mov eax, dword [edx + 8]
shl eax, 0x12
mov dword [esp + 0xbc], eax
mov eax, dword [edx + 0x14]
mov edx, dword [eax + 0x1c]
sub edx, 0
je 0x59babe
mov ebp, 1
sub edx, ebp
jne case.0x5bc480.5
cmp dword [eax + 0x20], ebp
jne 0x587b2b
mov eax, dword [0x8e80bc]
cmp eax, 0xb
ja case.0x5bc480.5
jmp dword [eax*4 + 0x5bd22c]
mov eax, dword [0x8e80c0]
cmp eax, 0xff
jne 0x57f3c9
mov eax, dword [0x8e80e4]
and eax, 0xffffff
cmp dword [esp + 0x138], 0
je 0x57eac3
cmp eax, 0xffffff
jne 0x57e4d5
cmp dword [esp + 0x134], 0
je 0x57e205
jmp 0x57df30
mov eax, dword [esp + 0x70]
mov edx, edi
imul edx, dword [esp + 0x74]
add edx, dword [esp + 0x78]
cmp ecx, eax
lea edx, [edx + ecx*4]
mov dword [esp + 0x10], edx
jge 0x57df5d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x57e10e
cmp edi, dword [esp + 0x6c]
jge 0x57e10e
cmp ecx, dword [esp + 0x40]
jge 0x57e10e
test esi, esi
jle 0x57e10e
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x57e0e7
cmp eax, dword [esp + 0xbc]
jae 0x57e0e7
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x2c], ebx
je 0x57e0e7
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x54]
movzx ebx, byte [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x4c]
shl eax, 8
add ebx, eax
mov eax, dword [esp + 0x10]
sar ebx, 8
mov byte [eax], bl
movzx eax, byte [eax + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx ebx, byte [ebx + eax*4 + 1]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x4c]
shl eax, 8
add ebx, eax
mov eax, dword [esp + 0x10]
sar ebx, 8
mov byte [eax + 1], bl
movzx edx, byte [edx]
mov ebx, dword [esp + 0x54]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [esp + 0x2c]
movzx eax, byte [eax + 2]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
shl eax, 8
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, 8
mov byte [eax + 2], dl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x57e10e
cmp ecx, dword [esp + 0x40]
jl 0x57dfd0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x57e1b4
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x57df30
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x57df30
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x57e22b
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x57e3de
cmp edi, dword [esp + 0x6c]
jge 0x57e3de
cmp ecx, dword [esp + 0x40]
jge 0x57e3de
test esi, esi
jle 0x57e3de
jmp 0x57e2b0
cmp edx, dword [esp + 0x100]
jae 0x57e3b5
cmp ebx, dword [esp + 0xbc]
jae 0x57e3b5
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebx, 0x12
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
add edx, eax
add edx, dword [esp + 0x90]
movzx eax, byte [ebp]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x54]
movzx ebx, byte [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x4c]
shl eax, 8
add ebx, eax
sar ebx, 8
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx ebx, byte [ebx + eax*4 + 1]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x4c]
shl eax, 8
add ebx, eax
sar ebx, 8
mov byte [ebp + 1], bl
movzx edx, byte [edx]
mov ebx, dword [esp + 0x54]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx eax, byte [ebp + 2]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
shl eax, 8
add edx, eax
sar edx, 8
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x57e3de
cmp ecx, dword [esp + 0x40]
jl 0x57e2b0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x57e484
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x57e205
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x57e205
cmp dword [esp + 0x134], 0
je 0x57e7e0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x57e509
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x9c]
add ebx, dword [esp + 0x88]
add esi, 1
add eax, ebx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x57e6e6
cmp edi, dword [esp + 0x6c]
jge 0x57e6e6
cmp ecx, dword [esp + 0x40]
jge 0x57e6e6
test esi, esi
jle 0x57e6e6
jmp 0x57e590
cmp edx, dword [esp + 0x100]
jae 0x57e6bd
cmp eax, dword [esp + 0xbc]
jae 0x57e6bd
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x2c], ebx
je 0x57e6b9
movzx ebx, byte [ebp]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4]
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x4c]
shl eax, 8
add ebx, eax
shr ebx, 8
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx eax, byte [ebx + eax*4 + 1]
mov ebx, dword [esp + 0xa4]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x4c]
shl eax, 8
add ebx, eax
shr ebx, 8
mov byte [ebp + 1], bl
movzx edx, byte [edx]
mov ebx, dword [esp + 0x54]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx eax, byte [ebp + 2]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
shl eax, 8
add edx, eax
shr edx, 8
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x57e6e6
cmp ecx, dword [esp + 0x40]
jl 0x57e590
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x57e78c
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x57e4e3
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x57e4e3
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x57e806
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x57e9cc
cmp edi, dword [esp + 0x6c]
jge 0x57e9cc
cmp ecx, dword [esp + 0x40]
jge 0x57e9cc
test esi, esi
jle 0x57e9cc
nop
cmp edx, dword [esp + 0x100]
jae 0x57e9a3
cmp ebx, dword [esp + 0xbc]
jae 0x57e9a3
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebx, 0x12
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
add edx, eax
add edx, dword [esp + 0x90]
movzx eax, byte [ebp]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx eax, byte [ebx + eax*4]
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x4c]
shl eax, 8
add ebx, eax
shr ebx, 8
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx eax, byte [ebx + eax*4 + 1]
mov ebx, dword [esp + 0xa4]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x4c]
shl eax, 8
add ebx, eax
shr ebx, 8
mov byte [ebp + 1], bl
movzx edx, byte [edx]
mov ebx, dword [esp + 0x54]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx eax, byte [ebp + 2]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
shl eax, 8
add edx, eax
shr edx, 8
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x57e9cc
cmp ecx, dword [esp + 0x40]
jl 0x57e880
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x57ea72
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x57e7e0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x57e7e0
cmp eax, 0xffffff
jne 0x57eee8
cmp dword [esp + 0x134], 0
je 0x57ecf0
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x57eb0d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x57ebf8
cmp edi, dword [esp + 0x6c]
jge 0x57ebf8
cmp ecx, dword [esp + 0x40]
jge 0x57ebf8
test esi, esi
jle 0x57ebf8
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x57ebd9
cmp eax, dword [esp + 0xbc]
jae 0x57ebd9
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
add eax, ebp
movzx eax, byte [eax]
cmp eax, dword [esp + 0x58]
je 0x57ebd5
mov edx, dword [esp + 0x54]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x57ebf8
cmp ecx, dword [esp + 0x40]
jl 0x57eb80
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x57ec9e
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x57eae0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x57eae0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x57ed1d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x57edf1
cmp edi, dword [esp + 0x6c]
jge 0x57edf1
cmp ecx, dword [esp + 0x40]
jge 0x57edf1
test esi, esi
jle 0x57edf1
cmp ebx, dword [esp + 0x100]
jae 0x57edd2
cmp eax, dword [esp + 0xbc]
jae 0x57edd2
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
add ebp, dword [esp + 0x90]
movzx edx, byte [eax + ebp]
mov eax, dword [esp + 0x54]
mov edx, dword [eax + edx*4]
mov eax, dword [esp + 0x10]
mov dword [eax], edx
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x57edf1
cmp ecx, dword [esp + 0x40]
jl 0x57ed80
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x57ee97
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x57ecf0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x57ecf0
cmp dword [esp + 0x134], 0
je 0x57f170
jmp 0x57ef00
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x57ef2d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x57f073
cmp edi, dword [esp + 0x6c]
jge 0x57f073
cmp ecx, dword [esp + 0x40]
jge 0x57f073
test esi, esi
jle 0x57f073
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x57f050
cmp eax, dword [esp + 0xbc]
jae 0x57f050
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x60]
add eax, dword [esp + 0x90]
sar ebp, 0x12
add ebp, eax
movzx eax, byte [ebp]
cmp eax, dword [esp + 0x58]
je 0x57f04c
mov edx, dword [esp + 0x54]
movzx eax, byte [edx + eax*4]
mov edx, dword [esp + 0xa0]
mov al, byte [edx + eax*4]
mov edx, dword [esp + 0x10]
mov byte [edx], al
movzx eax, byte [ebp]
mov edx, dword [esp + 0x54]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [esp + 0xa4]
movzx edx, byte [edx + eax*4]
mov eax, dword [esp + 0x10]
mov byte [eax + 1], dl
movzx edx, byte [ebp]
mov ebp, dword [esp + 0x54]
movzx edx, byte [ebp + edx*4 + 2]
mov ebp, dword [esp + 0xa8]
movzx edx, byte [ebp + edx*4]
mov byte [eax + 2], dl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x57f073
cmp ecx, dword [esp + 0x40]
jl 0x57efa0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x57f119
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x57ef00
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x57ef00
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x57f19d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x57f2d2
cmp edi, dword [esp + 0x6c]
jge 0x57f2d2
cmp ecx, dword [esp + 0x40]
jge 0x57f2d2
test esi, esi
jle 0x57f2d2
mov edx, dword [esp + 0x10]
cmp ebp, dword [esp + 0x100]
jae 0x57f2ad
cmp eax, dword [esp + 0xbc]
jae 0x57f2ad
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
imul ebx, dword [esp + 0x98]
add ebx, dword [esp + 0x90]
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
movzx edx, byte [eax + ebx]
add eax, ebx
mov ebx, dword [esp + 0x54]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [esp + 0xa0]
mov dl, byte [ebx + edx*4]
mov ebx, dword [esp + 0x10]
mov byte [ebx], dl
movzx edx, byte [eax]
mov ebx, dword [esp + 0x54]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [esp + 0xa4]
mov bl, byte [ebx + edx*4]
mov edx, dword [esp + 0x10]
mov byte [edx + 1], bl
movzx eax, byte [eax]
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4 + 2]
mov ebx, dword [esp + 0xa8]
mov al, byte [ebx + eax*4]
mov byte [edx + 2], al
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add edx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
je 0x57f2d2
cmp ecx, dword [esp + 0x40]
jl 0x57f210
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x57f378
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x57f170
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x57f170
test eax, eax
je case.0x5bc480.5
mov eax, dword [0x8e80e4]
and eax, 0xffffff
cmp dword [esp + 0x138], 0
je 0x57ffda
cmp eax, 0xffffff
jne 0x57f9ca
cmp dword [esp + 0x134], 0
je 0x57f6f0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x57f42f
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x57f5f3
cmp edi, dword [esp + 0x6c]
jge 0x57f5f3
cmp ecx, dword [esp + 0x40]
jge 0x57f5f3
test esi, esi
jle 0x57f5f3
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x57f5cc
cmp eax, dword [esp + 0xbc]
jae 0x57f5cc
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x2c], ebx
je 0x57f5cc
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x54]
movzx ebx, byte [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
mov eax, dword [esp + 0x10]
sar ebx, 0x10
mov byte [eax], bl
movzx eax, byte [eax + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx ebx, byte [ebx + eax*4 + 1]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
mov eax, dword [esp + 0x10]
sar ebx, 0x10
mov byte [eax + 1], bl
movzx edx, byte [edx]
mov ebx, dword [esp + 0x54]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [esp + 0x2c]
movzx eax, byte [eax + 2]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, 0x10
mov byte [eax + 2], dl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x57f5f3
cmp ecx, dword [esp + 0x40]
jl 0x57f4a0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x57f699
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x57f402
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x57f402
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x57f716
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x57f8d3
cmp edi, dword [esp + 0x6c]
jge 0x57f8d3
cmp ecx, dword [esp + 0x40]
jge 0x57f8d3
test esi, esi
jle 0x57f8d3
nop
cmp edx, dword [esp + 0x100]
jae 0x57f8aa
cmp ebx, dword [esp + 0xbc]
jae 0x57f8aa
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
add edx, eax
add edx, dword [esp + 0x90]
movzx eax, byte [ebp]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx ebx, byte [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx ebx, byte [ebx + eax*4 + 1]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [edx]
mov ebx, dword [esp + 0x54]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx eax, byte [ebp + 2]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x57f8d3
cmp ecx, dword [esp + 0x40]
jl 0x57f790
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x57f979
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x57f6f0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x57f6f0
cmp dword [esp + 0x134], 0
je 0x57fce3
jmp 0x57f9e0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x57fa06
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x9c]
add ebx, dword [esp + 0x88]
add esi, 1
add eax, ebx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x57fbec
cmp edi, dword [esp + 0x6c]
jge 0x57fbec
cmp ecx, dword [esp + 0x40]
jge 0x57fbec
test esi, esi
jle 0x57fbec
cmp edx, dword [esp + 0x100]
jae 0x57fbc3
cmp eax, dword [esp + 0xbc]
jae 0x57fbc3
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x2c], ebx
je 0x57fbbf
movzx ebx, byte [ebp]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4]
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx eax, byte [ebx + eax*4 + 1]
mov ebx, dword [esp + 0xa4]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [edx]
mov ebx, dword [esp + 0x54]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx eax, byte [ebp + 2]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
shr edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x57fbec
cmp ecx, dword [esp + 0x40]
jl 0x57fa81
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x57fc92
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x57f9e0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x57f9e0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x57fd09
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x57fee3
cmp edi, dword [esp + 0x6c]
jge 0x57fee3
cmp ecx, dword [esp + 0x40]
jge 0x57fee3
test esi, esi
jle 0x57fee3
cmp edx, dword [esp + 0x100]
jae 0x57feba
cmp ebx, dword [esp + 0xbc]
jae 0x57feba
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
add edx, eax
add edx, dword [esp + 0x90]
movzx eax, byte [ebp]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx eax, byte [ebx + eax*4]
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx eax, byte [ebx + eax*4 + 1]
mov ebx, dword [esp + 0xa4]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [edx]
mov ebx, dword [esp + 0x54]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx eax, byte [ebp + 2]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
shr edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x57fee3
cmp ecx, dword [esp + 0x40]
jl 0x57fd82
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x57ff89
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x57fce3
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x57fce3
cmp eax, 0xffffff
jne 0x58051c
cmp dword [esp + 0x134], 0
je 0x580290
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x580020
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x580192
cmp edi, dword [esp + 0x6c]
jge 0x580192
cmp ecx, dword [esp + 0x40]
jge 0x580192
test esi, esi
jle 0x580192
nop
cmp ebp, dword [esp + 0x100]
jae 0x58016f
cmp eax, dword [esp + 0xbc]
jae 0x58016f
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
imul ebx, dword [esp + 0x98]
add ebx, dword [esp + 0x90]
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
movzx edx, byte [eax + ebx]
add eax, ebx
cmp edx, dword [esp + 0x58]
je 0x58016b
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x54]
movzx ebx, byte [ebx + edx*4]
mov edx, dword [esp + 0x4c]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
mov edx, dword [esp + 0x10]
sar ebx, 8
mov byte [edx], bl
movzx edx, byte [edx + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
movzx ebx, byte [ebx + edx*4 + 1]
mov edx, dword [esp + 0x4c]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
mov edx, dword [esp + 0x10]
sar ebx, 8
mov byte [edx + 1], bl
movzx eax, byte [eax]
movzx edx, byte [edx + 2]
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4 + 2]
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
mov edx, dword [esp + 0x10]
sar eax, 8
mov byte [edx + 2], al
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x580192
cmp ecx, dword [esp + 0x40]
jl 0x580090
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x580238
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x57fff3
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x57fff3
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x5802b6
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x580425
cmp edi, dword [esp + 0x6c]
jge 0x580425
cmp ecx, dword [esp + 0x40]
jge 0x580425
test esi, esi
jle 0x580425
nop
cmp ebx, dword [esp + 0x100]
jae 0x580400
cmp eax, dword [esp + 0xbc]
jae 0x580400
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
mov ebx, dword [esp + 0x54]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [ebp]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
movzx ebx, byte [ebx + edx*4]
mov edx, dword [esp + 0x4c]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
movzx ebx, byte [ebx + edx*4 + 1]
mov edx, dword [esp + 0x4c]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp + 1], bl
movzx eax, byte [eax]
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4 + 2]
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0x1c]
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ebp + 2], al
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x580425
cmp ecx, dword [esp + 0x40]
jl 0x580330
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5804cb
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x580290
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x580290
cmp dword [esp + 0x134], 0
je 0x5807f0
lea ebx, [ebx]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x580555
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5806f1
cmp edi, dword [esp + 0x6c]
jge 0x5806f1
cmp ecx, dword [esp + 0x40]
jge 0x5806f1
test esi, esi
jle 0x5806f1
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x5806cc
cmp eax, dword [esp + 0xbc]
jae 0x5806cc
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x60]
add eax, dword [esp + 0x90]
sar ebp, 0x12
add ebp, eax
movzx eax, byte [ebp]
cmp eax, dword [esp + 0x58]
je 0x5806c4
movzx edx, byte [ebx]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x54]
movzx eax, byte [edx + eax*4]
mov edx, dword [esp + 0xa0]
mov edx, dword [edx + eax*4]
mov eax, dword [esp + 0x4c]
sub edx, eax
imul edx, dword [0x8e80c0]
shl eax, 8
add edx, eax
shr edx, 8
mov byte [ebx], dl
movzx eax, byte [ebx + 1]
movzx edx, byte [ebp]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x54]
movzx edx, byte [eax + edx*4 + 1]
mov eax, dword [esp + 0xa4]
mov edx, dword [eax + edx*4]
mov eax, dword [esp + 0x4c]
sub edx, eax
imul edx, dword [0x8e80c0]
shl eax, 8
add edx, eax
shr edx, 8
mov byte [ebx + 1], dl
movzx edx, byte [ebp]
mov ebp, dword [esp + 0x54]
movzx edx, byte [ebp + edx*4 + 2]
movzx eax, byte [ebx + 2]
mov ebp, dword [esp + 0xa8]
mov edx, dword [ebp + edx*4]
sub edx, eax
imul edx, dword [0x8e80c0]
shl eax, 8
add edx, eax
shr edx, 8
mov byte [ebx + 2], dl
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5806f1
cmp ecx, dword [esp + 0x40]
jl 0x5805d0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x580797
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x580530
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x580530
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x580816
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5809a3
cmp edi, dword [esp + 0x6c]
jge 0x5809a3
cmp ecx, dword [esp + 0x40]
jge 0x5809a3
test esi, esi
jle 0x5809a3
nop
cmp ebx, dword [esp + 0x100]
jae 0x58097e
cmp eax, dword [esp + 0xbc]
jae 0x58097e
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
mov ebx, dword [esp + 0x54]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [ebp]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0x4c]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
shr ebx, 8
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [esp + 0xa4]
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0x4c]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
shr ebx, 8
mov byte [ebp + 1], bl
movzx eax, byte [eax]
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4 + 2]
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov eax, dword [ebx + eax*4]
mov ebx, dword [esp + 0x1c]
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
shr eax, 8
mov byte [ebp + 2], al
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5809a3
cmp ecx, dword [esp + 0x40]
jl 0x580890
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x580a49
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5807f0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5807f0
cmp dword [0x8e80c0], 0
je case.0x5bc480.5
mov eax, dword [0x8e80e4]
and eax, 0xffffff
cmp dword [esp + 0x138], 0
je 0x581610
cmp eax, 0xffffff
jne 0x58104b
cmp dword [esp + 0x134], 0
je 0x580da0
jmp 0x580ae0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x580b0d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x580ca6
cmp edi, dword [esp + 0x6c]
jge 0x580ca6
cmp ecx, dword [esp + 0x40]
jge 0x580ca6
test esi, esi
jle 0x580ca6
cmp ebp, dword [esp + 0x100]
jae 0x580c7f
cmp eax, dword [esp + 0xbc]
jae 0x580c7f
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
je 0x580c7b
movzx edx, byte [ebx]
movzx ebp, byte [edx + 0xa77168]
mov edx, dword [esp + 0x54]
movzx ebx, byte [edx + eax*4]
mov edx, dword [0x8e80c0]
imul ebx, ebp
imul ebx, edx
sar ebx, 0x10
mov byte [esp + 0x50], bl
mov ebx, dword [esp + 0x54]
movzx ebx, byte [ebx + eax*4 + 1]
imul ebx, ebp
imul ebx, edx
sar ebx, 0x10
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4 + 2]
imul eax, ebp
imul eax, edx
mov edx, dword [esp + 0x10]
sar eax, 0x10
mov byte [esp + 0x52], al
mov eax, dword [edx]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
and eax, 0xfefeff
mov edx, ebx
or ebx, dword [esp + 0x5c]
and edx, 0xfefeff
add edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and ebx, 0x10100
or eax, ebx
or eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x580ca6
cmp ecx, dword [esp + 0x40]
jl 0x580b80
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x580d4c
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x580ae0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x580ae0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x580dcd
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x580f54
cmp edi, dword [esp + 0x6c]
jge 0x580f54
cmp ecx, dword [esp + 0x40]
jge 0x580f54
test esi, esi
jle 0x580f54
cmp ebp, dword [esp + 0x100]
jae 0x580f2d
cmp eax, dword [esp + 0xbc]
jae 0x580f2d
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
add ebx, dword [esp + 0xac]
movzx edx, byte [edx]
mov eax, dword [esp + 0x54]
lea eax, [eax + edx*4]
movzx edx, byte [ebx]
movzx ebx, byte [eax]
movzx ebp, byte [edx + 0xa77168]
mov edx, dword [0x8e80c0]
imul ebx, ebp
imul ebx, edx
sar ebx, 0x10
mov byte [esp + 0x50], bl
movzx ebx, byte [eax + 1]
movzx eax, byte [eax + 2]
imul ebx, ebp
imul eax, ebp
imul ebx, edx
imul eax, edx
mov edx, dword [esp + 0x10]
sar eax, 0x10
mov byte [esp + 0x52], al
mov eax, dword [edx]
sar ebx, 0x10
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
and eax, 0xfefeff
mov edx, ebx
or ebx, dword [esp + 0x5c]
and edx, 0xfefeff
add edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and ebx, 0x10100
or eax, ebx
or eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x580f54
cmp ecx, dword [esp + 0x40]
jl 0x580e40
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x580ffa
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x580da0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x580da0
cmp dword [esp + 0x134], 0
je 0x581343
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58108d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x58124c
cmp edi, dword [esp + 0x6c]
jge 0x58124c
cmp ecx, dword [esp + 0x40]
jge 0x58124c
test esi, esi
jle 0x58124c
cmp ebp, dword [esp + 0x100]
jae 0x581221
cmp eax, dword [esp + 0xbc]
jae 0x581221
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
je 0x581221
movzx edx, byte [ebx]
movzx ebp, byte [edx + 0xa77168]
mov edx, dword [esp + 0x54]
movzx edx, byte [edx + eax*4]
mov ebx, dword [esp + 0xa0]
mov edx, dword [ebx + edx*4]
imul edx, ebp
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shr edx, 0x10
mov byte [esp + 0x50], dl
mov edx, dword [esp + 0x54]
movzx edx, byte [edx + eax*4 + 1]
mov ebx, dword [ebx + edx*4]
mov edx, dword [0x8e80c0]
imul ebx, ebp
imul ebx, edx
shr ebx, 0x10
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4 + 2]
mov ebx, dword [esp + 0xa8]
mov eax, dword [ebx + eax*4]
imul eax, ebp
imul eax, edx
mov edx, dword [esp + 0x10]
shr eax, 0x10
mov byte [esp + 0x52], al
mov eax, dword [edx]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
and eax, 0xfefeff
mov edx, ebx
or ebx, dword [esp + 0x5c]
and edx, 0xfefeff
add edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and ebx, 0x10100
or eax, ebx
or eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58124c
cmp ecx, dword [esp + 0x40]
jl 0x581100
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5812f2
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x581060
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x581060
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x581370
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x581519
cmp edi, dword [esp + 0x6c]
jge 0x581519
cmp ecx, dword [esp + 0x40]
jge 0x581519
test esi, esi
jle 0x581519
cmp ebp, dword [esp + 0x100]
jae 0x5814f2
cmp eax, dword [esp + 0xbc]
jae 0x5814f2
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx edx, byte [edx]
add ebx, dword [esp + 0xac]
mov eax, dword [esp + 0x54]
lea eax, [eax + edx*4]
movzx edx, byte [ebx]
movzx ebp, byte [edx + 0xa77168]
movzx edx, byte [eax]
mov ebx, dword [esp + 0xa0]
mov edx, dword [ebx + edx*4]
imul edx, ebp
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shr edx, 0x10
mov byte [esp + 0x50], dl
movzx edx, byte [eax + 1]
mov ebx, dword [ebx + edx*4]
mov edx, dword [0x8e80c0]
imul ebx, ebp
movzx eax, byte [eax + 2]
imul ebx, edx
shr ebx, 0x10
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0xa8]
mov eax, dword [ebx + eax*4]
imul eax, ebp
imul eax, edx
mov edx, dword [esp + 0x10]
shr eax, 0x10
mov byte [esp + 0x52], al
mov eax, dword [edx]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
and eax, 0xfefeff
mov edx, ebx
or ebx, dword [esp + 0x5c]
and edx, 0xfefeff
add edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and ebx, 0x10100
or eax, ebx
or eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x581519
cmp ecx, dword [esp + 0x40]
jl 0x5813e3
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5815bf
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x581343
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x581343
cmp eax, 0xffffff
jne 0x581b67
cmp dword [esp + 0x134], 0
je 0x5818d0
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58165d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x5817d3
cmp edi, dword [esp + 0x6c]
jge 0x5817d3
cmp ecx, dword [esp + 0x40]
jge 0x5817d3
test esi, esi
jle 0x5817d3
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x5817ac
cmp eax, dword [esp + 0xbc]
jae 0x5817ac
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
movzx ebp, byte [eax + edx]
add eax, edx
cmp ebp, dword [esp + 0x58]
je 0x5817a4
mov eax, dword [esp + 0x54]
movzx edx, byte [eax + ebp*4]
movzx edx, byte [ebx + edx*4]
mov byte [esp + 0x50], dl
movzx edx, byte [eax + ebp*4 + 1]
movzx eax, byte [eax + ebp*4 + 2]
movzx edx, byte [ebx + edx*4]
mov byte [esp + 0x51], dl
movzx edx, byte [ebx + eax*4]
mov eax, dword [esp + 0x10]
mov ebp, dword [eax]
mov byte [esp + 0x52], dl
mov edx, dword [esp + 0x50]
mov eax, edx
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xfefeff
and ebp, 0xfefeff
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
and edx, 0x10100
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5817d3
cmp ecx, dword [esp + 0x40]
jl 0x5816e0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58187c
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x581630
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x581630
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5818fd
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x581a6d
cmp edi, dword [esp + 0x6c]
jge 0x581a6d
cmp ecx, dword [esp + 0x40]
jge 0x581a6d
test esi, esi
jle 0x581a6d
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x581a46
cmp eax, dword [esp + 0xbc]
jae 0x581a46
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [eax]
mov eax, dword [esp + 0x54]
lea ebp, [eax + edx*4]
movzx edx, byte [ebp]
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 1]
mov byte [esp + 0x50], al
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 2]
mov byte [esp + 0x51], al
movzx eax, byte [ebx + edx*4]
mov edx, dword [esp + 0x10]
mov ebp, dword [edx]
mov byte [esp + 0x52], al
mov edx, dword [esp + 0x50]
mov dword [esp + 0x5c], ebp
mov eax, edx
or edx, dword [esp + 0x5c]
and eax, 0xfefeff
and ebp, 0xfefeff
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and edx, 0x10100
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x581a6d
cmp ecx, dword [esp + 0x40]
jl 0x581980
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x581b16
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5818d0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5818d0
cmp dword [esp + 0x134], 0
je 0x581e40
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x581ba2
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x581d3f
cmp edi, dword [esp + 0x6c]
jge 0x581d3f
cmp ecx, dword [esp + 0x40]
jge 0x581d3f
test esi, esi
jle 0x581d3f
cmp ebp, dword [esp + 0x100]
jae 0x581d18
cmp eax, dword [esp + 0xbc]
jae 0x581d18
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
movzx ebp, byte [eax + edx]
add eax, edx
cmp ebp, dword [esp + 0x58]
je 0x581d10
mov edx, dword [esp + 0x54]
movzx eax, byte [edx + ebp*4]
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + eax*4]
movzx edx, byte [ebx + eax*4]
mov eax, dword [esp + 0x54]
mov byte [esp + 0x50], dl
movzx edx, byte [eax + ebp*4 + 1]
mov eax, dword [esp + 0xa4]
mov edx, dword [eax + edx*4]
mov al, byte [ebx + edx*4]
mov edx, dword [esp + 0x54]
mov byte [esp + 0x51], al
movzx eax, byte [edx + ebp*4 + 2]
mov edx, dword [esp + 0xa8]
mov eax, dword [edx + eax*4]
movzx edx, byte [ebx + eax*4]
mov eax, dword [esp + 0x10]
mov ebp, dword [eax]
mov byte [esp + 0x52], dl
mov edx, dword [esp + 0x50]
mov eax, edx
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xfefeff
and ebp, 0xfefeff
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
and edx, 0x10100
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x581d3f
cmp ecx, dword [esp + 0x40]
jl 0x581c23
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x581de8
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x581b75
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x581b75
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x581e6d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x581ffb
cmp edi, dword [esp + 0x6c]
jge 0x581ffb
cmp ecx, dword [esp + 0x40]
jge 0x581ffb
test esi, esi
jle 0x581ffb
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x581fd4
cmp eax, dword [esp + 0xbc]
jae 0x581fd4
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [eax]
mov eax, dword [esp + 0x54]
lea ebp, [eax + edx*4]
movzx edx, byte [ebp]
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 1]
mov byte [esp + 0x50], al
mov eax, dword [esp + 0xa4]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 2]
mov byte [esp + 0x51], al
mov eax, dword [esp + 0xa8]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
mov edx, dword [esp + 0x10]
mov ebp, dword [edx]
mov byte [esp + 0x52], al
mov edx, dword [esp + 0x50]
mov dword [esp + 0x5c], ebp
mov eax, edx
or edx, dword [esp + 0x5c]
and eax, 0xfefeff
and ebp, 0xfefeff
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and edx, 0x10100
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x581ffb
cmp ecx, dword [esp + 0x40]
jl 0x581ef0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5820a4
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x581e40
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x581e40
mov eax, dword [0x8e80e4]
and eax, 0xffffff
cmp dword [esp + 0x138], 0
je 0x582c20
cmp eax, 0xffffff
jne 0x58267e
cmp dword [esp + 0x134], 0
je 0x5823e3
jmp 0x582130
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58215d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5822ec
cmp edi, dword [esp + 0x6c]
jge 0x5822ec
cmp ecx, dword [esp + 0x40]
jge 0x5822ec
test esi, esi
jle 0x5822ec
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x5822c5
cmp eax, dword [esp + 0xbc]
jae 0x5822c5
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
je 0x5822c5
movzx edx, byte [ebx]
movzx edx, byte [edx + 0xa77168]
mov ebx, dword [esp + 0x54]
movzx ebx, byte [ebx + eax*4]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x54]
sar ebx, 0x10
mov byte [esp + 0x50], bl
movzx ebx, byte [edx + eax*4 + 1]
imul ebx, dword [esp + 0x2c]
mov edx, dword [0x8e80c0]
imul ebx, edx
sar ebx, 0x10
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4 + 2]
imul eax, dword [esp + 0x2c]
imul eax, edx
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
sar eax, 0x10
mov byte [esp + 0x52], al
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebx, eax
shr ebx, 8
sub eax, ebx
and eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x5822ec
cmp ecx, dword [esp + 0x40]
jl 0x5821d0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x582392
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x582130
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x582130
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x582410
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x582587
cmp edi, dword [esp + 0x6c]
jge 0x582587
cmp ecx, dword [esp + 0x40]
jge 0x582587
test esi, esi
jle 0x582587
cmp ebx, dword [esp + 0x100]
jae 0x58255c
cmp eax, dword [esp + 0xbc]
jae 0x58255c
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebx, 0x12
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
add ebx, dword [esp + 0xac]
movzx edx, byte [edx]
mov eax, dword [esp + 0x54]
lea eax, [eax + edx*4]
movzx edx, byte [ebx]
movzx ebx, byte [eax]
movzx ebp, byte [edx + 0xa77168]
mov edx, dword [0x8e80c0]
imul ebx, ebp
imul ebx, edx
sar ebx, 0x10
mov byte [esp + 0x50], bl
movzx ebx, byte [eax + 1]
movzx eax, byte [eax + 2]
imul ebx, ebp
imul eax, ebp
imul ebx, edx
imul eax, edx
sar eax, 0x10
sar ebx, 0x10
mov byte [esp + 0x52], al
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0x10]
mov edx, dword [ebx]
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
and eax, edx
mov dword [ebx], eax
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x582587
cmp ecx, dword [esp + 0x40]
jl 0x582483
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58262d
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5823e3
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5823e3
cmp dword [esp + 0x134], 0
je 0x582963
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5826bd
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x58286c
cmp edi, dword [esp + 0x6c]
jge 0x58286c
cmp ecx, dword [esp + 0x40]
jge 0x58286c
test esi, esi
jle 0x58286c
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x582845
cmp eax, dword [esp + 0xbc]
jae 0x582845
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
je 0x582845
movzx edx, byte [ebx]
movzx edx, byte [edx + 0xa77168]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x54]
movzx edx, byte [edx + eax*4]
mov edx, dword [ebx + edx*4]
imul edx, dword [esp + 0x2c]
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shr edx, 0x10
mov byte [esp + 0x50], dl
mov edx, dword [esp + 0x54]
movzx edx, byte [edx + eax*4 + 1]
mov ebx, dword [ebx + edx*4]
imul ebx, dword [esp + 0x2c]
mov edx, dword [0x8e80c0]
imul ebx, edx
shr ebx, 0x10
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4 + 2]
mov ebx, dword [esp + 0xa8]
mov eax, dword [ebx + eax*4]
imul eax, dword [esp + 0x2c]
imul eax, edx
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
shr eax, 0x10
mov byte [esp + 0x52], al
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebx, eax
shr ebx, 8
sub eax, ebx
and eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x58286c
cmp ecx, dword [esp + 0x40]
jl 0x582730
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x582912
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x582690
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x582690
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x582990
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x582b29
cmp edi, dword [esp + 0x6c]
jge 0x582b29
cmp ecx, dword [esp + 0x40]
jge 0x582b29
test esi, esi
jle 0x582b29
cmp ebx, dword [esp + 0x100]
jae 0x582afe
cmp eax, dword [esp + 0xbc]
jae 0x582afe
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx edx, byte [edx]
add ebx, dword [esp + 0xac]
mov eax, dword [esp + 0x54]
lea eax, [eax + edx*4]
movzx edx, byte [ebx]
movzx ebp, byte [edx + 0xa77168]
movzx edx, byte [eax]
mov ebx, dword [esp + 0xa0]
mov edx, dword [ebx + edx*4]
imul edx, ebp
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shr edx, 0x10
mov byte [esp + 0x50], dl
movzx edx, byte [eax + 1]
mov ebx, dword [ebx + edx*4]
mov edx, dword [0x8e80c0]
imul ebx, ebp
movzx eax, byte [eax + 2]
imul ebx, edx
shr ebx, 0x10
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0xa8]
mov eax, dword [ebx + eax*4]
mov ebx, dword [esp + 0x10]
imul eax, ebp
imul eax, edx
mov edx, dword [ebx]
shr eax, 0x10
mov byte [esp + 0x52], al
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
and eax, edx
mov dword [ebx], eax
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x582b29
cmp ecx, dword [esp + 0x40]
jl 0x582a03
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x582bcf
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x582963
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x582963
cmp eax, 0xffffff
jne 0x583151
cmp dword [esp + 0x134], 0
je 0x582ed0
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x582c6d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x582dcd
cmp edi, dword [esp + 0x6c]
jge 0x582dcd
cmp ecx, dword [esp + 0x40]
jge 0x582dcd
test esi, esi
jle 0x582dcd
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x582da6
cmp eax, dword [esp + 0xbc]
jae 0x582da6
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
movzx ebp, byte [eax + edx]
add eax, edx
cmp ebp, dword [esp + 0x58]
je 0x582d9e
mov eax, dword [esp + 0x54]
movzx edx, byte [eax + ebp*4]
movzx edx, byte [ebx + edx*4]
mov byte [esp + 0x50], dl
movzx edx, byte [eax + ebp*4 + 1]
movzx eax, byte [eax + ebp*4 + 2]
movzx edx, byte [ebx + edx*4]
mov byte [esp + 0x51], dl
movzx edx, byte [ebx + eax*4]
mov byte [esp + 0x52], dl
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x582dcd
cmp ecx, dword [esp + 0x40]
jl 0x582cf0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x582e76
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x582c40
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x582c40
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x582efd
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x583057
cmp edi, dword [esp + 0x6c]
jge 0x583057
cmp ecx, dword [esp + 0x40]
jge 0x583057
test esi, esi
jle 0x583057
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x583030
cmp eax, dword [esp + 0xbc]
jae 0x583030
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [eax]
mov eax, dword [esp + 0x54]
lea ebp, [eax + edx*4]
movzx edx, byte [ebp]
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 1]
mov byte [esp + 0x50], al
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 2]
mov byte [esp + 0x51], al
movzx eax, byte [ebx + edx*4]
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov byte [esp + 0x52], al
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x583057
cmp ecx, dword [esp + 0x40]
jl 0x582f80
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x583100
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x582ed0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x582ed0
cmp dword [esp + 0x134], 0
je 0x583410
nop
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58318d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x583316
cmp edi, dword [esp + 0x6c]
jge 0x583316
cmp ecx, dword [esp + 0x40]
jge 0x583316
test esi, esi
jle 0x583316
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x5832ef
cmp eax, dword [esp + 0xbc]
jae 0x5832ef
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
movzx ebp, byte [eax + edx]
add eax, edx
cmp ebp, dword [esp + 0x58]
je 0x5832e7
mov edx, dword [esp + 0x54]
movzx eax, byte [edx + ebp*4]
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + eax*4]
movzx edx, byte [ebx + eax*4]
mov eax, dword [esp + 0x54]
mov byte [esp + 0x50], dl
movzx edx, byte [eax + ebp*4 + 1]
mov eax, dword [esp + 0xa4]
mov edx, dword [eax + edx*4]
mov al, byte [ebx + edx*4]
mov edx, dword [esp + 0x54]
mov byte [esp + 0x51], al
movzx eax, byte [edx + ebp*4 + 2]
mov edx, dword [esp + 0xa8]
mov eax, dword [edx + eax*4]
movzx edx, byte [ebx + eax*4]
mov byte [esp + 0x52], dl
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x583316
cmp ecx, dword [esp + 0x40]
jl 0x583210
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5833bf
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x583160
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x583160
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58343d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5835b5
cmp edi, dword [esp + 0x6c]
jge 0x5835b5
cmp ecx, dword [esp + 0x40]
jge 0x5835b5
test esi, esi
jle 0x5835b5
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x58358e
cmp eax, dword [esp + 0xbc]
jae 0x58358e
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [eax]
mov eax, dword [esp + 0x54]
lea ebp, [eax + edx*4]
movzx edx, byte [ebp]
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 1]
mov byte [esp + 0x50], al
mov eax, dword [esp + 0xa4]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 2]
mov byte [esp + 0x51], al
mov eax, dword [esp + 0xa8]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov byte [esp + 0x52], al
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5835b5
cmp ecx, dword [esp + 0x40]
jl 0x5834c0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58365e
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x583410
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x583410
mov eax, dword [0x8e80e4]
and eax, 0xffffff
cmp dword [esp + 0x138], 0
je 0x5841f4
cmp eax, 0xffffff
jne 0x583c45
cmp dword [esp + 0x134], 0
je 0x583995
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58370d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x58389e
cmp edi, dword [esp + 0x6c]
jge 0x58389e
cmp ecx, dword [esp + 0x40]
jge 0x58389e
test esi, esi
jle 0x58389e
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x583877
cmp eax, dword [esp + 0xbc]
jae 0x583877
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x2c], ebx
je 0x583877
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
imul eax, ebx
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx]
imul eax, ebx
mov ebx, dword [esp + 0x10]
sar eax, 0x10
mov byte [ebx], al
movzx eax, byte [edx]
mov ebx, dword [esp + 0x54]
movzx ebx, byte [ebx + eax*4 + 1]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 1]
imul ebx, eax
mov eax, dword [esp + 0x10]
sar ebx, 0x10
mov byte [eax + 1], bl
movzx edx, byte [edx]
mov ebx, dword [esp + 0x54]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
imul edx, ebx
movzx ebx, byte [eax + 2]
imul edx, ebx
sar edx, 0x10
mov byte [eax + 2], dl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x58389e
cmp ecx, dword [esp + 0x40]
jl 0x583780
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x583944
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5836e0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5836e0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x5839bb
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x583b4e
cmp edi, dword [esp + 0x6c]
jge 0x583b4e
cmp ecx, dword [esp + 0x40]
jge 0x583b4e
test esi, esi
jle 0x583b4e
jmp 0x583a40
cmp edx, dword [esp + 0x100]
jae 0x583b25
cmp ebx, dword [esp + 0xbc]
jae 0x583b25
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebx, 0x12
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
add edx, eax
add edx, dword [esp + 0x90]
mov dword [esp + 0x2c], ebx
movzx eax, byte [edx]
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
imul eax, ebx
movzx ebx, byte [ebp]
imul eax, ebx
mov ebx, dword [esp + 0x54]
sar eax, 0x10
mov byte [ebp], al
movzx eax, byte [edx]
movzx eax, byte [ebx + eax*4 + 1]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
imul eax, ebx
movzx ebx, byte [ebp + 1]
imul eax, ebx
sar eax, 0x10
mov byte [ebp + 1], al
movzx edx, byte [edx]
mov eax, dword [esp + 0x54]
movzx edx, byte [eax + edx*4 + 2]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul edx, eax
movzx eax, byte [ebp + 2]
imul edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x583b4e
cmp ecx, dword [esp + 0x40]
jl 0x583a40
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x583bf4
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x583995
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x583995
cmp dword [esp + 0x134], 0
je 0x583f21
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x583c80
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x583e2a
cmp edi, dword [esp + 0x6c]
jge 0x583e2a
cmp ecx, dword [esp + 0x40]
jge 0x583e2a
test esi, esi
jle 0x583e2a
cmp ebp, dword [esp + 0x100]
jae 0x583dff
cmp eax, dword [esp + 0xbc]
jae 0x583dff
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x2c], ebx
je 0x583dff
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov ebp, dword [esp + 0x54]
movzx eax, byte [ebp + eax*4]
mov ebp, dword [esp + 0xa0]
imul ebx, dword [ebp + eax*4]
mov ebp, dword [esp + 0x10]
movzx eax, byte [ebp]
imul ebx, eax
shr ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [edx]
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4 + 1]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov ebp, dword [esp + 0xa4]
imul ebx, dword [ebp + eax*4]
mov ebp, dword [esp + 0x10]
movzx eax, byte [ebp + 1]
imul ebx, eax
mov eax, dword [esp + 0x54]
shr ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [edx]
movzx edx, byte [eax + edx*4 + 2]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
mov ebx, dword [esp + 0xa8]
imul eax, dword [ebx + edx*4]
movzx edx, byte [ebp + 2]
imul eax, edx
shr eax, 0x10
mov byte [ebp + 2], al
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x583e2a
cmp ecx, dword [esp + 0x40]
jl 0x583cf3
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x583ed0
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x583c53
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x583c53
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x583f4f
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x9c]
add ebx, dword [esp + 0x88]
add esi, 1
add eax, ebx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5840fd
cmp edi, dword [esp + 0x6c]
jge 0x5840fd
cmp ecx, dword [esp + 0x40]
jge 0x5840fd
test esi, esi
jle 0x5840fd
lea ebx, [ebx]
cmp edx, dword [esp + 0x100]
jae 0x5840d4
cmp eax, dword [esp + 0xbc]
jae 0x5840d4
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebx, 0x12
mov ebp, dword [esp + 0x54]
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
add edx, eax
add edx, dword [esp + 0x90]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
movzx eax, byte [edx]
movzx eax, byte [ebp + eax*4]
mov ebp, dword [esp + 0xa0]
imul ebx, dword [ebp + eax*4]
mov ebp, dword [esp + 0x10]
movzx eax, byte [ebp]
imul ebx, eax
shr ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [edx]
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4 + 1]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov ebp, dword [esp + 0xa4]
imul ebx, dword [ebp + eax*4]
mov ebp, dword [esp + 0x10]
movzx eax, byte [ebp + 1]
imul ebx, eax
mov eax, dword [esp + 0x54]
shr ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [edx]
movzx edx, byte [eax + edx*4 + 2]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
mov ebx, dword [esp + 0xa8]
imul eax, dword [ebx + edx*4]
movzx edx, byte [ebp + 2]
imul eax, edx
mov edx, dword [esp + 0x1c]
shr eax, 0x10
mov byte [ebp + 2], al
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5840fd
cmp ecx, dword [esp + 0x40]
jl 0x583fd0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5841a3
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x583f21
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x583f21
cmp eax, 0xffffff
jne 0x5846ff
cmp dword [esp + 0x134], 0
je 0x584490
lea ecx, [ecx]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58423d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x58438f
cmp edi, dword [esp + 0x6c]
jge 0x58438f
cmp ecx, dword [esp + 0x40]
jge 0x58438f
test esi, esi
jle 0x58438f
mov edx, dword [esp + 0x10]
cmp ebx, dword [esp + 0x100]
jae 0x58436a
cmp eax, dword [esp + 0xbc]
jae 0x58436a
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x60]
add eax, dword [esp + 0x90]
sar ebp, 0x12
add ebp, eax
movzx eax, byte [ebp]
cmp eax, dword [esp + 0x58]
je 0x584362
mov edx, dword [esp + 0x54]
movzx eax, byte [edx + eax*4]
mov edx, dword [esp + 0x10]
movzx edx, byte [edx]
imul eax, edx
mov edx, dword [esp + 0x10]
sar eax, 8
mov byte [edx], al
movzx eax, byte [ebp]
mov edx, dword [esp + 0x54]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 1]
imul eax, edx
mov edx, dword [esp + 0x10]
sar eax, 8
mov byte [edx + 1], al
movzx eax, byte [ebp]
mov ebp, dword [esp + 0x54]
movzx eax, byte [ebp + eax*4 + 2]
movzx ebp, byte [edx + 2]
imul eax, ebp
sar eax, 8
mov byte [edx + 2], al
jmp 0x584366
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add edx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
je 0x58438f
cmp ecx, dword [esp + 0x40]
jl 0x5842b0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x584435
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x584210
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x584210
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5844bd
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x584608
cmp edi, dword [esp + 0x6c]
jge 0x584608
cmp ecx, dword [esp + 0x40]
jge 0x584608
test esi, esi
jle 0x584608
mov ebx, dword [esp + 0x10]
jmp 0x584540
cmp ebp, dword [esp + 0x100]
jae 0x5845e3
cmp eax, dword [esp + 0xbc]
jae 0x5845e3
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x58]
add eax, dword [esp + 0x90]
sar ebp, 0x12
movzx edx, byte [ebp + eax]
add ebp, eax
mov eax, dword [esp + 0x54]
movzx edx, byte [eax + edx*4]
movzx eax, byte [ebx]
imul edx, eax
mov eax, dword [esp + 0x54]
sar edx, 8
mov byte [ebx], dl
movzx edx, byte [ebp]
movzx edx, byte [eax + edx*4 + 1]
movzx eax, byte [ebx + 1]
imul edx, eax
mov eax, dword [esp + 0x54]
sar edx, 8
mov byte [ebx + 1], dl
movzx edx, byte [ebp]
movzx edx, byte [eax + edx*4 + 2]
movzx eax, byte [ebx + 2]
mov ebp, dword [esp + 0x1c]
imul edx, eax
mov eax, dword [esp + 0x14]
sar edx, 8
mov byte [ebx + 2], dl
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x584608
cmp ecx, dword [esp + 0x40]
jl 0x584540
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5846ae
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x584490
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x584490
cmp dword [esp + 0x134], 0
je 0x5849a0
lea ecx, [ecx]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58473d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5848a4
cmp edi, dword [esp + 0x6c]
jge 0x5848a4
cmp ecx, dword [esp + 0x40]
jge 0x5848a4
test esi, esi
jle 0x5848a4
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x584881
cmp eax, dword [esp + 0xbc]
jae 0x584881
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
add eax, ebp
mov dword [esp + 0x5c], eax
movzx eax, byte [eax]
cmp eax, dword [esp + 0x58]
je 0x58487d
mov edx, dword [esp + 0x54]
movzx eax, byte [edx + eax*4]
mov edx, dword [esp + 0x10]
movzx edx, byte [edx]
mov ebp, dword [esp + 0xa0]
imul edx, dword [ebp + eax*4]
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x5c]
shr edx, 8
mov byte [ebp], dl
movzx edx, byte [eax]
mov eax, dword [esp + 0x54]
movzx edx, byte [eax + edx*4 + 1]
movzx eax, byte [ebp + 1]
mov ebp, dword [esp + 0xa4]
imul eax, dword [ebp + edx*4]
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x5c]
shr eax, 8
mov byte [ebp + 1], al
movzx eax, byte [edx]
mov edx, dword [esp + 0x54]
movzx eax, byte [edx + eax*4 + 2]
movzx edx, byte [ebp + 2]
mov ebp, dword [esp + 0xa8]
imul edx, dword [ebp + eax*4]
mov eax, dword [esp + 0x10]
shr edx, 8
mov byte [eax + 2], dl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x5848a4
cmp ecx, dword [esp + 0x40]
jl 0x5847b0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58494a
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x584710
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x584710
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5849cd
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x584b3a
cmp edi, dword [esp + 0x6c]
jge 0x584b3a
cmp ecx, dword [esp + 0x40]
jge 0x584b3a
test esi, esi
jle 0x584b3a
mov ebp, dword [esp + 0x10]
jmp 0x584a50
cmp ebx, dword [esp + 0x100]
jae 0x584b11
cmp eax, dword [esp + 0xbc]
jae 0x584b11
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
mov ebx, dword [esp + 0x54]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [eax]
movzx edx, byte [ebx + edx*4]
movzx ebx, byte [ebp]
mov ebp, dword [esp + 0xa0]
imul ebx, dword [ebp + edx*4]
mov ebp, dword [esp + 0x10]
shr ebx, 8
mov byte [ebp], bl
movzx edx, byte [eax]
mov ebx, dword [esp + 0x54]
movzx edx, byte [ebx + edx*4 + 1]
movzx ebx, byte [ebp + 1]
mov ebp, dword [esp + 0xa4]
imul ebx, dword [ebp + edx*4]
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x54]
shr ebx, 8
mov byte [ebp + 1], bl
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
imul edx, dword [ebx + eax*4]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
shr edx, 8
mov byte [ebp + 2], dl
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x584b3a
cmp ecx, dword [esp + 0x40]
jl 0x584a50
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x584be0
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5849a0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5849a0
mov eax, dword [0x8e80e4]
and eax, 0xffffff
cmp dword [esp + 0x138], 0
je 0x5858b8
cmp eax, 0xffffff
jne 0x585269
cmp dword [esp + 0x134], 0
je 0x584f70
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x584c8f
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x584e72
cmp edi, dword [esp + 0x6c]
jge 0x584e72
cmp ecx, dword [esp + 0x40]
jge 0x584e72
test esi, esi
jle 0x584e72
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x584e4b
cmp eax, dword [esp + 0xbc]
jae 0x584e4b
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x2c], ebx
je 0x584e4b
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x54]
movzx ebx, byte [ebx + eax*4]
mov eax, dword [esp + 0x4c]
imul ebx, eax
sar ebx, 8
movzx ebx, bl
sub ebx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
mov eax, dword [esp + 0x10]
sar ebx, 0x10
mov byte [eax], bl
movzx eax, byte [eax + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx ebx, byte [ebx + eax*4 + 1]
mov eax, dword [esp + 0x4c]
imul ebx, eax
sar ebx, 8
movzx ebx, bl
sub ebx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
mov eax, dword [esp + 0x10]
sar ebx, 0x10
mov byte [eax + 1], bl
movzx edx, byte [edx]
movzx eax, byte [eax + 2]
mov ebx, dword [esp + 0x54]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [esp + 0x2c]
imul edx, eax
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
sar edx, 8
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, 0x10
mov byte [eax + 2], dl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x584e72
cmp ecx, dword [esp + 0x40]
jl 0x584d00
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x584f18
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x584c62
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x584c62
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x584f96
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x585172
cmp edi, dword [esp + 0x6c]
jge 0x585172
cmp ecx, dword [esp + 0x40]
jge 0x585172
test esi, esi
jle 0x585172
nop
cmp edx, dword [esp + 0x100]
jae 0x585149
cmp ebx, dword [esp + 0xbc]
jae 0x585149
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
add edx, eax
add edx, dword [esp + 0x90]
movzx eax, byte [ebp]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx ebx, byte [ebx + eax*4]
mov eax, dword [esp + 0x4c]
imul ebx, eax
sar ebx, 8
movzx ebx, bl
sub ebx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx ebx, byte [ebx + eax*4 + 1]
mov eax, dword [esp + 0x4c]
imul ebx, eax
sar ebx, 8
movzx ebx, bl
sub ebx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [edx]
movzx eax, byte [ebp + 2]
mov ebx, dword [esp + 0x54]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [esp + 0x2c]
imul edx, eax
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
sar edx, 8
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x585172
cmp ecx, dword [esp + 0x40]
jl 0x585010
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x585218
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x584f70
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x584f70
cmp dword [esp + 0x134], 0
je 0x5855a2
jmp 0x585280
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x5852a6
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x9c]
add ebx, dword [esp + 0x88]
add esi, 1
add eax, ebx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5854ab
cmp edi, dword [esp + 0x6c]
jge 0x5854ab
cmp ecx, dword [esp + 0x40]
jge 0x5854ab
test esi, esi
jle 0x5854ab
cmp edx, dword [esp + 0x100]
jae 0x585482
cmp eax, dword [esp + 0xbc]
jae 0x585482
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x2c], ebx
je 0x58547e
movzx ebx, byte [ebp]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4]
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x4c]
imul ebx, eax
shr ebx, 8
movzx ebx, bl
sub ebx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx eax, byte [ebx + eax*4 + 1]
mov ebx, dword [esp + 0xa4]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x4c]
imul ebx, eax
shr ebx, 8
movzx ebx, bl
sub ebx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [edx]
mov ebx, dword [esp + 0x54]
movzx edx, byte [ebx + edx*4 + 2]
movzx eax, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
imul edx, eax
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
shr edx, 8
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x5854ab
cmp ecx, dword [esp + 0x40]
jl 0x585321
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x585551
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x585280
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x585280
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x5855c8
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x5857c1
cmp edi, dword [esp + 0x6c]
jge 0x5857c1
cmp ecx, dword [esp + 0x40]
jge 0x5857c1
test esi, esi
jle 0x5857c1
cmp edx, dword [esp + 0x100]
jae 0x585798
cmp ebx, dword [esp + 0xbc]
jae 0x585798
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
add edx, eax
add edx, dword [esp + 0x90]
movzx eax, byte [ebp]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx eax, byte [ebx + eax*4]
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x4c]
imul ebx, eax
shr ebx, 8
movzx ebx, bl
sub ebx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx eax, byte [ebx + eax*4 + 1]
mov ebx, dword [esp + 0xa4]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x4c]
imul ebx, eax
shr ebx, 8
movzx ebx, bl
sub ebx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [edx]
mov ebx, dword [esp + 0x54]
movzx edx, byte [ebx + edx*4 + 2]
movzx eax, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
imul edx, eax
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
shr edx, 8
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x5857c1
cmp ecx, dword [esp + 0x40]
jl 0x585641
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x585867
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5855a2
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5855a2
cmp eax, 0xffffff
jne 0x585e2a
cmp dword [esp + 0x134], 0
je 0x585b84
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5858fe
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x585a8d
cmp edi, dword [esp + 0x6c]
jge 0x585a8d
cmp ecx, dword [esp + 0x40]
jge 0x585a8d
test esi, esi
jle 0x585a8d
lea ecx, [ecx]
cmp ebp, dword [esp + 0x100]
jae 0x585a6a
cmp eax, dword [esp + 0xbc]
jae 0x585a6a
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
imul ebx, dword [esp + 0x98]
add ebx, dword [esp + 0x90]
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
movzx edx, byte [eax + ebx]
add eax, ebx
cmp edx, dword [esp + 0x58]
je 0x585a66
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x54]
movzx ebx, byte [ebx + edx*4]
mov edx, dword [esp + 0x4c]
imul ebx, edx
sar ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
mov edx, dword [esp + 0x10]
sar ebx, 8
mov byte [edx], bl
movzx edx, byte [edx + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
movzx ebx, byte [ebx + edx*4 + 1]
mov edx, dword [esp + 0x4c]
imul ebx, edx
sar ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
mov edx, dword [esp + 0x10]
sar ebx, 8
mov byte [edx + 1], bl
movzx eax, byte [eax]
movzx edx, byte [edx + 2]
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4 + 2]
imul eax, edx
sar eax, 8
movzx eax, al
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
mov edx, dword [esp + 0x10]
sar eax, 8
mov byte [edx + 2], al
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x585a8d
cmp ecx, dword [esp + 0x40]
jl 0x585970
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x585b33
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5858d1
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5858d1
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x585baa
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x585d33
cmp edi, dword [esp + 0x6c]
jge 0x585d33
cmp ecx, dword [esp + 0x40]
jge 0x585d33
test esi, esi
jle 0x585d33
cmp ebx, dword [esp + 0x100]
jae 0x585d0e
cmp eax, dword [esp + 0xbc]
jae 0x585d0e
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
mov ebx, dword [esp + 0x54]
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [ebp]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
movzx ebx, byte [ebx + edx*4]
mov edx, dword [esp + 0x4c]
imul ebx, edx
sar ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
movzx ebx, byte [ebx + edx*4 + 1]
mov edx, dword [esp + 0x4c]
imul ebx, edx
sar ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp + 1], bl
movzx eax, byte [eax]
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4 + 2]
imul eax, edx
mov ebx, dword [esp + 0x1c]
sar eax, 8
movzx eax, al
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ebp + 2], al
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x585d33
cmp ecx, dword [esp + 0x40]
jl 0x585c23
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x585dd9
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x585b84
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x585b84
cmp dword [esp + 0x134], 0
je 0x586110
jmp 0x585e40
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x585e65
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x586012
cmp edi, dword [esp + 0x6c]
jge 0x586012
cmp ecx, dword [esp + 0x40]
jge 0x586012
test esi, esi
jle 0x586012
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x585fed
cmp eax, dword [esp + 0xbc]
jae 0x585fed
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
mov dword [esp + 0x5c], eax
movzx eax, byte [eax]
cmp eax, dword [esp + 0x58]
je 0x585fe5
movzx ebp, byte [ebx]
mov edx, dword [esp + 0x54]
movzx eax, byte [edx + eax*4]
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + eax*4]
imul eax, ebp
shr eax, 8
movzx edx, al
sub edx, ebp
imul edx, dword [0x8e80c0]
mov eax, dword [esp + 0x5c]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [ebx], dl
movzx edx, byte [eax]
mov eax, dword [esp + 0x54]
movzx edx, byte [eax + edx*4 + 1]
movzx ebp, byte [ebx + 1]
mov eax, dword [esp + 0xa4]
mov edx, dword [eax + edx*4]
imul edx, ebp
shr edx, 8
movzx eax, dl
mov edx, dword [esp + 0x5c]
sub eax, ebp
imul eax, dword [0x8e80c0]
shl ebp, 8
add eax, ebp
sar eax, 8
mov byte [ebx + 1], al
movzx eax, byte [edx]
mov edx, dword [esp + 0x54]
movzx eax, byte [edx + eax*4 + 2]
movzx ebp, byte [ebx + 2]
mov edx, dword [esp + 0xa8]
mov eax, dword [edx + eax*4]
imul eax, ebp
shr eax, 8
movzx edx, al
sub edx, ebp
imul edx, dword [0x8e80c0]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [ebx + 2], dl
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x586012
cmp ecx, dword [esp + 0x40]
jl 0x585ee0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5860b8
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x585e40
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x585e40
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x586136
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5862de
cmp edi, dword [esp + 0x6c]
jge 0x5862de
cmp ecx, dword [esp + 0x40]
jge 0x5862de
test esi, esi
jle 0x5862de
nop
cmp ebx, dword [esp + 0x100]
jae 0x5862b9
cmp eax, dword [esp + 0xbc]
jae 0x5862b9
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
mov ebx, dword [esp + 0x54]
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [ebp]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0x4c]
imul ebx, edx
shr ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [esp + 0xa4]
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0x4c]
imul ebx, edx
shr ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp + 1], bl
movzx eax, byte [eax]
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4 + 2]
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov eax, dword [ebx + eax*4]
imul eax, edx
mov ebx, dword [esp + 0x1c]
shr eax, 8
movzx eax, al
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ebp + 2], al
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5862de
cmp ecx, dword [esp + 0x40]
jl 0x5861b0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x586384
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x586110
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x586110
mov eax, dword [0x8e80e4]
and eax, 0xffffff
cmp dword [esp + 0x138], 0
je 0x58702c
cmp eax, 0xffffff
jne 0x5869f8
cmp dword [esp + 0x134], 0
je 0x586710
jmp 0x586410
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58643d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x586611
cmp edi, dword [esp + 0x6c]
jge 0x586611
cmp ecx, dword [esp + 0x40]
jge 0x586611
test esi, esi
jle 0x586611
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x5865ea
cmp eax, dword [esp + 0xbc]
jae 0x5865ea
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x2c], ebx
je 0x5865ea
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4]
not al
movzx ebx, al
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
mov eax, dword [esp + 0x10]
sar ebx, 0x10
mov byte [eax], bl
movzx eax, byte [eax + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx eax, byte [ebx + eax*4 + 1]
not al
movzx ebx, al
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
mov eax, dword [esp + 0x10]
sar ebx, 0x10
mov byte [eax + 1], bl
movzx edx, byte [edx]
mov ebx, dword [esp + 0x54]
mov dl, byte [ebx + edx*4 + 2]
mov ebx, dword [esp + 0x2c]
movzx eax, byte [eax + 2]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
not dl
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, 0x10
mov byte [eax + 2], dl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x586611
cmp ecx, dword [esp + 0x40]
jl 0x5864b0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5866b7
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x586410
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x586410
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x586736
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x586901
cmp edi, dword [esp + 0x6c]
jge 0x586901
cmp ecx, dword [esp + 0x40]
jge 0x586901
test esi, esi
jle 0x586901
nop
cmp edx, dword [esp + 0x100]
jae 0x5868d8
cmp ebx, dword [esp + 0xbc]
jae 0x5868d8
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebx, 0x12
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
add edx, eax
add edx, dword [esp + 0x90]
movzx eax, byte [ebp]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4]
not al
movzx ebx, al
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx eax, byte [ebx + eax*4 + 1]
not al
movzx ebx, al
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [edx]
mov ebx, dword [esp + 0x54]
mov dl, byte [ebx + edx*4 + 2]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx eax, byte [ebp + 2]
movzx ebx, byte [ebx + 0xa77168]
not dl
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x586901
cmp ecx, dword [esp + 0x40]
jl 0x5867b0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5869a7
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x586710
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x586710
cmp dword [esp + 0x134], 0
je 0x586d24
jmp 0x586a10
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x586a36
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x9c]
add ebx, dword [esp + 0x88]
add esi, 1
add eax, ebx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x586c2d
cmp edi, dword [esp + 0x6c]
jge 0x586c2d
cmp ecx, dword [esp + 0x40]
jge 0x586c2d
test esi, esi
jle 0x586c2d
cmp edx, dword [esp + 0x100]
jae 0x586c04
cmp eax, dword [esp + 0xbc]
jae 0x586c04
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x2c], ebx
je 0x586c00
movzx ebx, byte [ebp]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4]
mov ebx, dword [esp + 0xa0]
not al
movzx eax, al
movzx ebx, byte [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx eax, byte [ebx + eax*4 + 1]
mov ebx, dword [esp + 0xa4]
not al
movzx eax, al
movzx ebx, byte [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [edx]
mov ebx, dword [esp + 0x54]
mov dl, byte [ebx + edx*4 + 2]
mov ebx, dword [esp + 0xa8]
movzx eax, byte [ebp + 2]
not dl
movzx edx, dl
movzx edx, byte [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x586c2d
cmp ecx, dword [esp + 0x40]
jl 0x586ab1
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x586cd3
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x586a10
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x586a10
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x586d4a
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x586f35
cmp edi, dword [esp + 0x6c]
jge 0x586f35
cmp ecx, dword [esp + 0x40]
jge 0x586f35
test esi, esi
jle 0x586f35
cmp edx, dword [esp + 0x100]
jae 0x586f0c
cmp ebx, dword [esp + 0xbc]
jae 0x586f0c
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebx, 0x12
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
add edx, eax
add edx, dword [esp + 0x90]
movzx eax, byte [ebp]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + eax*4]
mov ebx, dword [esp + 0xa0]
not al
movzx eax, al
movzx ebx, byte [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
movzx eax, byte [ebx + eax*4 + 1]
mov ebx, dword [esp + 0xa4]
not al
movzx eax, al
movzx ebx, byte [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [edx]
mov ebx, dword [esp + 0x54]
mov dl, byte [ebx + edx*4 + 2]
mov ebx, dword [esp + 0xa8]
movzx eax, byte [ebp + 2]
not dl
movzx edx, dl
movzx edx, byte [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x586f35
cmp ecx, dword [esp + 0x40]
jl 0x586dc3
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x586fdb
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x586d24
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x586d24
cmp eax, 0xffffff
jne 0x58758a
cmp dword [esp + 0x134], 0
je 0x5872f0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x587072
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5871f1
cmp edi, dword [esp + 0x6c]
jge 0x5871f1
cmp ecx, dword [esp + 0x40]
jge 0x5871f1
test esi, esi
jle 0x5871f1
cmp ebp, dword [esp + 0x100]
jae 0x5871ce
cmp eax, dword [esp + 0xbc]
jae 0x5871ce
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
imul ebx, dword [esp + 0x98]
add ebx, dword [esp + 0x90]
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
movzx edx, byte [eax + ebx]
add eax, ebx
cmp edx, dword [esp + 0x58]
je 0x5871ca
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x54]
movzx edx, byte [ebx + edx*4]
not dl
movzx ebx, dl
mov edx, dword [esp + 0x4c]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
mov edx, dword [esp + 0x10]
sar ebx, 8
mov byte [edx], bl
movzx edx, byte [edx + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
movzx edx, byte [ebx + edx*4 + 1]
not dl
movzx ebx, dl
mov edx, dword [esp + 0x4c]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
mov edx, dword [esp + 0x10]
sar ebx, 8
mov byte [edx + 1], bl
movzx eax, byte [eax]
mov ebx, dword [esp + 0x54]
mov al, byte [ebx + eax*4 + 2]
movzx edx, byte [edx + 2]
not al
movzx eax, al
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
mov edx, dword [esp + 0x10]
sar eax, 8
mov byte [edx + 2], al
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x5871f1
cmp ecx, dword [esp + 0x40]
jl 0x5870e1
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x587297
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x587045
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x587045
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x587316
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x587493
cmp edi, dword [esp + 0x6c]
jge 0x587493
cmp ecx, dword [esp + 0x40]
jge 0x587493
test esi, esi
jle 0x587493
nop
cmp ebx, dword [esp + 0x100]
jae 0x58746e
cmp eax, dword [esp + 0xbc]
jae 0x58746e
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
mov ebx, dword [esp + 0x54]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [ebp]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
movzx edx, byte [ebx + edx*4]
not dl
movzx ebx, dl
mov edx, dword [esp + 0x4c]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
movzx edx, byte [ebx + edx*4 + 1]
not dl
movzx ebx, dl
mov edx, dword [esp + 0x4c]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp + 1], bl
movzx eax, byte [eax]
mov ebx, dword [esp + 0x54]
mov al, byte [ebx + eax*4 + 2]
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0x1c]
not al
movzx eax, al
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ebp + 2], al
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x587493
cmp ecx, dword [esp + 0x40]
jl 0x587390
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x587539
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5872f0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5872f0
cmp dword [esp + 0x134], 0
je 0x587870
jmp 0x5875a0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x5875c5
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x587772
cmp edi, dword [esp + 0x6c]
jge 0x587772
cmp ecx, dword [esp + 0x40]
jge 0x587772
test esi, esi
jle 0x587772
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x58774d
cmp eax, dword [esp + 0xbc]
jae 0x58774d
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x60]
add eax, dword [esp + 0x90]
sar ebp, 0x12
add ebp, eax
movzx eax, byte [ebp]
cmp eax, dword [esp + 0x58]
je 0x587745
movzx edx, byte [ebx]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x54]
mov al, byte [edx + eax*4]
not al
movzx edx, al
mov eax, dword [esp + 0xa0]
movzx edx, byte [eax + edx*4]
mov eax, dword [esp + 0x4c]
sub edx, eax
imul edx, dword [0x8e80c0]
shl eax, 8
add edx, eax
sar edx, 8
mov byte [ebx], dl
movzx eax, byte [ebx + 1]
movzx edx, byte [ebp]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x54]
movzx edx, byte [eax + edx*4 + 1]
not dl
movzx eax, dl
mov edx, dword [esp + 0xa4]
movzx edx, byte [edx + eax*4]
mov eax, dword [esp + 0x4c]
sub edx, eax
imul edx, dword [0x8e80c0]
shl eax, 8
add edx, eax
sar edx, 8
mov byte [ebx + 1], dl
movzx edx, byte [ebp]
mov ebp, dword [esp + 0x54]
movzx edx, byte [ebp + edx*4 + 2]
movzx eax, byte [ebx + 2]
mov ebp, dword [esp + 0xa8]
not dl
movzx edx, dl
movzx edx, byte [ebp + edx*4]
sub edx, eax
imul edx, dword [0x8e80c0]
shl eax, 8
add edx, eax
sar edx, 8
mov byte [ebx + 2], dl
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x587772
cmp ecx, dword [esp + 0x40]
jl 0x587640
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x587818
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5875a0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5875a0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x587896
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x587a34
cmp edi, dword [esp + 0x6c]
jge 0x587a34
cmp ecx, dword [esp + 0x40]
jge 0x587a34
test esi, esi
jle 0x587a34
nop
cmp ebx, dword [esp + 0x100]
jae 0x587a0f
cmp eax, dword [esp + 0xbc]
jae 0x587a0f
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
mov ebx, dword [esp + 0x54]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [ebp]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [esp + 0xa0]
not dl
movzx edx, dl
movzx ebx, byte [ebx + edx*4]
mov edx, dword [esp + 0x4c]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [esp + 0xa4]
not dl
movzx edx, dl
movzx ebx, byte [ebx + edx*4]
mov edx, dword [esp + 0x4c]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp + 1], bl
movzx eax, byte [eax]
mov ebx, dword [esp + 0x54]
mov al, byte [ebx + eax*4 + 2]
mov ebx, dword [esp + 0xa8]
movzx edx, byte [ebp + 2]
not al
movzx eax, al
movzx eax, byte [ebx + eax*4]
mov ebx, dword [esp + 0x1c]
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ebp + 2], al
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x587a34
cmp ecx, dword [esp + 0x40]
jl 0x587910
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x587ada
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x587870
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x587870
mov edx, dword [0x8e80bc]
cmp edx, 0xb
ja case.0x5bc480.5
jmp dword [edx*4 + 0x5bd25c]
mov edx, dword [0x8e80c0]
cmp edx, 0xff
jne 0x58a6b7
mov edx, dword [0x8e80e4]
and edx, 0xffffff
cmp dword [esp + 0x138], 0
je 0x589314
cmp edx, 0xffffff
jne 0x5886d5
cmp dword [eax + 0x28], ebp
jne 0x588176
cmp dword [esp + 0x134], 0
je 0x587ec0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x587bbd
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x587dc9
cmp edi, dword [esp + 0x6c]
jge 0x587dc9
cmp ecx, dword [esp + 0x40]
jge 0x587dc9
test esi, esi
jle 0x587dc9
jmp 0x587c36
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [esp + 0x100]
jae 0x587da2
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0xbc]
jae 0x587da2
mov eax, edx
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
sar ebx, 0x12
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea ebp, [edx + eax*4]
mov al, byte [ebp + 3]
test al, al
mov dword [esp + 0x2c], ebx
je 0x587da2
movzx edx, byte [ebx]
movzx edx, byte [edx + 0xa77168]
movzx ebx, byte [ebp]
cmp al, 0xff
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
jne 0x587d26
sub ebx, eax
imul edx, ebx
shl eax, 8
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, 8
mov byte [eax], dl
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx ebx, byte [edx + 0xa77168]
movzx eax, byte [eax + 1]
movzx edx, byte [ebp + 1]
sub edx, eax
imul ebx, edx
mov edx, dword [esp + 0x10]
shl eax, 8
add ebx, eax
sar ebx, 8
mov byte [edx + 1], bl
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx eax, byte [edx + 2]
movzx ebx, byte [ebx + 0xa77168]
movzx ebp, byte [ebp + 2]
sub ebp, eax
imul ebx, ebp
shl eax, 8
add ebx, eax
sar ebx, 8
mov byte [edx + 2], bl
jmp 0x587da2
sub ebx, eax
imul edx, ebx
movzx ebx, byte [ebp + 3]
imul edx, ebx
shl eax, 0x10
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, 0x10
mov byte [eax], dl
movzx eax, byte [eax + 1]
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
movzx ebx, byte [ebp + 1]
sub ebx, eax
imul edx, ebx
movzx ebx, byte [ebp + 3]
imul edx, ebx
shl eax, 0x10
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, 0x10
mov byte [eax + 1], dl
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx eax, byte [eax + 2]
movzx edx, byte [edx + 0xa77168]
movzx ebx, byte [ebp + 2]
sub ebx, eax
imul edx, ebx
movzx ebx, byte [ebp + 3]
imul edx, ebx
shl eax, 0x10
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, 0x10
mov byte [eax + 2], dl
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
add dword [esp + 0x1c], edx
add dword [esp + 0x14], eax
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
je 0x587dc9
cmp ecx, dword [esp + 0x40]
jl 0x587c32
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x587e6f
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x587b90
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x587b90
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x587eed
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x58807f
cmp edi, dword [esp + 0x6c]
jge 0x58807f
cmp ecx, dword [esp + 0x40]
jge 0x58807f
test esi, esi
jle 0x58807f
cmp ebp, dword [esp + 0x100]
jae 0x588058
cmp eax, dword [esp + 0xbc]
jae 0x588058
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
sar ebx, 0x12
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x10]
movzx ebp, byte [eax]
movzx eax, byte [ebx]
movzx eax, byte [eax + 0xa77168]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edx]
sub ebx, ebp
imul eax, ebx
movzx ebx, byte [edx + 3]
imul eax, ebx
shl ebp, 0x10
add eax, ebp
mov ebp, dword [esp + 0x10]
sar eax, 0x10
mov byte [ebp], al
movzx ebp, byte [ebp + 1]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
movzx ebx, byte [edx + 1]
sub ebx, ebp
imul eax, ebx
movzx ebx, byte [edx + 3]
imul eax, ebx
shl ebp, 0x10
add eax, ebp
mov ebp, dword [esp + 0x10]
sar eax, 0x10
mov byte [ebp + 1], al
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx ebp, byte [ebp + 2]
movzx eax, byte [eax + 0xa77168]
movzx ebx, byte [edx + 2]
movzx edx, byte [edx + 3]
sub ebx, ebp
imul eax, ebx
imul eax, edx
mov edx, dword [esp + 0x10]
shl ebp, 0x10
add eax, ebp
mov ebp, dword [esp + 0x1c]
sar eax, 0x10
mov byte [edx + 2], al
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58807f
cmp ecx, dword [esp + 0x40]
jl 0x587f60
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x588125
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x587ec0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x587ec0
cmp dword [esp + 0x134], 0
je 0x588434
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5881b1
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x58833d
cmp edi, dword [esp + 0x6c]
jge 0x58833d
cmp ecx, dword [esp + 0x40]
jge 0x58833d
test esi, esi
jle 0x58833d
cmp ebp, dword [esp + 0x100]
jae 0x588316
cmp eax, dword [esp + 0xbc]
jae 0x588316
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x2c], ebx
je 0x588316
movzx edx, byte [edx]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
sub edx, eax
imul ebx, edx
mov edx, dword [esp + 0x2c]
shl eax, 8
add ebx, eax
mov eax, dword [esp + 0x10]
sar ebx, 8
mov byte [eax], bl
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
movzx eax, byte [eax + 1]
mov ebx, dword [esp + 0x5c]
movzx ebx, byte [ebx + 1]
sub ebx, eax
imul edx, ebx
mov ebx, dword [esp + 0x5c]
shl eax, 8
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, 8
mov byte [eax + 1], dl
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx eax, byte [eax + 2]
movzx edx, byte [edx + 0xa77168]
movzx ebx, byte [ebx + 2]
sub ebx, eax
imul edx, ebx
shl eax, 8
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, 8
mov byte [eax + 2], dl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x58833d
cmp ecx, dword [esp + 0x40]
jl 0x588220
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5883e3
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x588184
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x588184
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x58845a
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x5885de
cmp edi, dword [esp + 0x6c]
jge 0x5885de
cmp ecx, dword [esp + 0x40]
jge 0x5885de
test esi, esi
jle 0x5885de
cmp edx, dword [esp + 0x100]
jae 0x5885b5
cmp ebx, dword [esp + 0xbc]
jae 0x5885b5
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebp]
mov dword [esp + 0x5c], edx
movzx edx, byte [edx]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul ebx, edx
mov edx, dword [esp + 0x2c]
shl eax, 8
add ebx, eax
sar ebx, 8
mov byte [ebp], bl
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0x5c]
movzx ebx, byte [ebx + 1]
sub ebx, eax
imul edx, ebx
mov ebx, dword [esp + 0x5c]
shl eax, 8
add edx, eax
sar edx, 8
mov byte [ebp + 1], dl
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx eax, byte [ebp + 2]
movzx edx, byte [edx + 0xa77168]
movzx ebx, byte [ebx + 2]
sub ebx, eax
imul edx, ebx
shl eax, 8
add edx, eax
sar edx, 8
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x5885de
cmp ecx, dword [esp + 0x40]
jl 0x5884d3
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x588684
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x588434
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x588434
cmp dword [eax + 0x28], ebp
jne 0x588d5b
cmp dword [esp + 0x134], 0
je 0x588a70
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x588716
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x588979
cmp edi, dword [esp + 0x6c]
jge 0x588979
cmp ecx, dword [esp + 0x40]
jge 0x588979
test esi, esi
jle 0x588979
jmp 0x588795
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [esp + 0x100]
jae 0x588954
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0xbc]
jae 0x588954
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov al, byte [edx + 3]
test al, al
mov dword [esp + 0x2c], ebx
je 0x588954
mov ebx, dword [esp + 0xa0]
cmp al, 0xff
movzx eax, byte [ebp]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
jne 0x5888b5
sub ebx, dword [esp + 0x4c]
imul ebx, eax
mov eax, dword [esp + 0x4c]
shl eax, 8
add ebx, eax
shr ebx, 8
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x4c]
shl eax, 8
add ebx, eax
shr ebx, 8
mov byte [ebp + 1], bl
movzx edx, byte [edx + 2]
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx eax, byte [ebp + 2]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
shl eax, 8
add edx, eax
shr edx, 8
mov byte [ebp + 2], dl
jmp 0x588954
sub ebx, dword [esp + 0x4c]
imul ebx, eax
movzx eax, byte [edx + 3]
imul ebx, eax
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
movzx eax, byte [edx + 3]
imul ebx, eax
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
mov byte [ebp + 1], bl
movzx eax, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x60], eax
movzx eax, byte [edx + 2]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
sub ebx, dword [esp + 0x60]
movzx edx, byte [edx + 3]
imul ebx, eax
mov eax, dword [esp + 0x60]
imul ebx, edx
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
mov byte [ebp + 2], bl
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
add dword [esp + 0x1c], eax
add dword [esp + 0x14], edx
add ebp, 4
add ecx, 1
sub esi, 1
je 0x588979
cmp ecx, dword [esp + 0x40]
jl 0x588791
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x588a1f
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5886f0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5886f0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x588a96
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x588c64
cmp edi, dword [esp + 0x6c]
jge 0x588c64
cmp ecx, dword [esp + 0x40]
jge 0x588c64
test esi, esi
jle 0x588c64
nop
cmp edx, dword [esp + 0x100]
jae 0x588c3b
cmp ebx, dword [esp + 0xbc]
jae 0x588c3b
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebx, 0x12
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebp]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
movzx eax, byte [edx + 3]
imul ebx, eax
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
movzx eax, byte [edx + 3]
imul ebx, eax
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
mov byte [ebp + 1], bl
movzx eax, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x60], eax
movzx eax, byte [edx + 2]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
sub ebx, dword [esp + 0x60]
movzx edx, byte [edx + 3]
imul ebx, eax
mov eax, dword [esp + 0x60]
imul ebx, edx
mov edx, dword [esp + 0x1c]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
mov byte [ebp + 2], bl
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x588c64
cmp ecx, dword [esp + 0x40]
jl 0x588b10
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x588d0a
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x588a70
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x588a70
cmp dword [esp + 0x134], 0
je 0x589050
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x588d9d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x588f57
cmp edi, dword [esp + 0x6c]
jge 0x588f57
cmp ecx, dword [esp + 0x40]
jge 0x588f57
test esi, esi
jle 0x588f57
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x588f30
cmp eax, dword [esp + 0xbc]
jae 0x588f30
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
mov dword [esp + 0x2c], ebx
je 0x588f30
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x4c]
shl eax, 8
add ebx, eax
mov eax, dword [esp + 0x10]
shr ebx, 8
mov byte [eax], bl
movzx eax, byte [eax + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x4c]
shl eax, 8
add ebx, eax
mov eax, dword [esp + 0x10]
shr ebx, 8
mov byte [eax + 1], bl
movzx edx, byte [edx + 2]
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx eax, byte [eax + 2]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
shl eax, 8
add edx, eax
mov eax, dword [esp + 0x10]
shr edx, 8
mov byte [eax + 2], dl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x588f57
cmp ecx, dword [esp + 0x40]
jl 0x588e10
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x588ffd
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x588d70
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x588d70
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x589076
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x58921d
cmp edi, dword [esp + 0x6c]
jge 0x58921d
cmp ecx, dword [esp + 0x40]
jge 0x58921d
test esi, esi
jle 0x58921d
nop
cmp edx, dword [esp + 0x100]
jae 0x5891f4
cmp ebx, dword [esp + 0xbc]
jae 0x5891f4
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*4]
add ebx, eax
add ebx, dword [esp + 0xac]
movzx eax, byte [ebp]
mov dword [esp + 0x5c], edx
movzx edx, byte [edx]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0xa0]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
mov ebx, dword [esp + 0xa4]
shl eax, 8
add edx, eax
shr edx, 8
mov byte [ebp], dl
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
movzx eax, byte [ebp + 1]
sub edx, eax
imul edx, ebx
mov ebx, dword [esp + 0xa8]
shl eax, 8
add edx, eax
shr edx, 8
mov byte [ebp + 1], dl
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx eax, byte [ebp + 2]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
shl eax, 8
add edx, eax
shr edx, 8
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x58921d
cmp ecx, dword [esp + 0x40]
jl 0x5890f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5892c3
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x589050
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x589050
cmp edx, 0xffffff
jne 0x589c71
cmp dword [eax + 0x28], ebp
jne 0x589866
cmp dword [esp + 0x134], 0
je 0x5895f1
jmp 0x589340
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58936d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add edx, dword [esp + 0x88]
add ebx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov edx, eax
mov dword [esp + 0x14], eax
jl 0x5894fa
cmp edi, dword [esp + 0x6c]
jge 0x5894fa
cmp ecx, dword [esp + 0x40]
jge 0x5894fa
test esi, esi
jle 0x5894fa
mov eax, dword [esp + 0x10]
cmp ebp, dword [esp + 0x100]
jae 0x5894d1
cmp edx, dword [esp + 0xbc]
jae 0x5894d1
mov eax, edx
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
imul ebx, dword [esp + 0x98]
add ebx, dword [esp + 0x90]
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
lea edx, [ebx + eax*4]
mov al, byte [edx + 3]
test al, al
mov dword [esp + 0x5c], edx
je 0x5894cd
cmp al, 0xff
mov eax, dword [esp + 0x10]
jne 0x58944c
mov edx, dword [edx]
mov dword [eax], edx
jmp 0x5894d1
movzx ebx, byte [eax]
mov dword [esp + 0x4c], ebx
movzx ebx, byte [edx]
sub ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 3]
imul ebx, edx
mov edx, dword [esp + 0x4c]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [eax], bl
movzx edx, byte [eax + 1]
mov ebx, dword [esp + 0x5c]
movzx ebx, byte [ebx + 1]
sub ebx, edx
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 3]
imul ebx, edx
mov edx, dword [esp + 0x4c]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [eax + 1], bl
movzx edx, byte [eax + 2]
mov ebx, dword [esp + 0x5c]
movzx ebx, byte [ebx + 2]
sub ebx, edx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 3]
imul ebx, edx
mov edx, dword [esp + 0x60]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [eax + 2], bl
jmp 0x5894d1
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
add edx, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add eax, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
je 0x5894fa
cmp ecx, dword [esp + 0x40]
jl 0x5893e2
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5895a0
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x589340
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x589340
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x589617
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x58976f
cmp edi, dword [esp + 0x6c]
jge 0x58976f
cmp ecx, dword [esp + 0x40]
jge 0x58976f
test esi, esi
jle 0x58976f
cmp ebx, dword [esp + 0x100]
jae 0x58974a
cmp eax, dword [esp + 0xbc]
jae 0x58974a
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
movzx ebx, byte [edx + eax*4]
lea eax, [edx + eax*4]
movzx edx, byte [ebp]
sub ebx, edx
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 3]
imul ebx, edx
mov edx, dword [esp + 0x4c]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
movzx ebx, byte [eax + 1]
sub ebx, edx
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 3]
imul ebx, edx
mov edx, dword [esp + 0x4c]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp + 1], bl
movzx ebx, byte [eax + 2]
movzx edx, byte [ebp + 2]
movzx eax, byte [eax + 3]
sub ebx, edx
imul ebx, eax
mov eax, dword [esp + 0x14]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp + 2], bl
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x58976f
cmp ecx, dword [esp + 0x40]
jl 0x589690
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x589815
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5895f1
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5895f1
cmp dword [esp + 0x134], 0
je 0x589a80
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5898a1
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x589982
cmp edi, dword [esp + 0x6c]
jge 0x589982
cmp ecx, dword [esp + 0x40]
jge 0x589982
test esi, esi
jle 0x589982
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x589963
cmp eax, dword [esp + 0xbc]
jae 0x589963
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
lea eax, [ebp + eax*4]
mov eax, dword [eax]
cmp eax, dword [esp + 0x58]
je 0x58995f
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x589982
cmp ecx, dword [esp + 0x40]
jl 0x589910
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x589a28
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x589874
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x589874
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x589aad
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x589b7a
cmp edi, dword [esp + 0x6c]
jge 0x589b7a
cmp ecx, dword [esp + 0x40]
jge 0x589b7a
test esi, esi
jle 0x589b7a
cmp ebx, dword [esp + 0x100]
jae 0x589b5b
cmp eax, dword [esp + 0xbc]
jae 0x589b5b
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
add ebp, dword [esp + 0x90]
mov edx, dword [ebp + eax*4]
mov eax, dword [esp + 0x10]
mov dword [eax], edx
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x589b7a
cmp ecx, dword [esp + 0x40]
jl 0x589b10
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x589c20
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x589a80
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x589a80
cmp dword [eax + 0x28], ebp
jne 0x58a210
cmp dword [esp + 0x134], 0
je 0x589f72
jmp 0x589c90
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x589cb5
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x589e7b
cmp edi, dword [esp + 0x6c]
jge 0x589e7b
cmp ecx, dword [esp + 0x40]
jge 0x589e7b
test esi, esi
jle 0x589e7b
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x589e52
cmp eax, dword [esp + 0xbc]
jae 0x589e52
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
mov al, byte [ebp + 3]
test al, al
je 0x589e4e
cmp al, 0xff
movzx eax, byte [ebp]
jne 0x589dc6
mov edx, dword [esp + 0xa0]
movzx eax, byte [edx + eax*4]
mov byte [ebx], al
movzx edx, byte [ebp + 1]
mov eax, dword [esp + 0xa4]
mov dl, byte [eax + edx*4]
mov byte [ebx + 1], dl
movzx eax, byte [ebp + 2]
mov edx, dword [esp + 0xa8]
movzx eax, byte [edx + eax*4]
mov byte [ebx + 2], al
jmp 0x589e4e
movzx edx, byte [ebx]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0xa0]
mov edx, dword [edx + eax*4]
sub edx, dword [esp + 0x4c]
movzx eax, byte [ebp + 3]
imul edx, eax
mov eax, dword [esp + 0x4c]
shl eax, 8
add edx, eax
shr edx, 8
mov byte [ebx], dl
movzx edx, byte [ebx + 1]
movzx eax, byte [ebp + 1]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0xa4]
mov edx, dword [edx + eax*4]
sub edx, dword [esp + 0x4c]
movzx eax, byte [ebp + 3]
imul edx, eax
mov eax, dword [esp + 0x4c]
shl eax, 8
add edx, eax
shr edx, 8
mov byte [ebx + 1], dl
movzx edx, byte [ebx + 2]
movzx eax, byte [ebp + 2]
movzx ebp, byte [ebp + 3]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0xa8]
mov edx, dword [edx + eax*4]
mov eax, dword [esp + 0x60]
sub edx, eax
imul edx, ebp
shl eax, 8
add edx, eax
shr edx, 8
mov byte [ebx + 2], dl
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x589e7b
cmp ecx, dword [esp + 0x40]
jl 0x589d30
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x589f21
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x589c90
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x589c90
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x589f98
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x58a119
cmp edi, dword [esp + 0x6c]
jge 0x58a119
cmp ecx, dword [esp + 0x40]
jge 0x58a119
test esi, esi
jle 0x58a119
cmp ebx, dword [esp + 0x100]
jae 0x58a0f4
cmp eax, dword [esp + 0xbc]
jae 0x58a0f4
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
mov ebx, dword [esp + 0xa0]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
movzx edx, byte [ebp]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
mov ebx, dword [ebx + edx*4]
sub ebx, dword [esp + 0x4c]
movzx edx, byte [eax + 3]
imul ebx, edx
mov edx, dword [esp + 0x4c]
shl edx, 8
add ebx, edx
shr ebx, 8
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 1]
mov ebx, dword [ebx + edx*4]
sub ebx, dword [esp + 0x4c]
movzx edx, byte [eax + 3]
imul ebx, edx
mov edx, dword [esp + 0x4c]
shl edx, 8
add ebx, edx
shr ebx, 8
mov byte [ebp + 1], bl
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x60], edx
movzx edx, byte [eax + 2]
mov ebx, dword [ebx + edx*4]
movzx eax, byte [eax + 3]
mov edx, dword [esp + 0x60]
sub ebx, edx
imul ebx, eax
mov eax, dword [esp + 0x14]
shl edx, 8
add ebx, edx
shr ebx, 8
mov byte [ebp + 2], bl
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x58a119
cmp ecx, dword [esp + 0x40]
jl 0x58a011
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58a1bf
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x589f72
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x589f72
cmp dword [esp + 0x134], 0
je 0x58a470
mov edi, edi
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58a24d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x58a377
cmp edi, dword [esp + 0x6c]
jge 0x58a377
cmp ecx, dword [esp + 0x40]
jge 0x58a377
test esi, esi
jle 0x58a377
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x58a354
cmp eax, dword [esp + 0xbc]
jae 0x58a354
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
sar eax, 0x12
cmp dword [ebp + eax*4], edx
lea ebp, [ebp + eax*4]
je 0x58a350
movzx eax, byte [ebp]
mov edx, dword [esp + 0xa0]
mov al, byte [edx + eax*4]
mov edx, dword [esp + 0x10]
mov byte [edx], al
movzx eax, byte [ebp + 1]
mov edx, dword [esp + 0xa4]
movzx edx, byte [edx + eax*4]
mov eax, dword [esp + 0x10]
mov byte [eax + 1], dl
movzx edx, byte [ebp + 2]
mov ebp, dword [esp + 0xa8]
movzx edx, byte [ebp + edx*4]
mov byte [eax + 2], dl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x58a377
cmp ecx, dword [esp + 0x40]
jl 0x58a2c0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58a41d
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58a220
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58a220
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58a49d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x58a5c0
cmp edi, dword [esp + 0x6c]
jge 0x58a5c0
cmp ecx, dword [esp + 0x40]
jge 0x58a5c0
test esi, esi
jle 0x58a5c0
mov edx, dword [esp + 0x10]
cmp ebx, dword [esp + 0x100]
jae 0x58a59b
cmp eax, dword [esp + 0xbc]
jae 0x58a59b
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
add ebp, dword [esp + 0x90]
movzx edx, byte [ebp + eax*4]
lea ebp, [ebp + eax*4]
mov eax, dword [esp + 0xa0]
mov dl, byte [eax + edx*4]
mov eax, dword [esp + 0x10]
mov byte [eax], dl
movzx edx, byte [ebp + 1]
mov eax, dword [esp + 0xa4]
movzx eax, byte [eax + edx*4]
mov edx, dword [esp + 0x10]
mov byte [edx + 1], al
movzx eax, byte [ebp + 2]
mov ebp, dword [esp + 0xa8]
movzx eax, byte [ebp + eax*4]
mov byte [edx + 2], al
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add edx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
je 0x58a5c0
cmp ecx, dword [esp + 0x40]
jl 0x58a510
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58a666
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58a470
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58a470
test edx, edx
je case.0x5bc480.5
mov edx, dword [0x8e80e4]
and edx, 0xffffff
cmp dword [esp + 0x138], 0
je 0x58bf69
cmp edx, 0xffffff
jne 0x58b2c7
cmp dword [eax + 0x28], ebp
jne 0x58ad2e
cmp dword [esp + 0x134], 0
je 0x58aa63
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x58a726
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x58a96c
cmp edi, dword [esp + 0x6c]
jge 0x58a96c
cmp ecx, dword [esp + 0x40]
jge 0x58a96c
test esi, esi
jle 0x58a96c
jmp 0x58a7a5
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [esp + 0x100]
jae 0x58a947
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0xbc]
jae 0x58a947
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov al, byte [edx + 3]
test al, al
mov dword [esp + 0x5c], edx
mov dword [esp + 0x2c], ebx
je 0x58a947
movzx ebx, byte [ebx]
movzx edx, byte [edx]
movzx ebx, byte [ebx + 0xa77168]
cmp al, 0xff
movzx eax, byte [ebp]
jne 0x58a8ad
sub edx, eax
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x2c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp], bl
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0x5c]
movzx ebx, byte [ebx + 1]
sub ebx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0x5c]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 1], dl
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx eax, byte [ebp + 2]
movzx edx, byte [edx + 0xa77168]
movzx ebx, byte [ebx + 2]
sub ebx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
jmp 0x58a944
sub edx, eax
imul ebx, edx
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x2c]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp], bl
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0x5c]
movzx ebx, byte [ebx + 1]
sub ebx, eax
imul edx, ebx
mov ebx, dword [esp + 0x5c]
movzx ebx, byte [ebx + 3]
imul edx, ebx
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0x5c]
shl eax, 0x18
add edx, eax
sar edx, 0x18
mov byte [ebp + 1], dl
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
movzx ebx, byte [ebx + 2]
movzx eax, byte [ebp + 2]
sub ebx, eax
imul edx, ebx
mov ebx, dword [esp + 0x5c]
movzx ebx, byte [ebx + 3]
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x18
add edx, eax
sar edx, 0x18
mov byte [ebp + 2], dl
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
add dword [esp + 0x1c], eax
add dword [esp + 0x14], edx
add ebp, 4
add ecx, 1
sub esi, 1
je 0x58a96c
cmp ecx, dword [esp + 0x40]
jl 0x58a7a1
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58aa12
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58a700
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58a700
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58aa90
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x58ac37
cmp edi, dword [esp + 0x6c]
jge 0x58ac37
cmp ecx, dword [esp + 0x40]
jge 0x58ac37
test esi, esi
jle 0x58ac37
cmp ebp, dword [esp + 0x100]
jae 0x58ac10
cmp eax, dword [esp + 0xbc]
jae 0x58ac10
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
sar ebx, 0x12
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x10]
movzx ebp, byte [eax]
movzx eax, byte [ebx]
movzx eax, byte [eax + 0xa77168]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edx]
sub ebx, ebp
imul eax, ebx
movzx ebx, byte [edx + 3]
imul eax, ebx
imul eax, dword [0x8e80c0]
shl ebp, 0x18
add eax, ebp
mov ebp, dword [esp + 0x10]
sar eax, 0x18
mov byte [ebp], al
movzx ebp, byte [ebp + 1]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
movzx ebx, byte [edx + 1]
sub ebx, ebp
imul eax, ebx
movzx ebx, byte [edx + 3]
imul eax, ebx
imul eax, dword [0x8e80c0]
shl ebp, 0x18
add eax, ebp
mov ebp, dword [esp + 0x10]
sar eax, 0x18
mov byte [ebp + 1], al
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
movzx ebp, byte [ebp + 2]
movzx ebx, byte [edx + 2]
movzx edx, byte [edx + 3]
sub ebx, ebp
imul eax, ebx
imul eax, edx
imul eax, dword [0x8e80c0]
mov edx, dword [esp + 0x10]
shl ebp, 0x18
add eax, ebp
mov ebp, dword [esp + 0x1c]
sar eax, 0x18
mov byte [edx + 2], al
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58ac37
cmp ecx, dword [esp + 0x40]
jl 0x58ab03
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58acdd
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58aa63
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58aa63
cmp dword [esp + 0x134], 0
je 0x58b010
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58ad6d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x58af12
cmp edi, dword [esp + 0x6c]
jge 0x58af12
cmp ecx, dword [esp + 0x40]
jge 0x58af12
test esi, esi
jle 0x58af12
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x58aeeb
cmp eax, dword [esp + 0xbc]
jae 0x58aeeb
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x2c], ebx
je 0x58aeeb
movzx edx, byte [edx]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
sub edx, eax
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x2c]
shl eax, 0x10
add ebx, eax
mov eax, dword [esp + 0x10]
sar ebx, 0x10
mov byte [eax], bl
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
movzx eax, byte [eax + 1]
mov ebx, dword [esp + 0x5c]
movzx ebx, byte [ebx + 1]
sub ebx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0x5c]
shl eax, 0x10
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, 0x10
mov byte [eax + 1], dl
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx eax, byte [eax + 2]
movzx edx, byte [edx + 0xa77168]
movzx ebx, byte [ebx + 2]
sub ebx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, 0x10
mov byte [eax + 2], dl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x58af12
cmp ecx, dword [esp + 0x40]
jl 0x58ade0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58afb8
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58ad40
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58ad40
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x58b036
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x58b1d0
cmp edi, dword [esp + 0x6c]
jge 0x58b1d0
cmp ecx, dword [esp + 0x40]
jge 0x58b1d0
test esi, esi
jle 0x58b1d0
nop
cmp edx, dword [esp + 0x100]
jae 0x58b1a7
cmp ebx, dword [esp + 0xbc]
jae 0x58b1a7
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebp]
mov dword [esp + 0x5c], edx
movzx edx, byte [edx]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x2c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp], bl
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0x5c]
movzx ebx, byte [ebx + 1]
sub ebx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0x5c]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 1], dl
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
movzx eax, byte [ebp + 2]
movzx ebx, byte [ebx + 2]
sub ebx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x58b1d0
cmp ecx, dword [esp + 0x40]
jl 0x58b0b0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58b276
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58b010
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58b010
cmp dword [eax + 0x28], ebp
jne 0x58b990
cmp dword [esp + 0x134], 0
je 0x58b690
mov edi, edi
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x58b306
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x9c]
add ebx, dword [esp + 0x88]
add esi, 1
add eax, ebx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x58b593
cmp edi, dword [esp + 0x6c]
jge 0x58b593
cmp ecx, dword [esp + 0x40]
jge 0x58b593
test esi, esi
jle 0x58b593
cmp edx, dword [esp + 0x100]
jae 0x58b56a
cmp eax, dword [esp + 0xbc]
jae 0x58b56a
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov al, byte [edx + 3]
test al, al
mov dword [esp + 0x2c], ebx
je 0x58b566
mov ebx, dword [esp + 0xa0]
cmp al, 0xff
movzx eax, byte [ebp]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
jne 0x58b4b2
sub ebx, dword [esp + 0x4c]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [edx + 2]
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx eax, byte [ebp + 2]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
shr edx, 0x10
mov byte [ebp + 2], dl
jmp 0x58b566
sub ebx, dword [esp + 0x4c]
imul ebx, eax
movzx eax, byte [edx + 3]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x18
add ebx, eax
shr ebx, 0x18
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
movzx eax, byte [edx + 3]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x18
add ebx, eax
shr ebx, 0x18
mov byte [ebp + 1], bl
movzx eax, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x60], eax
movzx eax, byte [edx + 2]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
sub ebx, dword [esp + 0x60]
movzx eax, byte [eax + 0xa77168]
movzx edx, byte [edx + 3]
imul ebx, eax
mov eax, dword [esp + 0x60]
imul ebx, edx
imul ebx, dword [0x8e80c0]
shl eax, 0x18
add ebx, eax
shr ebx, 0x18
mov byte [ebp + 2], bl
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x58b593
cmp ecx, dword [esp + 0x40]
jl 0x58b381
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58b639
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58b2e0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58b2e0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x58b6b6
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x58b899
cmp edi, dword [esp + 0x6c]
jge 0x58b899
cmp ecx, dword [esp + 0x40]
jge 0x58b899
test esi, esi
jle 0x58b899
nop
cmp edx, dword [esp + 0x100]
jae 0x58b870
cmp ebx, dword [esp + 0xbc]
jae 0x58b870
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebx, 0x12
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebp]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
movzx eax, byte [edx + 3]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x18
add ebx, eax
shr ebx, 0x18
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
movzx eax, byte [edx + 3]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x18
add ebx, eax
shr ebx, 0x18
mov byte [ebp + 1], bl
movzx eax, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x60], eax
movzx eax, byte [edx + 2]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
sub ebx, dword [esp + 0x60]
movzx eax, byte [eax + 0xa77168]
movzx edx, byte [edx + 3]
imul ebx, eax
mov eax, dword [esp + 0x60]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x1c]
shl eax, 0x18
add ebx, eax
shr ebx, 0x18
mov byte [ebp + 2], bl
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x58b899
cmp ecx, dword [esp + 0x40]
jl 0x58b730
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58b93f
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58b690
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58b690
cmp dword [esp + 0x134], 0
je 0x58bc90
mov edi, edi
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x58b9c6
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x9c]
add ebx, dword [esp + 0x88]
add esi, 1
add eax, ebx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x58bb97
cmp edi, dword [esp + 0x6c]
jge 0x58bb97
cmp ecx, dword [esp + 0x40]
jge 0x58bb97
test esi, esi
jle 0x58bb97
cmp edx, dword [esp + 0x100]
jae 0x58bb6e
cmp eax, dword [esp + 0xbc]
jae 0x58bb6e
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
mov dword [esp + 0x2c], ebx
je 0x58bb6a
movzx eax, byte [ebp]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [edx + 2]
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx eax, byte [ebp + 2]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
shr edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x58bb97
cmp ecx, dword [esp + 0x40]
jl 0x58ba41
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58bc3d
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58b9a0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58b9a0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x58bcb6
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x58be72
cmp edi, dword [esp + 0x6c]
jge 0x58be72
cmp ecx, dword [esp + 0x40]
jge 0x58be72
test esi, esi
jle 0x58be72
nop
cmp edx, dword [esp + 0x100]
jae 0x58be49
cmp ebx, dword [esp + 0xbc]
jae 0x58be49
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*4]
mov dword [esp + 0x5c], edx
movzx edx, byte [edx]
add ebx, eax
add ebx, dword [esp + 0xac]
movzx eax, byte [ebp]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0xa0]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shl eax, 0x10
add edx, eax
shr edx, 0x10
mov byte [ebp], dl
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
movzx eax, byte [ebp + 1]
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0xa8]
shl eax, 0x10
add edx, eax
shr edx, 0x10
mov byte [ebp + 1], dl
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx eax, byte [ebp + 2]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
shr edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x58be72
cmp ecx, dword [esp + 0x40]
jl 0x58bd30
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58bf18
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58bc90
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58bc90
cmp edx, 0xffffff
jne 0x58c9f5
cmp dword [eax + 0x28], ebp
jne 0x58c50b
cmp dword [esp + 0x134], 0
je 0x58c280
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x58bfb6
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x58c181
cmp edi, dword [esp + 0x6c]
jge 0x58c181
cmp ecx, dword [esp + 0x40]
jge 0x58c181
test esi, esi
jle 0x58c181
nop
cmp ebx, dword [esp + 0x100]
jae 0x58c158
cmp eax, dword [esp + 0xbc]
jae 0x58c158
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
mov dl, byte [eax + 3]
test dl, dl
je 0x58c154
movzx ebx, byte [eax]
cmp dl, 0xff
movzx edx, byte [ebp]
jne 0x58c0e3
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp], bl
movzx ebx, byte [eax + 1]
movzx edx, byte [ebp + 1]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp + 1], bl
movzx eax, byte [eax + 2]
movzx edx, byte [ebp + 2]
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ebp + 2], al
jmp 0x58c154
sub ebx, edx
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
movzx ebx, byte [eax + 1]
sub ebx, edx
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [ebp + 2]
movzx ebx, byte [eax + 2]
movzx eax, byte [eax + 3]
sub ebx, edx
imul ebx, eax
imul ebx, dword [0x8e80c0]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 2], bl
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x58c181
cmp ecx, dword [esp + 0x40]
jl 0x58c030
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58c227
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58bf90
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58bf90
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x58c2a6
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x58c414
cmp edi, dword [esp + 0x6c]
jge 0x58c414
cmp ecx, dword [esp + 0x40]
jge 0x58c414
test esi, esi
jle 0x58c414
nop
cmp ebx, dword [esp + 0x100]
jae 0x58c3ef
cmp eax, dword [esp + 0xbc]
jae 0x58c3ef
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
movzx ebx, byte [edx + eax*4]
lea eax, [edx + eax*4]
movzx edx, byte [ebp]
sub ebx, edx
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
movzx ebx, byte [eax + 1]
sub ebx, edx
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx ebx, byte [eax + 2]
movzx edx, byte [ebp + 2]
movzx eax, byte [eax + 3]
sub ebx, edx
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x14]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 2], bl
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x58c414
cmp ecx, dword [esp + 0x40]
jl 0x58c320
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58c4ba
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58c280
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58c280
cmp dword [esp + 0x134], 0
je 0x58c794
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58c54d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x58c69d
cmp edi, dword [esp + 0x6c]
jge 0x58c69d
cmp ecx, dword [esp + 0x40]
jge 0x58c69d
test esi, esi
jle 0x58c69d
mov ebp, dword [esp + 0x10]
cmp ebx, dword [esp + 0x100]
jae 0x58c678
cmp eax, dword [esp + 0xbc]
jae 0x58c678
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
lea edx, [ebp + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x5c], edx
je 0x58c674
movzx edx, byte [edx]
movzx eax, byte [ebp]
sub edx, eax
imul edx, dword [0x8e80c0]
shl eax, 8
add edx, eax
sar edx, 8
mov byte [ebp], dl
movzx eax, byte [ebp + 1]
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 1]
sub edx, eax
imul edx, dword [0x8e80c0]
shl eax, 8
add edx, eax
sar edx, 8
mov byte [ebp + 1], dl
movzx eax, byte [ebp + 2]
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 2]
sub edx, eax
imul edx, dword [0x8e80c0]
shl eax, 8
add edx, eax
sar edx, 8
mov byte [ebp + 2], dl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x58c69d
cmp ecx, dword [esp + 0x40]
jl 0x58c5c0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58c743
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58c520
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58c520
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x58c7b9
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x58c8fe
cmp edi, dword [esp + 0x6c]
jge 0x58c8fe
cmp ecx, dword [esp + 0x40]
jge 0x58c8fe
test esi, esi
jle 0x58c8fe
cmp ebp, dword [esp + 0x100]
jae 0x58c8d9
cmp eax, dword [esp + 0xbc]
jae 0x58c8d9
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
movzx ebp, byte [ebx]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
movzx edx, byte [eax]
sub edx, ebp
imul edx, dword [0x8e80c0]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [ebx], dl
movzx edx, byte [eax + 1]
movzx ebp, byte [ebx + 1]
sub edx, ebp
imul edx, dword [0x8e80c0]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [ebx + 1], dl
movzx eax, byte [eax + 2]
movzx ebp, byte [ebx + 2]
sub eax, ebp
imul eax, dword [0x8e80c0]
shl ebp, 8
add eax, ebp
mov ebp, dword [esp + 0x1c]
sar eax, 8
mov byte [ebx + 2], al
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58c8fe
cmp ecx, dword [esp + 0x40]
jl 0x58c832
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58c9a4
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58c794
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58c794
cmp dword [eax + 0x28], ebp
jne 0x58d004
cmp dword [esp + 0x134], 0
je 0x58cd45
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x58ca36
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x58cc4e
cmp edi, dword [esp + 0x6c]
jge 0x58cc4e
cmp ecx, dword [esp + 0x40]
jge 0x58cc4e
test esi, esi
jle 0x58cc4e
nop
cmp ebx, dword [esp + 0x100]
jae 0x58cc25
cmp eax, dword [esp + 0xbc]
jae 0x58cc25
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
mov dl, byte [eax + 3]
test dl, dl
je 0x58cc21
mov ebx, dword [esp + 0xa0]
cmp dl, 0xff
movzx edx, byte [ebp]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
mov ebx, dword [ebx + edx*4]
jne 0x58cb94
mov edx, dword [esp + 0x4c]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
shr ebx, 8
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 1]
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0x4c]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
shr ebx, 8
mov byte [ebp + 1], bl
movzx eax, byte [eax + 2]
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov eax, dword [ebx + eax*4]
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
shr eax, 8
mov byte [ebp + 2], al
jmp 0x58cc21
sub ebx, dword [esp + 0x4c]
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
shr ebx, 0x10
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 1]
mov ebx, dword [ebx + edx*4]
sub ebx, dword [esp + 0x4c]
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
shr ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x60], edx
movzx edx, byte [eax + 2]
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0x60]
movzx eax, byte [eax + 3]
sub ebx, edx
imul ebx, eax
imul ebx, dword [0x8e80c0]
shl edx, 0x10
add ebx, edx
shr ebx, 0x10
mov byte [ebp + 2], bl
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x58cc4e
cmp ecx, dword [esp + 0x40]
jl 0x58cab0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58ccf4
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58ca10
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58ca10
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x58cd6b
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x58cf0d
cmp edi, dword [esp + 0x6c]
jge 0x58cf0d
cmp ecx, dword [esp + 0x40]
jge 0x58cf0d
test esi, esi
jle 0x58cf0d
jmp 0x58cdf0
cmp ebx, dword [esp + 0x100]
jae 0x58cee8
cmp eax, dword [esp + 0xbc]
jae 0x58cee8
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
mov ebx, dword [esp + 0xa0]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
movzx edx, byte [ebp]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
mov ebx, dword [ebx + edx*4]
sub ebx, dword [esp + 0x4c]
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
shr ebx, 0x10
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 1]
mov ebx, dword [ebx + edx*4]
sub ebx, dword [esp + 0x4c]
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
shr ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x60], edx
movzx edx, byte [eax + 2]
mov ebx, dword [ebx + edx*4]
movzx eax, byte [eax + 3]
mov edx, dword [esp + 0x60]
sub ebx, edx
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x14]
shl edx, 0x10
add ebx, edx
shr ebx, 0x10
mov byte [ebp + 2], bl
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x58cf0d
cmp ecx, dword [esp + 0x40]
jl 0x58cdf0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58cfb3
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58cd45
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58cd45
cmp dword [esp + 0x134], 0
je 0x58d2b1
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58d03f
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x58d1ba
cmp edi, dword [esp + 0x6c]
jge 0x58d1ba
cmp ecx, dword [esp + 0x40]
jge 0x58d1ba
test esi, esi
jle 0x58d1ba
mov edi, edi
cmp ebx, dword [esp + 0x100]
jae 0x58d197
cmp eax, dword [esp + 0xbc]
jae 0x58d197
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
sar eax, 0x12
cmp dword [ebp + eax*4], edx
lea eax, [ebp + eax*4]
mov dword [esp + 0x5c], eax
je 0x58d193
movzx eax, byte [eax]
mov edx, dword [esp + 0x10]
movzx ebp, byte [edx]
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + eax*4]
sub eax, ebp
imul eax, dword [0x8e80c0]
mov edx, dword [esp + 0x5c]
shl ebp, 8
add eax, ebp
mov ebp, dword [esp + 0x10]
shr eax, 8
mov byte [ebp], al
movzx eax, byte [edx + 1]
movzx ebp, byte [ebp + 1]
mov edx, dword [esp + 0xa4]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x5c]
sub eax, ebp
imul eax, dword [0x8e80c0]
shl ebp, 8
add eax, ebp
mov ebp, dword [esp + 0x10]
shr eax, 8
mov byte [ebp + 1], al
movzx eax, byte [edx + 2]
movzx ebp, byte [ebp + 2]
mov edx, dword [esp + 0xa8]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x10]
sub eax, ebp
imul eax, dword [0x8e80c0]
shl ebp, 8
add eax, ebp
shr eax, 8
mov byte [edx + 2], al
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x58d1ba
cmp ecx, dword [esp + 0x40]
jl 0x58d0b0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58d260
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58d012
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58d012
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x58d2d6
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x58d446
cmp edi, dword [esp + 0x6c]
jge 0x58d446
cmp ecx, dword [esp + 0x40]
jge 0x58d446
test esi, esi
jle 0x58d446
nop
cmp ebp, dword [esp + 0x100]
jae 0x58d421
cmp eax, dword [esp + 0xbc]
jae 0x58d421
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
movzx ebp, byte [ebx]
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x5c], eax
movzx eax, byte [eax]
mov eax, dword [edx + eax*4]
sub eax, ebp
imul eax, dword [0x8e80c0]
mov edx, dword [esp + 0x5c]
shl ebp, 8
add eax, ebp
shr eax, 8
mov byte [ebx], al
movzx eax, byte [edx + 1]
movzx ebp, byte [ebx + 1]
mov edx, dword [esp + 0xa4]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x5c]
sub eax, ebp
imul eax, dword [0x8e80c0]
shl ebp, 8
add eax, ebp
shr eax, 8
mov byte [ebx + 1], al
movzx eax, byte [edx + 2]
movzx ebp, byte [ebx + 2]
mov edx, dword [esp + 0xa8]
mov eax, dword [edx + eax*4]
sub eax, ebp
imul eax, dword [0x8e80c0]
shl ebp, 8
add eax, ebp
mov ebp, dword [esp + 0x1c]
shr eax, 8
mov byte [ebx + 2], al
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58d446
cmp ecx, dword [esp + 0x40]
jl 0x58d350
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58d4ec
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58d2b1
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58d2b1
cmp dword [0x8e80c0], 0
je case.0x5bc480.5
mov edx, dword [0x8e80e4]
and edx, 0xffffff
cmp dword [esp + 0x138], 0
je 0x58ec86
cmp edx, 0xffffff
jne 0x58e091
cmp dword [eax + 0x28], ebp
jne 0x58db2b
cmp dword [esp + 0x134], 0
je 0x58d881
jmp 0x58d590
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58d5bd
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x58d78a
cmp edi, dword [esp + 0x6c]
jge 0x58d78a
cmp ecx, dword [esp + 0x40]
jge 0x58d78a
test esi, esi
jle 0x58d78a
cmp ebp, dword [esp + 0x100]
jae 0x58d75f
cmp eax, dword [esp + 0xbc]
jae 0x58d75f
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov al, byte [edx + 3]
test al, al
je 0x58d75f
cmp al, 0xff
jne 0x58d6d5
movzx eax, byte [ebx]
movzx ebx, byte [edx]
movzx ebp, byte [eax + 0xa77168]
mov eax, dword [0x8e80c0]
imul ebx, ebp
imul ebx, eax
sar ebx, 0x10
mov byte [esp + 0x50], bl
movzx ebx, byte [edx + 1]
movzx edx, byte [edx + 2]
imul ebx, ebp
imul edx, ebp
imul ebx, eax
imul edx, eax
sar ebx, 0x10
sar edx, 0x10
jmp 0x58d714
movzx ebx, byte [ebx]
movzx ebp, byte [ebx + 0xa77168]
movzx ebx, byte [edx]
movzx eax, al
imul ebp, eax
mov eax, dword [0x8e80c0]
imul ebx, ebp
imul ebx, eax
sar ebx, 0x18
mov byte [esp + 0x50], bl
movzx ebx, byte [edx + 1]
movzx edx, byte [edx + 2]
imul ebx, ebp
imul edx, ebp
imul ebx, eax
imul edx, eax
sar ebx, 0x18
sar edx, 0x18
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov byte [esp + 0x52], dl
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
and eax, 0xfefeff
mov edx, ebx
or ebx, dword [esp + 0x5c]
and edx, 0xfefeff
add edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and ebx, 0x10100
or eax, ebx
or eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58d78a
cmp ecx, dword [esp + 0x40]
jl 0x58d630
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58d830
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58d590
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58d590
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58d8ae
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x58da34
cmp edi, dword [esp + 0x6c]
jge 0x58da34
cmp ecx, dword [esp + 0x40]
jge 0x58da34
test esi, esi
jle 0x58da34
cmp ebp, dword [esp + 0x100]
jae 0x58da0d
cmp eax, dword [esp + 0xbc]
jae 0x58da0d
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea ebp, [edx + eax*4]
movzx eax, byte [ebx]
movzx eax, byte [eax + 0xa77168]
movzx edx, byte [ebp + 3]
movzx ebx, byte [ebp]
imul eax, edx
mov edx, dword [0x8e80c0]
imul ebx, eax
imul ebx, edx
sar ebx, 0x18
mov byte [esp + 0x50], bl
movzx ebx, byte [ebp + 1]
imul ebx, eax
imul ebx, edx
sar ebx, 0x18
mov byte [esp + 0x51], bl
movzx ebx, byte [ebp + 2]
imul ebx, eax
mov eax, dword [esp + 0x10]
imul ebx, edx
mov eax, dword [eax]
sar ebx, 0x18
mov byte [esp + 0x52], bl
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
and eax, 0xfefeff
mov edx, ebx
or ebx, dword [esp + 0x5c]
and edx, 0xfefeff
add edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and ebx, 0x10100
or eax, ebx
or eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58da34
cmp ecx, dword [esp + 0x40]
jl 0x58d921
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58dada
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58d881
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58d881
cmp dword [esp + 0x134], 0
je 0x58ddf0
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58db6d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x58dcf6
cmp edi, dword [esp + 0x6c]
jge 0x58dcf6
cmp ecx, dword [esp + 0x40]
jge 0x58dcf6
test esi, esi
jle 0x58dcf6
cmp ebp, dword [esp + 0x100]
jae 0x58dccf
cmp eax, dword [esp + 0xbc]
jae 0x58dccf
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
je 0x58dccb
movzx eax, byte [ebx]
movzx ebp, byte [eax + 0xa77168]
movzx ebx, byte [edx]
mov eax, dword [0x8e80c0]
imul ebx, ebp
imul ebx, eax
sar ebx, 0x10
mov byte [esp + 0x50], bl
movzx ebx, byte [edx + 1]
movzx edx, byte [edx + 2]
imul ebx, ebp
imul edx, ebp
imul ebx, eax
imul edx, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
sar edx, 0x10
sar ebx, 0x10
mov byte [esp + 0x52], dl
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
and eax, 0xfefeff
mov edx, ebx
or ebx, dword [esp + 0x5c]
and edx, 0xfefeff
add edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and ebx, 0x10100
or eax, ebx
or eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58dcf6
cmp ecx, dword [esp + 0x40]
jl 0x58dbe0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58dd9c
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58db40
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58db40
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58de1d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x58df9a
cmp edi, dword [esp + 0x6c]
jge 0x58df9a
cmp ecx, dword [esp + 0x40]
jge 0x58df9a
test esi, esi
jle 0x58df9a
cmp ebp, dword [esp + 0x100]
jae 0x58df73
cmp eax, dword [esp + 0xbc]
jae 0x58df73
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebx]
movzx ebp, byte [eax + 0xa77168]
movzx ebx, byte [edx]
mov eax, dword [0x8e80c0]
imul ebx, ebp
imul ebx, eax
sar ebx, 0x10
mov byte [esp + 0x50], bl
movzx ebx, byte [edx + 1]
movzx edx, byte [edx + 2]
imul ebx, ebp
imul edx, ebp
imul ebx, eax
imul edx, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
sar edx, 0x10
sar ebx, 0x10
mov byte [esp + 0x52], dl
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
and eax, 0xfefeff
mov edx, ebx
or ebx, dword [esp + 0x5c]
and edx, 0xfefeff
add edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and ebx, 0x10100
or eax, ebx
or eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58df9a
cmp ecx, dword [esp + 0x40]
jl 0x58de90
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58e040
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58ddf0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58ddf0
cmp dword [eax + 0x28], ebp
jne 0x58e6da
cmp dword [esp + 0x134], 0
je 0x58e400
jmp 0x58e0b0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58e0dd
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x58e309
cmp edi, dword [esp + 0x6c]
jge 0x58e309
cmp ecx, dword [esp + 0x40]
jge 0x58e309
test esi, esi
jle 0x58e309
cmp ebp, dword [esp + 0x100]
jae 0x58e2de
cmp eax, dword [esp + 0xbc]
jae 0x58e2de
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov al, byte [edx + 3]
test al, al
je 0x58e2de
cmp al, 0xff
jne 0x58e222
movzx eax, byte [ebx]
movzx ebp, byte [eax + 0xa77168]
movzx eax, byte [edx]
mov ebx, dword [esp + 0xa0]
mov eax, dword [ebx + eax*4]
mov ebx, dword [esp + 0xa4]
imul eax, ebp
imul eax, dword [0x8e80c0]
shr eax, 0x10
mov byte [esp + 0x50], al
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
mov eax, dword [0x8e80c0]
imul ebx, ebp
movzx edx, byte [edx + 2]
imul ebx, eax
shr ebx, 0x10
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
imul edx, ebp
imul edx, eax
shr edx, 0x10
jmp 0x58e297
movzx ebx, byte [ebx]
movzx ebp, byte [ebx + 0xa77168]
mov ebx, dword [esp + 0xa0]
movzx eax, al
mov dword [esp + 0x58], eax
movzx eax, byte [edx]
mov eax, dword [ebx + eax*4]
imul eax, ebp
imul eax, dword [esp + 0x58]
imul eax, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shr eax, 0x18
mov byte [esp + 0x50], al
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
mov eax, dword [0x8e80c0]
imul ebx, ebp
imul ebx, dword [esp + 0x58]
movzx edx, byte [edx + 2]
imul ebx, eax
shr ebx, 0x18
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
imul edx, ebp
imul edx, dword [esp + 0x58]
imul edx, eax
shr edx, 0x18
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov byte [esp + 0x52], dl
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
and eax, 0xfefeff
mov edx, ebx
or ebx, dword [esp + 0x5c]
and edx, 0xfefeff
add edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and ebx, 0x10100
or eax, ebx
or eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58e309
cmp ecx, dword [esp + 0x40]
jl 0x58e150
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58e3af
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58e0b0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58e0b0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58e42d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x58e5e3
cmp edi, dword [esp + 0x6c]
jge 0x58e5e3
cmp ecx, dword [esp + 0x40]
jge 0x58e5e3
test esi, esi
jle 0x58e5e3
cmp ebp, dword [esp + 0x100]
jae 0x58e5bc
cmp eax, dword [esp + 0xbc]
jae 0x58e5bc
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebx]
movzx ebp, byte [eax + 0xa77168]
movzx eax, byte [edx + 3]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x58], eax
movzx eax, byte [edx]
mov eax, dword [ebx + eax*4]
imul eax, ebp
imul eax, dword [esp + 0x58]
imul eax, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shr eax, 0x18
mov byte [esp + 0x50], al
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
mov eax, dword [0x8e80c0]
imul ebx, ebp
imul ebx, dword [esp + 0x58]
movzx edx, byte [edx + 2]
imul ebx, eax
shr ebx, 0x18
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
imul edx, ebp
imul edx, dword [esp + 0x58]
imul edx, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
shr edx, 0x18
mov byte [esp + 0x52], dl
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
and eax, 0xfefeff
mov edx, ebx
or ebx, dword [esp + 0x5c]
and edx, 0xfefeff
add edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and ebx, 0x10100
or eax, ebx
or eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58e5e3
cmp ecx, dword [esp + 0x40]
jl 0x58e4a0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58e689
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58e400
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58e400
cmp dword [esp + 0x134], 0
je 0x58e9c3
jmp 0x58e6f0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58e71d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x58e8cc
cmp edi, dword [esp + 0x6c]
jge 0x58e8cc
cmp ecx, dword [esp + 0x40]
jge 0x58e8cc
test esi, esi
jle 0x58e8cc
cmp ebp, dword [esp + 0x100]
jae 0x58e8a1
cmp eax, dword [esp + 0xbc]
jae 0x58e8a1
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
je 0x58e8a1
movzx eax, byte [ebx]
movzx ebp, byte [eax + 0xa77168]
movzx eax, byte [edx]
mov ebx, dword [esp + 0xa0]
mov eax, dword [ebx + eax*4]
imul eax, ebp
imul eax, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shr eax, 0x10
mov byte [esp + 0x50], al
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
mov eax, dword [0x8e80c0]
imul ebx, ebp
movzx edx, byte [edx + 2]
imul ebx, eax
shr ebx, 0x10
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
imul edx, ebp
imul edx, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
shr edx, 0x10
mov byte [esp + 0x52], dl
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
and eax, 0xfefeff
mov edx, ebx
or ebx, dword [esp + 0x5c]
and edx, 0xfefeff
add edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and ebx, 0x10100
or eax, ebx
or eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58e8cc
cmp ecx, dword [esp + 0x40]
jl 0x58e790
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58e972
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58e6f0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58e6f0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58e9f0
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x58eb8f
cmp edi, dword [esp + 0x6c]
jge 0x58eb8f
cmp ecx, dword [esp + 0x40]
jge 0x58eb8f
test esi, esi
jle 0x58eb8f
cmp ebp, dword [esp + 0x100]
jae 0x58eb68
cmp eax, dword [esp + 0xbc]
jae 0x58eb68
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebx]
movzx ebp, byte [eax + 0xa77168]
movzx eax, byte [edx]
mov ebx, dword [esp + 0xa0]
mov eax, dword [ebx + eax*4]
imul eax, ebp
imul eax, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shr eax, 0x10
mov byte [esp + 0x50], al
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
mov eax, dword [0x8e80c0]
imul ebx, ebp
movzx edx, byte [edx + 2]
imul ebx, eax
shr ebx, 0x10
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
imul edx, ebp
imul edx, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
shr edx, 0x10
mov byte [esp + 0x52], dl
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
and eax, 0xfefeff
mov edx, ebx
or ebx, dword [esp + 0x5c]
and edx, 0xfefeff
add edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and ebx, 0x10100
or eax, ebx
or eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58eb8f
cmp ecx, dword [esp + 0x40]
jl 0x58ea63
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58ec35
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58e9c3
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58e9c3
cmp edx, 0xffffff
jne 0x58f76e
cmp dword [eax + 0x28], ebp
jne 0x58f22c
cmp dword [esp + 0x134], 0
je 0x58efa0
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58ecdd
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x58ee9c
cmp edi, dword [esp + 0x6c]
jge 0x58ee9c
cmp ecx, dword [esp + 0x40]
jge 0x58ee9c
test esi, esi
jle 0x58ee9c
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x58ee71
cmp eax, dword [esp + 0xbc]
jae 0x58ee71
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
mov al, byte [ebp + 3]
test al, al
je 0x58ee6d
cmp al, 0xff
movzx edx, byte [ebp]
jne 0x58ede9
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 1]
mov byte [esp + 0x50], al
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 2]
mov byte [esp + 0x51], al
movzx eax, byte [ebx + edx*4]
mov edx, dword [esp + 0x10]
mov ebp, dword [edx]
mov byte [esp + 0x52], al
jmp 0x58ee30
movzx eax, al
imul edx, eax
imul edx, dword [0x8e80c0]
sar edx, 0x10
mov byte [esp + 0x50], dl
movzx edx, byte [ebp + 1]
imul edx, eax
mov dword [esp + 0x58], eax
mov eax, dword [0x8e80c0]
imul edx, eax
sar edx, 0x10
mov byte [esp + 0x51], dl
movzx edx, byte [ebp + 2]
imul edx, dword [esp + 0x58]
imul edx, eax
mov eax, dword [esp + 0x10]
mov ebp, dword [eax]
sar edx, 0x10
mov byte [esp + 0x52], dl
mov edx, dword [esp + 0x50]
mov eax, edx
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xfefeff
and ebp, 0xfefeff
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
and edx, 0x10100
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58ee9c
cmp ecx, dword [esp + 0x40]
jl 0x58ed60
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58ef45
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x58ecb0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58ecb0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58efcd
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x58f135
cmp edi, dword [esp + 0x6c]
jge 0x58f135
cmp ecx, dword [esp + 0x40]
jge 0x58f135
test esi, esi
jle 0x58f135
cmp ebx, dword [esp + 0x100]
jae 0x58f10e
cmp eax, dword [esp + 0xbc]
jae 0x58f10e
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, ebx
cdq
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
and edx, 0x3ffff
add eax, edx
mov edx, dword [0x8e80c0]
sar eax, 0x12
movzx ebx, byte [ebp + eax*4]
lea eax, [ebp + eax*4]
movzx ebp, byte [eax + 3]
imul ebx, ebp
imul ebx, edx
sar ebx, 0x10
mov byte [esp + 0x50], bl
movzx ebx, byte [eax + 1]
movzx eax, byte [eax + 2]
imul ebx, ebp
imul eax, ebp
imul ebx, edx
imul eax, edx
mov edx, dword [esp + 0x10]
sar eax, 0x10
mov byte [esp + 0x52], al
mov eax, dword [edx]
sar ebx, 0x10
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
and eax, 0xfefeff
mov edx, ebx
or ebx, dword [esp + 0x5c]
and edx, 0xfefeff
add edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
and ebx, 0x10100
or eax, ebx
mov ebx, dword [esp + 0x1c]
or eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x58f135
cmp ecx, dword [esp + 0x40]
jl 0x58f040
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58f1db
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58efa0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58efa0
cmp dword [esp + 0x134], 0
je 0x58f4e0
lea ebx, [ebx]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58f26d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x58f3dd
cmp edi, dword [esp + 0x6c]
jge 0x58f3dd
cmp ecx, dword [esp + 0x40]
jge 0x58f3dd
test esi, esi
jle 0x58f3dd
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x58f3b6
cmp eax, dword [esp + 0xbc]
jae 0x58f3b6
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
mov edx, dword [esp + 0x58]
cmp dword [ebp], edx
je 0x58f3ae
movzx eax, byte [ebp]
movzx edx, byte [ebx + eax*4]
movzx eax, byte [ebp + 1]
mov byte [esp + 0x50], dl
movzx edx, byte [ebx + eax*4]
movzx eax, byte [ebp + 2]
mov byte [esp + 0x51], dl
movzx edx, byte [ebx + eax*4]
mov eax, dword [esp + 0x10]
mov ebp, dword [eax]
mov byte [esp + 0x52], dl
mov edx, dword [esp + 0x50]
mov eax, edx
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xfefeff
and ebp, 0xfefeff
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
and edx, 0x10100
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58f3dd
cmp ecx, dword [esp + 0x40]
jl 0x58f2f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58f486
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x58f240
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58f240
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58f50d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x58f674
cmp edi, dword [esp + 0x6c]
jge 0x58f674
cmp ecx, dword [esp + 0x40]
jge 0x58f674
test esi, esi
jle 0x58f674
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x58f64d
cmp eax, dword [esp + 0xbc]
jae 0x58f64d
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
movzx edx, byte [ebp]
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 1]
mov byte [esp + 0x50], al
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 2]
mov byte [esp + 0x51], al
movzx eax, byte [ebx + edx*4]
mov edx, dword [esp + 0x10]
mov ebp, dword [edx]
mov byte [esp + 0x52], al
mov edx, dword [esp + 0x50]
mov dword [esp + 0x5c], ebp
mov eax, edx
or edx, dword [esp + 0x5c]
and eax, 0xfefeff
and ebp, 0xfefeff
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and edx, 0x10100
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58f674
cmp ecx, dword [esp + 0x40]
jl 0x58f590
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58f71d
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x58f4e0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58f4e0
cmp dword [eax + 0x28], ebp
jne 0x58fd5e
cmp dword [esp + 0x134], 0
je 0x58fab0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58f7b2
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x58f9b3
cmp edi, dword [esp + 0x6c]
jge 0x58f9b3
cmp ecx, dword [esp + 0x40]
jge 0x58f9b3
test esi, esi
jle 0x58f9b3
cmp ebp, dword [esp + 0x100]
jae 0x58f988
cmp eax, dword [esp + 0xbc]
jae 0x58f988
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
mov al, byte [ebp + 3]
test al, al
je 0x58f984
cmp al, 0xff
movzx edx, byte [ebp]
jne 0x58f8dd
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 1]
mov byte [esp + 0x50], al
mov eax, dword [esp + 0xa4]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 2]
mov byte [esp + 0x51], al
mov eax, dword [esp + 0xa8]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
mov edx, dword [esp + 0x10]
mov ebp, dword [edx]
mov byte [esp + 0x52], al
jmp 0x58f947
movzx eax, al
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + edx*4]
imul edx, dword [esp + 0x58]
imul edx, dword [0x8e80c0]
movzx eax, byte [ebp + 1]
shr edx, 0x10
mov byte [esp + 0x50], dl
mov edx, dword [esp + 0xa4]
mov edx, dword [edx + eax*4]
imul edx, dword [esp + 0x58]
mov eax, dword [0x8e80c0]
imul edx, eax
shr edx, 0x10
mov byte [esp + 0x51], dl
movzx edx, byte [ebp + 2]
mov ebp, dword [esp + 0xa8]
mov edx, dword [ebp + edx*4]
imul edx, dword [esp + 0x58]
imul edx, eax
mov eax, dword [esp + 0x10]
mov ebp, dword [eax]
shr edx, 0x10
mov byte [esp + 0x52], dl
mov edx, dword [esp + 0x50]
mov eax, edx
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xfefeff
and ebp, 0xfefeff
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
and edx, 0x10100
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58f9b3
cmp ecx, dword [esp + 0x40]
jl 0x58f833
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58fa5c
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x58f785
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58f785
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58fadd
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x58fc67
cmp edi, dword [esp + 0x6c]
jge 0x58fc67
cmp ecx, dword [esp + 0x40]
jge 0x58fc67
test esi, esi
jle 0x58fc67
cmp ebx, dword [esp + 0x100]
jae 0x58fc40
cmp eax, dword [esp + 0xbc]
jae 0x58fc40
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, ebx
mov ebx, dword [esp + 0xa0]
cdq
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
movzx edx, byte [ebp + eax*4]
mov edx, dword [ebx + edx*4]
lea eax, [ebp + eax*4]
movzx ebp, byte [eax + 3]
imul edx, ebp
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shr edx, 0x10
mov byte [esp + 0x50], dl
movzx edx, byte [eax + 1]
mov ebx, dword [ebx + edx*4]
mov edx, dword [0x8e80c0]
imul ebx, ebp
movzx eax, byte [eax + 2]
imul ebx, edx
shr ebx, 0x10
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0xa8]
mov eax, dword [ebx + eax*4]
imul eax, ebp
imul eax, edx
mov edx, dword [esp + 0x10]
shr eax, 0x10
mov byte [esp + 0x52], al
mov eax, dword [edx]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
and eax, 0xfefeff
mov edx, ebx
or ebx, dword [esp + 0x5c]
and edx, 0xfefeff
add edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
and ebx, 0x10100
or eax, ebx
mov ebx, dword [esp + 0x1c]
or eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x58fc67
cmp ecx, dword [esp + 0x40]
jl 0x58fb50
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58fd0d
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x58fab0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58fab0
cmp dword [esp + 0x134], 0
je 0x590030
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x58fd9d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x58ff2f
cmp edi, dword [esp + 0x6c]
jge 0x58ff2f
cmp ecx, dword [esp + 0x40]
jge 0x58ff2f
test esi, esi
jle 0x58ff2f
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x58ff08
cmp eax, dword [esp + 0xbc]
jae 0x58ff08
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
mov edx, dword [esp + 0x58]
cmp dword [ebp], edx
je 0x58ff00
movzx eax, byte [ebp]
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + eax*4]
movzx edx, byte [ebx + eax*4]
movzx eax, byte [ebp + 1]
mov byte [esp + 0x50], dl
mov edx, dword [esp + 0xa4]
mov eax, dword [edx + eax*4]
movzx edx, byte [ebx + eax*4]
movzx eax, byte [ebp + 2]
mov byte [esp + 0x51], dl
mov edx, dword [esp + 0xa8]
mov eax, dword [edx + eax*4]
movzx edx, byte [ebx + eax*4]
mov eax, dword [esp + 0x10]
mov ebp, dword [eax]
mov byte [esp + 0x52], dl
mov edx, dword [esp + 0x50]
mov eax, edx
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xfefeff
and ebp, 0xfefeff
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
and edx, 0x10100
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x58ff2f
cmp ecx, dword [esp + 0x40]
jl 0x58fe20
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x58ffd8
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x58fd70
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x58fd70
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59005d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5901e2
cmp edi, dword [esp + 0x6c]
jge 0x5901e2
cmp ecx, dword [esp + 0x40]
jge 0x5901e2
test esi, esi
jle 0x5901e2
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x5901bb
cmp eax, dword [esp + 0xbc]
jae 0x5901bb
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
movzx edx, byte [ebp]
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 1]
mov byte [esp + 0x50], al
mov eax, dword [esp + 0xa4]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 2]
mov byte [esp + 0x51], al
mov eax, dword [esp + 0xa8]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
mov edx, dword [esp + 0x10]
mov ebp, dword [edx]
mov byte [esp + 0x52], al
mov edx, dword [esp + 0x50]
mov dword [esp + 0x5c], ebp
mov eax, edx
or edx, dword [esp + 0x5c]
and eax, 0xfefeff
and ebp, 0xfefeff
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and edx, 0x10100
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5901e2
cmp ecx, dword [esp + 0x40]
jl 0x5900e0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59028b
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x590030
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x590030
cmp dword [0x8e80c0], 0
je case.0x5bc480.5
mov edx, dword [0x8e80e4]
and edx, 0xffffff
cmp dword [esp + 0x138], 0
je 0x5919a6
cmp edx, 0xffffff
jne 0x590df2
cmp dword [eax + 0x28], ebp
jne 0x5908ab
cmp dword [esp + 0x134], 0
je 0x590611
jmp 0x590330
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59035d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x59051a
cmp edi, dword [esp + 0x6c]
jge 0x59051a
cmp ecx, dword [esp + 0x40]
jge 0x59051a
test esi, esi
jle 0x59051a
jmp 0x5903d6
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [esp + 0x100]
jae 0x5904f3
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0xbc]
jae 0x5904f3
mov eax, edx
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov al, byte [edx + 3]
test al, al
je 0x5904f3
cmp al, 0xff
jne 0x590483
movzx eax, byte [ebx]
movzx ebx, byte [edx]
movzx ebp, byte [eax + 0xa77168]
mov eax, dword [0x8e80c0]
imul ebx, ebp
imul ebx, eax
sar ebx, 0x10
mov byte [esp + 0x50], bl
movzx ebx, byte [edx + 1]
movzx edx, byte [edx + 2]
imul ebx, ebp
imul edx, ebp
imul ebx, eax
imul edx, eax
sar ebx, 0x10
sar edx, 0x10
jmp 0x5904c2
movzx ebx, byte [ebx]
movzx ebp, byte [ebx + 0xa77168]
movzx ebx, byte [edx]
movzx eax, al
imul ebp, eax
mov eax, dword [0x8e80c0]
imul ebx, ebp
imul ebx, eax
sar ebx, 0x18
mov byte [esp + 0x50], bl
movzx ebx, byte [edx + 1]
movzx edx, byte [edx + 2]
imul ebx, ebp
imul edx, ebp
imul ebx, eax
imul edx, eax
sar ebx, 0x18
sar edx, 0x18
mov byte [esp + 0x52], dl
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0x10]
mov edx, dword [ebx]
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
and eax, edx
mov dword [ebx], eax
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
add dword [esp + 0x1c], edx
add dword [esp + 0x14], eax
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
je 0x59051a
cmp ecx, dword [esp + 0x40]
jl 0x5903d2
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5905c0
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x590330
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x590330
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59063e
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5907b4
cmp edi, dword [esp + 0x6c]
jge 0x5907b4
cmp ecx, dword [esp + 0x40]
jge 0x5907b4
test esi, esi
jle 0x5907b4
cmp ebx, dword [esp + 0x100]
jae 0x590789
cmp eax, dword [esp + 0xbc]
jae 0x590789
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea ebp, [edx + eax*4]
movzx eax, byte [ebx]
movzx eax, byte [eax + 0xa77168]
movzx edx, byte [ebp + 3]
movzx ebx, byte [ebp]
imul eax, edx
mov edx, dword [0x8e80c0]
imul ebx, eax
imul ebx, edx
sar ebx, 0x18
mov byte [esp + 0x50], bl
movzx ebx, byte [ebp + 1]
imul ebx, eax
imul ebx, edx
sar ebx, 0x18
mov byte [esp + 0x51], bl
movzx ebx, byte [ebp + 2]
imul ebx, eax
imul ebx, edx
sar ebx, 0x18
mov byte [esp + 0x52], bl
mov ebx, dword [esp + 0x10]
mov edx, dword [ebx]
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
and eax, edx
mov dword [ebx], eax
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5907b4
cmp ecx, dword [esp + 0x40]
jl 0x5906b1
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59085a
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x590611
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x590611
cmp dword [esp + 0x134], 0
je 0x590b61
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5908ed
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x590a6a
cmp edi, dword [esp + 0x6c]
jge 0x590a6a
cmp ecx, dword [esp + 0x40]
jge 0x590a6a
test esi, esi
jle 0x590a6a
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x590a43
cmp eax, dword [esp + 0xbc]
jae 0x590a43
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
je 0x590a43
movzx eax, byte [ebx]
movzx eax, byte [eax + 0xa77168]
movzx ebx, byte [edx]
imul ebx, eax
imul ebx, dword [0x8e80c0]
sar ebx, 0x10
mov byte [esp + 0x50], bl
movzx ebx, byte [edx + 1]
movzx edx, byte [edx + 2]
imul ebx, eax
mov dword [esp + 0x2c], eax
imul edx, dword [esp + 0x2c]
mov eax, dword [0x8e80c0]
imul edx, eax
imul ebx, eax
sar edx, 0x10
mov byte [esp + 0x52], dl
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
sar ebx, 0x10
mov byte [esp + 0x51], bl
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebx, eax
shr ebx, 8
sub eax, ebx
and eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x590a6a
cmp ecx, dword [esp + 0x40]
jl 0x590960
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x590b10
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5908c0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5908c0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x590b8e
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x590cfb
cmp edi, dword [esp + 0x6c]
jge 0x590cfb
cmp ecx, dword [esp + 0x40]
jge 0x590cfb
test esi, esi
jle 0x590cfb
cmp ebx, dword [esp + 0x100]
jae 0x590cd0
cmp eax, dword [esp + 0xbc]
jae 0x590cd0
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebx]
movzx ebp, byte [eax + 0xa77168]
movzx ebx, byte [edx]
mov eax, dword [0x8e80c0]
imul ebx, ebp
imul ebx, eax
sar ebx, 0x10
mov byte [esp + 0x50], bl
movzx ebx, byte [edx + 1]
movzx edx, byte [edx + 2]
imul ebx, ebp
imul edx, ebp
imul ebx, eax
imul edx, eax
sar ebx, 0x10
sar edx, 0x10
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0x10]
mov byte [esp + 0x52], dl
mov edx, dword [ebx]
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
and eax, edx
mov dword [ebx], eax
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x590cfb
cmp ecx, dword [esp + 0x40]
jl 0x590c01
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x590da1
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x590b61
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x590b61
cmp dword [eax + 0x28], ebp
jne 0x59141a
cmp dword [esp + 0x134], 0
je 0x591150
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x590e3d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x591055
cmp edi, dword [esp + 0x6c]
jge 0x591055
cmp ecx, dword [esp + 0x40]
jge 0x591055
test esi, esi
jle 0x591055
jmp 0x590eb6
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [esp + 0x100]
jae 0x59102e
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0xbc]
jae 0x59102e
mov eax, edx
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov al, byte [edx + 3]
test al, al
je 0x59102e
cmp al, 0xff
jne 0x590f8c
movzx eax, byte [ebx]
movzx ebp, byte [eax + 0xa77168]
movzx eax, byte [edx]
mov ebx, dword [esp + 0xa0]
mov eax, dword [ebx + eax*4]
mov ebx, dword [esp + 0xa4]
imul eax, ebp
imul eax, dword [0x8e80c0]
shr eax, 0x10
mov byte [esp + 0x50], al
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
mov eax, dword [0x8e80c0]
imul ebx, ebp
movzx edx, byte [edx + 2]
imul ebx, eax
shr ebx, 0x10
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
imul edx, ebp
imul edx, eax
shr edx, 0x10
jmp 0x591001
movzx ebx, byte [ebx]
movzx ebp, byte [ebx + 0xa77168]
mov ebx, dword [esp + 0xa0]
movzx eax, al
mov dword [esp + 0x58], eax
movzx eax, byte [edx]
mov eax, dword [ebx + eax*4]
imul eax, ebp
imul eax, dword [esp + 0x58]
imul eax, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shr eax, 0x18
mov byte [esp + 0x50], al
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
mov eax, dword [0x8e80c0]
imul ebx, ebp
imul ebx, dword [esp + 0x58]
movzx edx, byte [edx + 2]
imul ebx, eax
shr ebx, 0x18
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
imul edx, ebp
imul edx, dword [esp + 0x58]
imul edx, eax
shr edx, 0x18
mov ebx, dword [esp + 0x10]
mov byte [esp + 0x52], dl
mov edx, dword [ebx]
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
and eax, edx
mov dword [ebx], eax
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
add dword [esp + 0x1c], edx
add dword [esp + 0x14], eax
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
je 0x591055
cmp ecx, dword [esp + 0x40]
jl 0x590eb2
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5910fb
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x590e10
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x590e10
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59117d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x591323
cmp edi, dword [esp + 0x6c]
jge 0x591323
cmp ecx, dword [esp + 0x40]
jge 0x591323
test esi, esi
jle 0x591323
cmp ebx, dword [esp + 0x100]
jae 0x5912f8
cmp eax, dword [esp + 0xbc]
jae 0x5912f8
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebx]
movzx ebp, byte [eax + 0xa77168]
movzx eax, byte [edx + 3]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x58], eax
movzx eax, byte [edx]
mov eax, dword [ebx + eax*4]
imul eax, ebp
imul eax, dword [esp + 0x58]
imul eax, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shr eax, 0x18
mov byte [esp + 0x50], al
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
mov eax, dword [0x8e80c0]
imul ebx, ebp
imul ebx, dword [esp + 0x58]
movzx edx, byte [edx + 2]
imul ebx, eax
shr ebx, 0x18
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
imul edx, ebp
imul edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x10]
imul edx, eax
shr edx, 0x18
mov byte [esp + 0x52], dl
mov edx, dword [ebx]
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
and eax, edx
mov dword [ebx], eax
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x591323
cmp ecx, dword [esp + 0x40]
jl 0x5911f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5913c9
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x591150
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x591150
cmp dword [esp + 0x134], 0
je 0x5916f3
jmp 0x591430
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59145d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5915fc
cmp edi, dword [esp + 0x6c]
jge 0x5915fc
cmp ecx, dword [esp + 0x40]
jge 0x5915fc
test esi, esi
jle 0x5915fc
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x5915d5
cmp eax, dword [esp + 0xbc]
jae 0x5915d5
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
je 0x5915d5
movzx eax, byte [ebx]
movzx eax, byte [eax + 0xa77168]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x2c], eax
movzx eax, byte [edx]
mov eax, dword [ebx + eax*4]
imul eax, dword [esp + 0x2c]
imul eax, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shr eax, 0x10
mov byte [esp + 0x50], al
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
imul ebx, dword [esp + 0x2c]
mov eax, dword [0x8e80c0]
movzx edx, byte [edx + 2]
imul ebx, eax
shr ebx, 0x10
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
imul edx, dword [esp + 0x2c]
imul edx, eax
shr edx, 0x10
mov byte [esp + 0x52], dl
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebx, eax
shr ebx, 8
sub eax, ebx
and eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x5915fc
cmp ecx, dword [esp + 0x40]
jl 0x5914d0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5916a2
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x591430
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x591430
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x591720
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5918af
cmp edi, dword [esp + 0x6c]
jge 0x5918af
cmp ecx, dword [esp + 0x40]
jge 0x5918af
test esi, esi
jle 0x5918af
cmp ebx, dword [esp + 0x100]
jae 0x591884
cmp eax, dword [esp + 0xbc]
jae 0x591884
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebx]
movzx ebp, byte [eax + 0xa77168]
movzx eax, byte [edx]
mov ebx, dword [esp + 0xa0]
mov eax, dword [ebx + eax*4]
imul eax, ebp
imul eax, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shr eax, 0x10
mov byte [esp + 0x50], al
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
mov eax, dword [0x8e80c0]
imul ebx, ebp
movzx edx, byte [edx + 2]
imul ebx, eax
shr ebx, 0x10
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x10]
imul edx, ebp
imul edx, eax
shr edx, 0x10
mov byte [esp + 0x52], dl
mov edx, dword [ebx]
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
and eax, edx
mov dword [ebx], eax
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5918af
cmp ecx, dword [esp + 0x40]
jl 0x591793
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x591955
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5916f3
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5916f3
cmp edx, 0xffffff
jne 0x592428
cmp dword [eax + 0x28], ebp
jne 0x591f1a
cmp dword [esp + 0x134], 0
je 0x591ca0
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5919fd
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x591ba0
cmp edi, dword [esp + 0x6c]
jge 0x591ba0
cmp ecx, dword [esp + 0x40]
jge 0x591ba0
test esi, esi
jle 0x591ba0
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x591b75
cmp eax, dword [esp + 0xbc]
jae 0x591b75
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
mov al, byte [ebp + 3]
test al, al
je 0x591b71
cmp al, 0xff
movzx edx, byte [ebp]
jne 0x591b03
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 1]
mov byte [esp + 0x50], al
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 2]
mov byte [esp + 0x51], al
movzx eax, byte [ebx + edx*4]
mov byte [esp + 0x52], al
jmp 0x591b44
movzx eax, al
imul edx, eax
imul edx, dword [0x8e80c0]
sar edx, 0x10
mov byte [esp + 0x50], dl
movzx edx, byte [ebp + 1]
imul edx, eax
mov dword [esp + 0x58], eax
mov eax, dword [0x8e80c0]
imul edx, eax
sar edx, 0x10
mov byte [esp + 0x51], dl
movzx edx, byte [ebp + 2]
imul edx, dword [esp + 0x58]
imul edx, eax
sar edx, 0x10
mov byte [esp + 0x52], dl
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x591ba0
cmp ecx, dword [esp + 0x40]
jl 0x591a80
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x591c49
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5919d0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5919d0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x591ccd
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x591e23
cmp edi, dword [esp + 0x6c]
jge 0x591e23
cmp ecx, dword [esp + 0x40]
jge 0x591e23
test esi, esi
jle 0x591e23
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x591e00
cmp eax, dword [esp + 0xbc]
jae 0x591e00
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
imul ebx, dword [esp + 0x98]
add ebx, dword [esp + 0x90]
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
movzx edx, byte [ebx + eax*4 + 3]
lea eax, [ebx + eax*4]
movzx ebx, byte [eax]
imul ebx, edx
imul ebx, dword [0x8e80c0]
sar ebx, 0x10
mov byte [esp + 0x50], bl
movzx ebx, byte [eax + 1]
movzx eax, byte [eax + 2]
imul ebx, edx
mov dword [esp + 0x58], edx
imul eax, dword [esp + 0x58]
mov edx, dword [0x8e80c0]
imul eax, edx
imul ebx, edx
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
sar eax, 0x10
mov byte [esp + 0x52], al
sar ebx, 0x10
mov byte [esp + 0x51], bl
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebx, eax
shr ebx, 8
sub eax, ebx
and eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x591e23
cmp ecx, dword [esp + 0x40]
jl 0x591d40
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x591ec9
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x591ca0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x591ca0
cmp dword [esp + 0x134], 0
je 0x5921b1
jmp 0x591f30
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x591f5d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x5920b7
cmp edi, dword [esp + 0x6c]
jge 0x5920b7
cmp ecx, dword [esp + 0x40]
jge 0x5920b7
test esi, esi
jle 0x5920b7
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x592090
cmp eax, dword [esp + 0xbc]
jae 0x592090
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
mov edx, dword [esp + 0x58]
cmp dword [ebp], edx
je 0x592088
movzx eax, byte [ebp]
movzx edx, byte [ebx + eax*4]
movzx eax, byte [ebp + 1]
mov byte [esp + 0x50], dl
movzx edx, byte [ebx + eax*4]
movzx eax, byte [ebp + 2]
mov byte [esp + 0x51], dl
movzx edx, byte [ebx + eax*4]
mov byte [esp + 0x52], dl
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5920b7
cmp ecx, dword [esp + 0x40]
jl 0x591fe0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x592160
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x591f30
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x591f30
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5921de
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x59232e
cmp edi, dword [esp + 0x6c]
jge 0x59232e
cmp ecx, dword [esp + 0x40]
jge 0x59232e
test esi, esi
jle 0x59232e
lea ecx, [ecx]
cmp ebp, dword [esp + 0x100]
jae 0x592307
cmp eax, dword [esp + 0xbc]
jae 0x592307
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
movzx edx, byte [ebp]
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 1]
mov byte [esp + 0x50], al
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 2]
mov byte [esp + 0x51], al
movzx eax, byte [ebx + edx*4]
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov byte [esp + 0x52], al
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x59232e
cmp ecx, dword [esp + 0x40]
jl 0x592260
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5923d7
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5921b1
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5921b1
cmp dword [eax + 0x28], ebp
jne 0x5929ec
cmp dword [esp + 0x134], 0
je 0x592750
nop
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59246d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x592651
cmp edi, dword [esp + 0x6c]
jge 0x592651
cmp ecx, dword [esp + 0x40]
jge 0x592651
test esi, esi
jle 0x592651
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x592626
cmp eax, dword [esp + 0xbc]
jae 0x592626
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
mov al, byte [ebp + 3]
test al, al
je 0x592622
cmp al, 0xff
movzx edx, byte [ebp]
jne 0x592591
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 1]
mov byte [esp + 0x50], al
mov eax, dword [esp + 0xa4]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 2]
mov byte [esp + 0x51], al
mov eax, dword [esp + 0xa8]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
mov byte [esp + 0x52], al
jmp 0x5925f5
movzx eax, al
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + edx*4]
imul edx, dword [esp + 0x58]
imul edx, dword [0x8e80c0]
movzx eax, byte [ebp + 1]
shr edx, 0x10
mov byte [esp + 0x50], dl
mov edx, dword [esp + 0xa4]
mov edx, dword [edx + eax*4]
imul edx, dword [esp + 0x58]
mov eax, dword [0x8e80c0]
imul edx, eax
shr edx, 0x10
mov byte [esp + 0x51], dl
movzx edx, byte [ebp + 2]
mov ebp, dword [esp + 0xa8]
mov edx, dword [ebp + edx*4]
imul edx, dword [esp + 0x58]
imul edx, eax
shr edx, 0x10
mov byte [esp + 0x52], dl
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x592651
cmp ecx, dword [esp + 0x40]
jl 0x5924f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5926fa
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x592440
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x592440
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59277d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5928f5
cmp edi, dword [esp + 0x6c]
jge 0x5928f5
cmp ecx, dword [esp + 0x40]
jge 0x5928f5
test esi, esi
jle 0x5928f5
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x5928d2
cmp eax, dword [esp + 0xbc]
jae 0x5928d2
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
imul ebx, dword [esp + 0x98]
add ebx, dword [esp + 0x90]
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
movzx edx, byte [ebx + eax*4 + 3]
lea eax, [ebx + eax*4]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x58], edx
movzx edx, byte [eax]
mov edx, dword [ebx + edx*4]
imul edx, dword [esp + 0x58]
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shr edx, 0x10
mov byte [esp + 0x50], dl
movzx edx, byte [eax + 1]
mov ebx, dword [ebx + edx*4]
imul ebx, dword [esp + 0x58]
mov edx, dword [0x8e80c0]
movzx eax, byte [eax + 2]
imul ebx, edx
shr ebx, 0x10
mov byte [esp + 0x51], bl
mov ebx, dword [esp + 0xa8]
mov eax, dword [ebx + eax*4]
imul eax, dword [esp + 0x58]
imul eax, edx
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
shr eax, 0x10
mov byte [esp + 0x52], al
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebx, eax
shr ebx, 8
sub eax, ebx
and eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x5928f5
cmp ecx, dword [esp + 0x40]
jl 0x5927f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59299b
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x592750
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x592750
cmp dword [esp + 0x134], 0
je 0x592ca3
lea ebx, [ebx]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x592a2d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x592ba9
cmp edi, dword [esp + 0x6c]
jge 0x592ba9
cmp ecx, dword [esp + 0x40]
jge 0x592ba9
test esi, esi
jle 0x592ba9
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x592b82
cmp eax, dword [esp + 0xbc]
jae 0x592b82
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
mov edx, dword [esp + 0x58]
cmp dword [ebp], edx
je 0x592b7a
movzx eax, byte [ebp]
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + eax*4]
movzx edx, byte [ebx + eax*4]
movzx eax, byte [ebp + 1]
mov byte [esp + 0x50], dl
mov edx, dword [esp + 0xa4]
mov eax, dword [edx + eax*4]
movzx edx, byte [ebx + eax*4]
movzx eax, byte [ebp + 2]
mov byte [esp + 0x51], dl
mov edx, dword [esp + 0xa8]
mov eax, dword [edx + eax*4]
movzx edx, byte [ebx + eax*4]
mov byte [esp + 0x52], dl
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x592ba9
cmp ecx, dword [esp + 0x40]
jl 0x592ab0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x592c52
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x592a00
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x592a00
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x592cd0
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x592e3c
cmp edi, dword [esp + 0x6c]
jge 0x592e3c
cmp ecx, dword [esp + 0x40]
jge 0x592e3c
test esi, esi
jle 0x592e3c
nop
cmp ebp, dword [esp + 0x100]
jae 0x592e15
cmp eax, dword [esp + 0xbc]
jae 0x592e15
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
movzx edx, byte [ebp]
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 1]
mov byte [esp + 0x50], al
mov eax, dword [esp + 0xa4]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
movzx edx, byte [ebp + 2]
mov byte [esp + 0x51], al
mov eax, dword [esp + 0xa8]
mov edx, dword [eax + edx*4]
movzx eax, byte [ebx + edx*4]
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov byte [esp + 0x52], al
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x592e3c
cmp ecx, dword [esp + 0x40]
jl 0x592d50
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x592ee5
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x592ca3
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x592ca3
mov edx, dword [0x8e80e4]
and edx, 0xffffff
cmp dword [esp + 0x138], 0
je 0x5945fe
cmp edx, 0xffffff
jne 0x593a5a
cmp dword [eax + 0x28], ebp
jne 0x59351f
cmp dword [esp + 0x134], 0
je 0x593280
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x592fa0
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x593187
cmp edi, dword [esp + 0x6c]
jge 0x593187
cmp ecx, dword [esp + 0x40]
jge 0x593187
test esi, esi
jle 0x593187
nop
cmp ebp, dword [esp + 0x100]
jae 0x593164
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0xbc]
jae 0x593164
mov eax, edx
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebx]
movzx eax, byte [eax + 0xa77168]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edx]
imul eax, ebx
cmp byte [edx + 3], 0xff
jne 0x5930ec
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx]
imul eax, ebx
mov ebx, dword [esp + 0x10]
sar eax, 0x10
mov byte [ebx], al
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx ebx, byte [eax + 0xa77168]
movzx eax, byte [edx + 1]
imul ebx, eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 1]
imul ebx, eax
mov eax, dword [esp + 0x10]
sar ebx, 0x10
mov byte [eax + 1], bl
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
movzx edx, byte [edx + 2]
imul ebx, edx
movzx edx, byte [eax + 2]
imul ebx, edx
sar ebx, 0x10
jmp 0x593161
movzx ebx, byte [edx + 3]
imul eax, ebx
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx]
imul eax, ebx
mov ebx, dword [esp + 0x10]
sar eax, 0x18
mov byte [ebx], al
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
movzx ebx, byte [edx + 1]
imul eax, ebx
movzx ebx, byte [edx + 3]
imul eax, ebx
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx + 1]
imul eax, ebx
mov ebx, dword [esp + 0x10]
sar eax, 0x18
mov byte [ebx + 1], al
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx ebx, byte [eax + 0xa77168]
movzx eax, byte [edx + 2]
movzx edx, byte [edx + 3]
imul ebx, eax
mov eax, dword [esp + 0x10]
imul ebx, edx
movzx edx, byte [eax + 2]
imul ebx, edx
sar ebx, 0x18
mov byte [eax + 2], bl
mov eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x14], eax
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
je 0x593187
cmp ecx, dword [esp + 0x40]
jl 0x593010
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59322d
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x592f73
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x592f73
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x5932a6
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x593428
cmp edi, dword [esp + 0x6c]
jge 0x593428
cmp ecx, dword [esp + 0x40]
jge 0x593428
test esi, esi
jle 0x593428
nop
cmp edx, dword [esp + 0x100]
jae 0x5933ff
cmp ebx, dword [esp + 0xbc]
jae 0x5933ff
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebx, 0x12
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebx]
movzx eax, byte [eax + 0xa77168]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edx + 3]
imul eax, ebx
movzx ebx, byte [edx]
imul eax, ebx
movzx ebx, byte [ebp]
imul eax, ebx
sar eax, 0x18
mov byte [ebp], al
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
movzx ebx, byte [edx + 1]
imul eax, ebx
movzx ebx, byte [edx + 3]
imul eax, ebx
movzx ebx, byte [ebp + 1]
imul eax, ebx
sar eax, 0x18
mov byte [ebp + 1], al
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
movzx ebx, byte [edx + 2]
movzx edx, byte [edx + 3]
imul eax, ebx
imul eax, edx
movzx edx, byte [ebp + 2]
imul eax, edx
mov edx, dword [esp + 0x1c]
sar eax, 0x18
mov byte [ebp + 2], al
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x593428
cmp ecx, dword [esp + 0x40]
jl 0x593320
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5934ce
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x593280
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x593280
cmp dword [esp + 0x134], 0
je 0x5937d0
lea ecx, [ecx]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59355d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5936d5
cmp edi, dword [esp + 0x6c]
jge 0x5936d5
cmp ecx, dword [esp + 0x40]
jge 0x5936d5
test esi, esi
jle 0x5936d5
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x5936ae
cmp eax, dword [esp + 0xbc]
jae 0x5936ae
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
mov dword [esp + 0x2c], ebx
je 0x5936ae
movzx eax, byte [ebx]
movzx eax, byte [eax + 0xa77168]
movzx ebx, byte [edx]
imul eax, ebx
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx]
imul eax, ebx
mov ebx, dword [esp + 0x10]
sar eax, 0x10
mov byte [ebx], al
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx ebx, byte [eax + 0xa77168]
movzx eax, byte [edx + 1]
imul ebx, eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 1]
imul ebx, eax
mov eax, dword [esp + 0x10]
sar ebx, 0x10
mov byte [eax + 1], bl
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
movzx edx, byte [edx + 2]
imul ebx, edx
movzx edx, byte [eax + 2]
imul ebx, edx
sar ebx, 0x10
mov byte [eax + 2], bl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x5936d5
cmp ecx, dword [esp + 0x40]
jl 0x5935d0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59377b
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x593530
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x593530
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x5937f6
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x593963
cmp edi, dword [esp + 0x6c]
jge 0x593963
cmp ecx, dword [esp + 0x40]
jge 0x593963
test esi, esi
jle 0x593963
nop
cmp edx, dword [esp + 0x100]
jae 0x59393a
cmp ebx, dword [esp + 0xbc]
jae 0x59393a
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
sar eax, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebx]
movzx eax, byte [eax + 0xa77168]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edx]
imul eax, ebx
movzx ebx, byte [ebp]
imul eax, ebx
sar eax, 0x10
mov byte [ebp], al
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
movzx ebx, byte [edx + 1]
imul eax, ebx
movzx ebx, byte [ebp + 1]
imul eax, ebx
sar eax, 0x10
mov byte [ebp + 1], al
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
movzx edx, byte [edx + 2]
imul eax, edx
movzx edx, byte [ebp + 2]
imul eax, edx
mov edx, dword [esp + 0x1c]
sar eax, 0x10
mov byte [ebp + 2], al
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x593963
cmp ecx, dword [esp + 0x40]
jl 0x593870
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x593a09
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5937d0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5937d0
cmp dword [eax + 0x28], ebp
jne 0x594084
cmp dword [esp + 0x134], 0
je 0x593db0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x593a9e
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x593cb9
cmp edi, dword [esp + 0x6c]
jge 0x593cb9
cmp ecx, dword [esp + 0x40]
jge 0x593cb9
test esi, esi
jle 0x593cb9
jmp 0x593b17
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [esp + 0x100]
jae 0x593c92
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0xbc]
jae 0x593c92
mov eax, edx
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea ebp, [edx + eax*4]
movzx eax, byte [ebx]
movzx edx, byte [eax + 0xa77168]
movzx eax, byte [ebp]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0xa0]
imul edx, dword [ebx + eax*4]
cmp byte [ebp + 3], 0xff
jne 0x593c10
mov eax, dword [esp + 0x10]
movzx ebx, byte [eax]
imul edx, ebx
shr edx, 0x10
mov byte [eax], dl
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
movzx edx, byte [ebp + 1]
mov ebx, eax
mov eax, dword [esp + 0xa4]
imul ebx, dword [eax + edx*4]
mov eax, dword [esp + 0x10]
movzx edx, byte [eax + 1]
imul ebx, edx
shr ebx, 0x10
mov byte [eax + 1], bl
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx edx, byte [ebp + 2]
movzx ebx, byte [ebx + 0xa77168]
mov ebp, dword [esp + 0xa8]
imul ebx, dword [ebp + edx*4]
movzx edx, byte [eax + 2]
imul ebx, edx
shr ebx, 0x10
mov byte [eax + 2], bl
jmp 0x593c92
movzx eax, byte [ebp + 3]
imul edx, eax
mov eax, dword [esp + 0x10]
movzx ebx, byte [eax]
imul edx, ebx
shr edx, 0x18
mov byte [eax], dl
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
movzx edx, byte [ebp + 1]
mov ebx, eax
mov eax, dword [esp + 0xa4]
imul ebx, dword [eax + edx*4]
movzx edx, byte [ebp + 3]
mov eax, dword [esp + 0x10]
imul ebx, edx
movzx edx, byte [eax + 1]
imul ebx, edx
mov edx, dword [esp + 0x2c]
shr ebx, 0x18
mov byte [eax + 1], bl
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
movzx eax, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
imul edx, dword [ebx + eax*4]
movzx eax, byte [ebp + 3]
imul edx, eax
mov eax, dword [esp + 0x10]
movzx ebx, byte [eax + 2]
imul edx, ebx
shr edx, 0x18
mov byte [eax + 2], dl
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
add dword [esp + 0x1c], edx
add dword [esp + 0x14], eax
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
je 0x593cb9
cmp ecx, dword [esp + 0x40]
jl 0x593b13
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x593d5f
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x593a71
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x593a71
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x593ddd
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x593f8d
cmp edi, dword [esp + 0x6c]
jge 0x593f8d
cmp ecx, dword [esp + 0x40]
jge 0x593f8d
test esi, esi
jle 0x593f8d
mov edx, dword [esp + 0x10]
jmp 0x593e60
cmp ebp, dword [esp + 0x100]
jae 0x593f64
cmp eax, dword [esp + 0xbc]
jae 0x593f64
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
mov ebp, dword [esp + 0xa0]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebx]
movzx eax, byte [eax + 0xa77168]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edx]
imul eax, dword [ebp + ebx*4]
movzx ebx, byte [edx + 3]
mov ebp, dword [esp + 0x10]
imul eax, ebx
movzx ebx, byte [ebp]
imul eax, ebx
mov ebx, dword [esp + 0x2c]
shr eax, 0x18
mov byte [ebp], al
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
movzx eax, byte [edx + 1]
mov ebp, dword [esp + 0xa4]
imul ebx, dword [ebp + eax*4]
movzx eax, byte [edx + 3]
mov ebp, dword [esp + 0x10]
imul ebx, eax
movzx eax, byte [ebp + 1]
imul ebx, eax
shr ebx, 0x18
mov byte [ebp + 1], bl
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx eax, byte [edx + 2]
movzx ebx, byte [ebx + 0xa77168]
mov ebp, dword [esp + 0xa8]
imul ebx, dword [ebp + eax*4]
movzx edx, byte [edx + 3]
mov ebp, dword [esp + 0x1c]
imul ebx, edx
mov edx, dword [esp + 0x10]
movzx eax, byte [edx + 2]
imul ebx, eax
mov eax, dword [esp + 0x14]
shr ebx, 0x18
mov byte [edx + 2], bl
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add edx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
je 0x593f8d
cmp ecx, dword [esp + 0x40]
jl 0x593e60
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x594033
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x593db0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x593db0
cmp dword [esp + 0x134], 0
je 0x594350
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5940bf
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x594259
cmp edi, dword [esp + 0x6c]
jge 0x594259
cmp ecx, dword [esp + 0x40]
jge 0x594259
test esi, esi
jle 0x594259
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x594232
cmp eax, dword [esp + 0xbc]
jae 0x594232
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x2c], ebx
je 0x594232
movzx eax, byte [ebx]
movzx ebx, byte [eax + 0xa77168]
movzx edx, byte [edx]
mov eax, dword [esp + 0xa0]
imul ebx, dword [eax + edx*4]
mov eax, dword [esp + 0x10]
movzx edx, byte [eax]
imul ebx, edx
shr ebx, 0x10
mov byte [eax], bl
mov eax, dword [esp + 0x5c]
movzx edx, byte [eax + 1]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
mov ebx, eax
mov eax, dword [esp + 0xa4]
imul ebx, dword [eax + edx*4]
mov eax, dword [esp + 0x10]
movzx edx, byte [eax + 1]
imul ebx, edx
shr ebx, 0x10
mov byte [eax + 1], bl
mov eax, dword [esp + 0x5c]
movzx edx, byte [eax + 2]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
mov ebx, eax
mov eax, dword [esp + 0xa8]
imul ebx, dword [eax + edx*4]
mov eax, dword [esp + 0x10]
movzx edx, byte [eax + 2]
imul ebx, edx
shr ebx, 0x10
mov byte [eax + 2], bl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x594259
cmp ecx, dword [esp + 0x40]
jl 0x594130
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5942ff
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x594092
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x594092
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x594376
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x594507
cmp edi, dword [esp + 0x6c]
jge 0x594507
cmp ecx, dword [esp + 0x40]
jge 0x594507
test esi, esi
jle 0x594507
nop
cmp edx, dword [esp + 0x100]
jae 0x5944de
cmp ebx, dword [esp + 0xbc]
jae 0x5944de
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebx]
movzx eax, byte [eax + 0xa77168]
mov dword [esp + 0x5c], edx
movzx edx, byte [edx]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0xa0]
imul eax, dword [ebx + edx*4]
movzx edx, byte [ebp]
imul eax, edx
mov ebx, dword [esp + 0xa4]
shr eax, 0x10
mov byte [ebp], al
mov eax, dword [esp + 0x5c]
movzx edx, byte [eax + 1]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul eax, dword [ebx + edx*4]
movzx edx, byte [ebp + 1]
imul eax, edx
mov ebx, dword [esp + 0xa8]
shr eax, 0x10
mov byte [ebp + 1], al
mov eax, dword [esp + 0x5c]
movzx edx, byte [eax + 2]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul eax, dword [ebx + edx*4]
movzx edx, byte [ebp + 2]
imul eax, edx
mov edx, dword [esp + 0x1c]
shr eax, 0x10
mov byte [ebp + 2], al
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x594507
cmp ecx, dword [esp + 0x40]
jl 0x5943f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5945ad
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x594350
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x594350
cmp edx, 0xffffff
jne 0x594ff1
cmp dword [eax + 0x28], ebp
jne 0x594b32
cmp dword [esp + 0x134], 0
je 0x5948d0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59464e
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5947cb
cmp edi, dword [esp + 0x6c]
jge 0x5947cb
cmp ecx, dword [esp + 0x40]
jge 0x5947cb
test esi, esi
jle 0x5947cb
mov edx, dword [esp + 0x10]
cmp ebp, dword [esp + 0x100]
jae 0x5947a6
cmp eax, dword [esp + 0xbc]
jae 0x5947a6
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
imul ebx, dword [esp + 0x98]
add ebx, dword [esp + 0x90]
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
lea edx, [ebx + eax*4]
mov al, byte [edx + 3]
cmp al, 0xff
mov dword [esp + 0x5c], edx
jne 0x594752
movzx eax, byte [edx]
mov edx, dword [esp + 0x10]
movzx ebx, byte [edx]
imul eax, ebx
sar eax, 8
mov byte [edx], al
movzx ebx, byte [edx + 1]
mov eax, dword [esp + 0x5c]
movzx eax, byte [eax + 1]
imul eax, ebx
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [esp + 0x5c]
movzx eax, byte [eax + 2]
movzx ebx, byte [edx + 2]
imul eax, ebx
sar eax, 8
mov byte [edx + 2], al
jmp 0x5947a2
movzx ebx, byte [edx]
movzx edx, al
imul ebx, edx
mov edx, dword [esp + 0x10]
movzx eax, byte [edx]
imul ebx, eax
mov eax, dword [esp + 0x5c]
sar ebx, 0x10
mov byte [edx], bl
movzx ebx, byte [eax + 1]
movzx eax, byte [eax + 3]
imul ebx, eax
movzx eax, byte [edx + 1]
imul ebx, eax
mov eax, dword [esp + 0x5c]
sar ebx, 0x10
mov byte [edx + 1], bl
movzx ebx, byte [eax + 2]
movzx eax, byte [eax + 3]
imul ebx, eax
movzx eax, byte [edx + 2]
imul ebx, eax
sar ebx, 0x10
mov byte [edx + 2], bl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add edx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
je 0x5947cb
cmp ecx, dword [esp + 0x40]
jl 0x5946c1
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x594875
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x594621
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x594621
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5948fd
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x594a3b
cmp edi, dword [esp + 0x6c]
jge 0x594a3b
cmp ecx, dword [esp + 0x40]
jge 0x594a3b
test esi, esi
jle 0x594a3b
mov ebp, dword [esp + 0x10]
cmp ebx, dword [esp + 0x100]
jae 0x594a16
cmp eax, dword [esp + 0xbc]
jae 0x594a16
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
movzx edx, byte [ebp + eax*4 + 3]
lea ebp, [ebp + eax*4]
movzx eax, byte [ebp]
imul edx, eax
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x10]
movzx eax, byte [ebp]
imul edx, eax
mov eax, dword [esp + 0x5c]
sar edx, 0x10
mov byte [ebp], dl
movzx edx, byte [eax + 1]
movzx eax, byte [eax + 3]
imul edx, eax
movzx eax, byte [ebp + 1]
imul edx, eax
mov eax, dword [esp + 0x5c]
sar edx, 0x10
mov byte [ebp + 1], dl
movzx edx, byte [eax + 2]
movzx eax, byte [eax + 3]
imul edx, eax
movzx eax, byte [ebp + 2]
imul edx, eax
mov eax, dword [esp + 0x14]
sar edx, 0x10
mov byte [ebp + 2], dl
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x594a3b
cmp ecx, dword [esp + 0x40]
jl 0x594970
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x594ae1
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5948d0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5948d0
cmp dword [esp + 0x134], 0
je 0x594da0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x594b6d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x594ca5
cmp edi, dword [esp + 0x6c]
jge 0x594ca5
cmp ecx, dword [esp + 0x40]
jge 0x594ca5
test esi, esi
jle 0x594ca5
mov ebp, dword [esp + 0x10]
cmp ebx, dword [esp + 0x100]
jae 0x594c80
cmp eax, dword [esp + 0xbc]
jae 0x594c80
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
sar eax, 0x12
cmp dword [ebp + eax*4], edx
lea ebp, [ebp + eax*4]
mov dword [esp + 0x5c], ebp
je 0x594c78
movzx eax, byte [ebp]
mov ebp, dword [esp + 0x10]
movzx edx, byte [ebp]
imul eax, edx
sar eax, 8
mov byte [ebp], al
mov eax, dword [esp + 0x5c]
movzx edx, byte [eax + 1]
movzx eax, byte [ebp + 1]
imul edx, eax
sar edx, 8
mov byte [ebp + 1], dl
mov edx, dword [esp + 0x5c]
movzx eax, byte [edx + 2]
movzx edx, byte [ebp + 2]
imul eax, edx
sar eax, 8
mov byte [ebp + 2], al
jmp 0x594c7c
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x594ca5
cmp ecx, dword [esp + 0x40]
jl 0x594be0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x594d4f
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x594b40
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x594b40
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x594dcd
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x594ef6
cmp edi, dword [esp + 0x6c]
jge 0x594ef6
cmp ecx, dword [esp + 0x40]
jge 0x594ef6
test esi, esi
jle 0x594ef6
mov ebp, dword [esp + 0x10]
cmp ebx, dword [esp + 0x100]
jae 0x594ed1
cmp eax, dword [esp + 0xbc]
jae 0x594ed1
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
movzx edx, byte [ebp + eax*4]
lea ebp, [ebp + eax*4]
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x10]
movzx eax, byte [ebp]
imul edx, eax
sar edx, 8
mov byte [ebp], dl
mov edx, dword [esp + 0x5c]
movzx eax, byte [edx + 1]
movzx edx, byte [ebp + 1]
imul eax, edx
sar eax, 8
mov byte [ebp + 1], al
mov eax, dword [esp + 0x5c]
movzx edx, byte [eax + 2]
movzx eax, byte [ebp + 2]
imul edx, eax
mov eax, dword [esp + 0x14]
sar edx, 8
mov byte [ebp + 2], dl
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x594ef6
cmp ecx, dword [esp + 0x40]
jl 0x594e40
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x594fa0
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x594da0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x594da0
cmp dword [eax + 0x28], ebp
jne 0x59556d
cmp dword [esp + 0x134], 0
je 0x5952e5
jmp 0x595010
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x595035
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5951ee
cmp edi, dword [esp + 0x6c]
jge 0x5951ee
cmp ecx, dword [esp + 0x40]
jge 0x5951ee
test esi, esi
jle 0x5951ee
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x5951c9
cmp eax, dword [esp + 0xbc]
jae 0x5951c9
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
mov ebp, dword [esp + 0xa0]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*4]
mov al, byte [edx + 3]
cmp al, 0xff
mov dword [esp + 0x5c], edx
jne 0x595161
movzx eax, byte [edx]
movzx edx, byte [ebx]
imul edx, dword [ebp + eax*4]
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0xa4]
shr edx, 8
mov byte [ebx], dl
movzx edx, byte [eax + 1]
movzx eax, byte [ebx + 1]
imul eax, dword [ebp + edx*4]
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0xa8]
shr eax, 8
mov byte [ebx + 1], al
movzx eax, byte [edx + 2]
movzx edx, byte [ebx + 2]
imul edx, dword [ebp + eax*4]
shr edx, 8
mov byte [ebx + 2], dl
jmp 0x5951c1
movzx edx, byte [edx]
movzx eax, al
imul eax, dword [ebp + edx*4]
movzx edx, byte [ebx]
imul eax, edx
mov ebp, dword [esp + 0xa4]
shr eax, 0x10
mov byte [ebx], al
mov eax, dword [esp + 0x5c]
movzx edx, byte [eax + 1]
movzx eax, byte [eax + 3]
imul eax, dword [ebp + edx*4]
movzx edx, byte [ebx + 1]
mov ebp, dword [esp + 0xa8]
imul eax, edx
shr eax, 0x10
mov byte [ebx + 1], al
mov eax, dword [esp + 0x5c]
movzx edx, byte [eax + 2]
movzx eax, byte [eax + 3]
imul eax, dword [ebp + edx*4]
movzx edx, byte [ebx + 2]
imul eax, edx
shr eax, 0x10
mov byte [ebx + 2], al
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5951ee
cmp ecx, dword [esp + 0x40]
jl 0x5950b0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x595294
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x595010
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x595010
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x595312
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x595476
cmp edi, dword [esp + 0x6c]
jge 0x595476
cmp ecx, dword [esp + 0x40]
jge 0x595476
test esi, esi
jle 0x595476
mov ebp, dword [esp + 0x10]
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x59544d
cmp eax, dword [esp + 0xbc]
jae 0x59544d
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
movzx edx, byte [ebp + eax*4]
movzx ebx, byte [ebp + eax*4 + 3]
lea eax, [ebp + eax*4]
mov ebp, dword [esp + 0xa0]
imul ebx, dword [ebp + edx*4]
mov ebp, dword [esp + 0x10]
movzx edx, byte [ebp]
imul ebx, edx
shr ebx, 0x10
mov byte [ebp], bl
movzx edx, byte [eax + 1]
movzx ebx, byte [eax + 3]
mov ebp, dword [esp + 0xa4]
imul ebx, dword [ebp + edx*4]
mov ebp, dword [esp + 0x10]
movzx edx, byte [ebp + 1]
imul ebx, edx
shr ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [eax + 2]
movzx eax, byte [eax + 3]
mov ebx, dword [esp + 0xa8]
imul eax, dword [ebx + edx*4]
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0x1c]
imul eax, edx
shr eax, 0x10
mov byte [ebp + 2], al
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x595476
cmp ecx, dword [esp + 0x40]
jl 0x595390
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59551c
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5952e5
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5952e5
cmp dword [esp + 0x134], 0
je 0x595800
jmp 0x595580
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5955ad
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x595706
cmp edi, dword [esp + 0x6c]
jge 0x595706
cmp ecx, dword [esp + 0x40]
jge 0x595706
test esi, esi
jle 0x595706
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x5956e3
cmp eax, dword [esp + 0xbc]
jae 0x5956e3
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
sar eax, 0x12
cmp dword [ebp + eax*4], edx
lea eax, [ebp + eax*4]
mov dword [esp + 0x5c], eax
je 0x5956df
movzx eax, byte [eax]
mov edx, dword [esp + 0x10]
movzx edx, byte [edx]
mov ebp, dword [esp + 0xa0]
imul edx, dword [ebp + eax*4]
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x5c]
shr edx, 8
mov byte [ebp], dl
movzx edx, byte [eax + 1]
movzx eax, byte [ebp + 1]
mov ebp, dword [esp + 0xa4]
imul eax, dword [ebp + edx*4]
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x5c]
shr eax, 8
mov byte [ebp + 1], al
movzx eax, byte [edx + 2]
movzx edx, byte [ebp + 2]
mov ebp, dword [esp + 0xa8]
imul edx, dword [ebp + eax*4]
mov eax, dword [esp + 0x10]
shr edx, 8
mov byte [eax + 2], dl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x595706
cmp ecx, dword [esp + 0x40]
jl 0x595620
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5957ac
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x595580
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x595580
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x595825
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov edx, eax
imul eax, dword [esp + 0x9c]
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add edx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x595972
cmp edi, dword [esp + 0x6c]
jge 0x595972
cmp ecx, dword [esp + 0x40]
jge 0x595972
test esi, esi
jle 0x595972
cmp ebp, dword [esp + 0x100]
jae 0x59594d
cmp eax, dword [esp + 0xbc]
jae 0x59594d
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
mov ebp, dword [esp + 0xa0]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
movzx edx, byte [ebx]
mov dword [esp + 0x5c], eax
movzx eax, byte [eax]
imul edx, dword [ebp + eax*4]
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0xa4]
shr edx, 8
mov byte [ebx], dl
movzx edx, byte [eax + 1]
movzx eax, byte [ebx + 1]
imul eax, dword [ebp + edx*4]
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0xa8]
shr eax, 8
mov byte [ebx + 1], al
movzx eax, byte [edx + 2]
movzx edx, byte [ebx + 2]
imul edx, dword [ebp + eax*4]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
shr edx, 8
mov byte [ebx + 2], dl
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x595972
cmp ecx, dword [esp + 0x40]
jl 0x5958a0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x595a18
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x595800
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x595800
mov edx, dword [0x8e80e4]
and edx, 0xffffff
cmp dword [esp + 0x138], 0
je 0x597424
cmp edx, 0xffffff
jne 0x596712
cmp dword [eax + 0x28], ebp
jne 0x596137
cmp dword [esp + 0x134], 0
je 0x595e40
jmp 0x595ab0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x595ad6
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x595d46
cmp edi, dword [esp + 0x6c]
jge 0x595d46
cmp ecx, dword [esp + 0x40]
jge 0x595d46
test esi, esi
jle 0x595d46
jmp 0x595b55
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [esp + 0x100]
jae 0x595d21
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0xbc]
jae 0x595d21
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebp]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edx]
imul ebx, eax
sar ebx, 8
movzx ebx, bl
sub ebx, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
cmp byte [edx + 3], 0xff
jne 0x595c7a
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp], bl
movzx ebx, byte [edx + 1]
movzx eax, byte [ebp + 1]
imul ebx, eax
sar ebx, 8
movzx ebx, bl
sub ebx, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [edx + 2]
movzx eax, byte [ebp + 2]
mov ebx, dword [esp + 0x2c]
imul edx, eax
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
sar edx, 8
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
jmp 0x595d21
movzx eax, byte [edx + 3]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
movzx ebx, byte [edx + 1]
imul ebx, eax
sar ebx, 8
movzx ebx, bl
sub ebx, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
movzx eax, byte [edx + 3]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp + 1], bl
movzx eax, byte [ebp + 2]
movzx ebx, byte [edx + 2]
imul ebx, eax
movzx edx, byte [edx + 3]
sar ebx, 8
movzx ebx, bl
sub ebx, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x60]
imul ebx, edx
imul ebx, dword [0x8e80c0]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp + 2], bl
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
add dword [esp + 0x1c], eax
add dword [esp + 0x14], edx
add ebp, 4
add ecx, 1
sub esi, 1
je 0x595d46
cmp ecx, dword [esp + 0x40]
jl 0x595b51
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x595dec
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x595ab0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x595ab0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x595e66
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x596040
cmp edi, dword [esp + 0x6c]
jge 0x596040
cmp ecx, dword [esp + 0x40]
jge 0x596040
test esi, esi
jle 0x596040
nop
cmp edx, dword [esp + 0x100]
jae 0x596017
cmp ebx, dword [esp + 0xbc]
jae 0x596017
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebp]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edx]
imul ebx, eax
sar ebx, 8
movzx ebx, bl
sub ebx, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
movzx eax, byte [edx + 3]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
movzx ebx, byte [edx + 1]
imul ebx, eax
sar ebx, 8
movzx ebx, bl
sub ebx, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
movzx eax, byte [edx + 3]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp + 1], bl
movzx eax, byte [ebp + 2]
movzx ebx, byte [edx + 2]
imul ebx, eax
movzx edx, byte [edx + 3]
sar ebx, 8
movzx ebx, bl
sub ebx, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x60]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x1c]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp + 2], bl
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x596040
cmp ecx, dword [esp + 0x40]
jl 0x595ee0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5960e6
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x595e40
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x595e40
cmp dword [esp + 0x134], 0
je 0x596440
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x596172
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x596340
cmp edi, dword [esp + 0x6c]
jge 0x596340
cmp ecx, dword [esp + 0x40]
jge 0x596340
test esi, esi
jle 0x596340
cmp ebp, dword [esp + 0x100]
jae 0x596319
cmp eax, dword [esp + 0xbc]
jae 0x596319
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x2c], ebx
je 0x596319
movzx edx, byte [edx]
mov eax, dword [esp + 0x10]
movzx ebx, byte [eax]
imul edx, ebx
mov dword [esp + 0x4c], ebx
sar edx, 8
movzx edx, dl
sub edx, ebx
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
imul edx, ebx
imul edx, dword [0x8e80c0]
mov ebx, edx
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [eax], bl
movzx edx, byte [eax + 1]
mov ebx, dword [esp + 0x5c]
movzx ebx, byte [ebx + 1]
imul ebx, edx
sar ebx, 8
movzx ebx, bl
sub ebx, edx
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [eax + 1], bl
movzx edx, byte [eax + 2]
mov ebx, dword [esp + 0x5c]
movzx ebx, byte [ebx + 2]
imul ebx, edx
sar ebx, 8
movzx ebx, bl
sub ebx, edx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x60]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [eax + 2], bl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x596340
cmp ecx, dword [esp + 0x40]
jl 0x5961e1
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5963e6
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x596145
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x596145
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x596466
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x59661b
cmp edi, dword [esp + 0x6c]
jge 0x59661b
cmp ecx, dword [esp + 0x40]
jge 0x59661b
test esi, esi
jle 0x59661b
nop
cmp edx, dword [esp + 0x100]
jae 0x5965f2
cmp ebx, dword [esp + 0xbc]
jae 0x5965f2
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*4]
mov dword [esp + 0x5c], edx
movzx edx, byte [edx]
add ebx, eax
movzx eax, byte [ebp]
add ebx, dword [esp + 0xac]
imul edx, eax
sar edx, 8
movzx edx, dl
sub edx, eax
mov dword [esp + 0x2c], ebx
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
imul edx, ebx
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0x2c]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp], dl
movzx eax, byte [ebp + 1]
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 1]
movzx ebx, byte [ebx]
imul edx, eax
movzx ebx, byte [ebx + 0xa77168]
sar edx, 8
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0x2c]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 1], dl
movzx eax, byte [ebp + 2]
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 2]
movzx ebx, byte [ebx]
imul edx, eax
movzx ebx, byte [ebx + 0xa77168]
sar edx, 8
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x59661b
cmp ecx, dword [esp + 0x40]
jl 0x5964e0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5966c1
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x596440
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x596440
cmp dword [eax + 0x28], ebp
jne 0x596e21
cmp dword [esp + 0x134], 0
je 0x596b00
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x596756
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x9c]
add ebx, dword [esp + 0x88]
add esi, 1
add eax, ebx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x596a08
cmp edi, dword [esp + 0x6c]
jge 0x596a08
cmp ecx, dword [esp + 0x40]
jge 0x596a08
test esi, esi
jle 0x596a08
cmp edx, dword [esp + 0x100]
jae 0x5969e3
cmp eax, dword [esp + 0xbc]
jae 0x5969e3
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebx, 0x12
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebp]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x4c]
imul ebx, eax
shr ebx, 8
movzx ebx, bl
sub ebx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
cmp byte [edx + 3], 0xff
jne 0x596918
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x4c]
imul ebx, eax
shr ebx, 8
movzx ebx, bl
sub ebx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [edx + 2]
movzx eax, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
imul edx, eax
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
shr edx, 8
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
jmp 0x5969db
movzx eax, byte [edx + 3]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x4c]
imul ebx, eax
shr ebx, 8
movzx ebx, bl
sub ebx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
movzx eax, byte [edx + 3]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp + 1], bl
movzx eax, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x60], eax
movzx eax, byte [edx + 2]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x60]
imul ebx, eax
movzx edx, byte [edx + 3]
shr ebx, 8
movzx ebx, bl
sub ebx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x60]
imul ebx, edx
imul ebx, dword [0x8e80c0]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp + 2], bl
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x596a08
cmp ecx, dword [esp + 0x40]
jl 0x5967d1
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x596aae
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x596730
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x596730
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x596b26
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x596d2a
cmp edi, dword [esp + 0x6c]
jge 0x596d2a
cmp ecx, dword [esp + 0x40]
jge 0x596d2a
test esi, esi
jle 0x596d2a
nop
cmp edx, dword [esp + 0x100]
jae 0x596d01
cmp ebx, dword [esp + 0xbc]
jae 0x596d01
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebp]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x4c]
imul ebx, eax
shr ebx, 8
movzx ebx, bl
sub ebx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
movzx eax, byte [edx + 3]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx + 1]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x4c]
imul ebx, eax
shr ebx, 8
movzx ebx, bl
sub ebx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
movzx eax, byte [edx + 3]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp + 1], bl
movzx eax, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x60], eax
movzx eax, byte [edx + 2]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x60]
imul ebx, eax
movzx edx, byte [edx + 3]
shr ebx, 8
movzx ebx, bl
sub ebx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x60]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x1c]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp + 2], bl
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x596d2a
cmp ecx, dword [esp + 0x40]
jl 0x596ba0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x596dd0
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x596b00
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x596b00
cmp dword [esp + 0x134], 0
je 0x597131
nop
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x596e56
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x9c]
add ebx, dword [esp + 0x88]
add esi, 1
add eax, ebx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x59703a
cmp edi, dword [esp + 0x6c]
jge 0x59703a
cmp ecx, dword [esp + 0x40]
jge 0x59703a
test esi, esi
jle 0x59703a
cmp edx, dword [esp + 0x100]
jae 0x597011
cmp eax, dword [esp + 0xbc]
jae 0x597011
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x2c], ebx
je 0x59700d
movzx edx, byte [edx]
movzx eax, byte [ebp]
mov ebx, dword [esp + 0xa0]
mov edx, dword [ebx + edx*4]
imul edx, eax
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
shr edx, 8
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp], dl
movzx eax, byte [ebp + 1]
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
imul edx, eax
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
shr edx, 8
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0xa8]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 1], dl
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
movzx eax, byte [ebp + 2]
mov ebx, dword [esp + 0x2c]
imul edx, eax
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
shr edx, 8
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x59703a
cmp ecx, dword [esp + 0x40]
jl 0x596ed1
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5970e0
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x596e30
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x596e30
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x597157
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x59732d
cmp edi, dword [esp + 0x6c]
jge 0x59732d
cmp ecx, dword [esp + 0x40]
jge 0x59732d
test esi, esi
jle 0x59732d
cmp edx, dword [esp + 0x100]
jae 0x597304
cmp ebx, dword [esp + 0xbc]
jae 0x597304
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*4]
mov dword [esp + 0x5c], edx
movzx edx, byte [edx]
add ebx, eax
add ebx, dword [esp + 0xac]
movzx eax, byte [ebp]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0xa0]
mov edx, dword [ebx + edx*4]
imul edx, eax
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
shr edx, 8
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp], dl
movzx eax, byte [ebp + 1]
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
imul edx, eax
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
shr edx, 8
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0xa8]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 1], dl
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
movzx eax, byte [ebp + 2]
mov ebx, dword [esp + 0x2c]
imul edx, eax
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
shr edx, 8
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x59732d
cmp ecx, dword [esp + 0x40]
jl 0x5971d0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5973d3
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x597131
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x597131
cmp edx, 0xffffff
jne 0x597f2f
cmp dword [eax + 0x28], ebp
jne 0x597a06
cmp dword [esp + 0x134], 0
je 0x597760
jmp 0x597450
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x597476
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x597666
cmp edi, dword [esp + 0x6c]
jge 0x597666
cmp ecx, dword [esp + 0x40]
jge 0x597666
test esi, esi
jle 0x597666
nop
cmp ebx, dword [esp + 0x100]
jae 0x597641
cmp eax, dword [esp + 0xbc]
jae 0x597641
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
movzx ebx, byte [edx + eax*4]
lea eax, [edx + eax*4]
movzx edx, byte [ebp]
imul ebx, edx
sar ebx, 8
movzx ebx, bl
sub ebx, edx
cmp byte [eax + 3], 0xff
jne 0x5975b8
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp], bl
movzx ebx, byte [eax + 1]
movzx edx, byte [ebp + 1]
imul ebx, edx
sar ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp + 1], bl
movzx eax, byte [eax + 2]
movzx edx, byte [ebp + 2]
imul eax, edx
sar eax, 8
movzx eax, al
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ebp + 2], al
jmp 0x597639
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
movzx ebx, byte [eax + 1]
imul ebx, edx
sar ebx, 8
movzx ebx, bl
sub ebx, edx
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [ebp + 2]
movzx ebx, byte [eax + 2]
movzx eax, byte [eax + 3]
imul ebx, edx
sar ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, eax
imul ebx, dword [0x8e80c0]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 2], bl
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x597666
cmp ecx, dword [esp + 0x40]
jl 0x5974f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59770c
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x597450
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x597450
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x597786
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x59790f
cmp edi, dword [esp + 0x6c]
jge 0x59790f
cmp ecx, dword [esp + 0x40]
jge 0x59790f
test esi, esi
jle 0x59790f
nop
cmp ebx, dword [esp + 0x100]
jae 0x5978ea
cmp eax, dword [esp + 0xbc]
jae 0x5978ea
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
movzx ebx, byte [edx + eax*4]
lea eax, [edx + eax*4]
movzx edx, byte [ebp]
imul ebx, edx
sar ebx, 8
movzx ebx, bl
sub ebx, edx
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
movzx ebx, byte [eax + 1]
imul ebx, edx
sar ebx, 8
movzx ebx, bl
sub ebx, edx
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [ebp + 2]
movzx ebx, byte [eax + 2]
movzx eax, byte [eax + 3]
imul ebx, edx
sar ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x14]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 2], bl
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x59790f
cmp ecx, dword [esp + 0x40]
jl 0x597800
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5979b5
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x597760
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x597760
cmp dword [esp + 0x134], 0
je 0x597cb3
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x597a41
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x597bbc
cmp edi, dword [esp + 0x6c]
jge 0x597bbc
cmp ecx, dword [esp + 0x40]
jge 0x597bbc
test esi, esi
jle 0x597bbc
mov ebp, dword [esp + 0x10]
jmp 0x597ac0
cmp ebx, dword [esp + 0x100]
jae 0x597b97
cmp eax, dword [esp + 0xbc]
jae 0x597b97
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
lea edx, [ebp + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x5c], edx
je 0x597b93
movzx edx, byte [edx]
movzx eax, byte [ebp]
imul edx, eax
sar edx, 8
movzx edx, dl
sub edx, eax
imul edx, dword [0x8e80c0]
shl eax, 8
add edx, eax
sar edx, 8
mov byte [ebp], dl
movzx eax, byte [ebp + 1]
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 1]
imul edx, eax
sar edx, 8
movzx edx, dl
sub edx, eax
imul edx, dword [0x8e80c0]
shl eax, 8
add edx, eax
sar edx, 8
mov byte [ebp + 1], dl
movzx eax, byte [ebp + 2]
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 2]
imul edx, eax
sar edx, 8
movzx edx, dl
sub edx, eax
imul edx, dword [0x8e80c0]
shl eax, 8
add edx, eax
sar edx, 8
mov byte [ebp + 2], dl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x597bbc
cmp ecx, dword [esp + 0x40]
jl 0x597ac0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x597c62
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x597a14
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x597a14
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x597cd8
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x597e38
cmp edi, dword [esp + 0x6c]
jge 0x597e38
cmp ecx, dword [esp + 0x40]
jge 0x597e38
test esi, esi
jle 0x597e38
cmp ebp, dword [esp + 0x100]
jae 0x597e13
cmp eax, dword [esp + 0xbc]
jae 0x597e13
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
movzx ebp, byte [ebx]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
movzx edx, byte [eax]
imul edx, ebp
sar edx, 8
movzx edx, dl
sub edx, ebp
imul edx, dword [0x8e80c0]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [ebx], dl
movzx edx, byte [eax + 1]
movzx ebp, byte [ebx + 1]
imul edx, ebp
sar edx, 8
movzx edx, dl
sub edx, ebp
imul edx, dword [0x8e80c0]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [ebx + 1], dl
movzx ebp, byte [ebx + 2]
movzx eax, byte [eax + 2]
imul eax, ebp
sar eax, 8
movzx edx, al
mov eax, dword [esp + 0x14]
sub edx, ebp
imul edx, dword [0x8e80c0]
shl ebp, 8
add edx, ebp
mov ebp, dword [esp + 0x1c]
sar edx, 8
mov byte [ebx + 2], dl
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x597e38
cmp ecx, dword [esp + 0x40]
jl 0x597d51
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x597ede
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x597cb3
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x597cb3
cmp dword [eax + 0x28], ebp
jne 0x598583
cmp dword [esp + 0x134], 0
je 0x5982b0
jmp 0x597f50
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x597f76
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5981b3
cmp edi, dword [esp + 0x6c]
jge 0x5981b3
cmp ecx, dword [esp + 0x40]
jge 0x5981b3
test esi, esi
jle 0x5981b3
nop
cmp ebx, dword [esp + 0x100]
jae 0x59818e
cmp eax, dword [esp + 0xbc]
jae 0x59818e
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
mov ebx, dword [esp + 0xa0]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
movzx edx, byte [ebp]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0x4c]
imul ebx, edx
shr ebx, 8
movzx ebx, bl
sub ebx, edx
cmp byte [eax + 3], 0xff
jne 0x5980e9
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 1]
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0x4c]
imul ebx, edx
shr ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp + 1], bl
movzx eax, byte [eax + 2]
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov eax, dword [ebx + eax*4]
imul eax, edx
shr eax, 8
movzx eax, al
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ebp + 2], al
jmp 0x598186
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 1]
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0x4c]
imul ebx, edx
shr ebx, 8
movzx ebx, bl
sub ebx, edx
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x60], edx
movzx edx, byte [eax + 2]
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0x60]
movzx eax, byte [eax + 3]
imul ebx, edx
shr ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, eax
imul ebx, dword [0x8e80c0]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 2], bl
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5981b3
cmp ecx, dword [esp + 0x40]
jl 0x597ff0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x598259
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x597f50
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x597f50
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x5982d6
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x59848c
cmp edi, dword [esp + 0x6c]
jge 0x59848c
cmp ecx, dword [esp + 0x40]
jge 0x59848c
test esi, esi
jle 0x59848c
nop
cmp ebx, dword [esp + 0x100]
jae 0x598467
cmp eax, dword [esp + 0xbc]
jae 0x598467
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
mov ebx, dword [esp + 0xa0]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
movzx edx, byte [ebp]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0x4c]
imul ebx, edx
shr ebx, 8
movzx ebx, bl
sub ebx, edx
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 1]
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0x4c]
imul ebx, edx
shr ebx, 8
movzx ebx, bl
sub ebx, edx
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x60], edx
movzx edx, byte [eax + 2]
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0x60]
movzx eax, byte [eax + 3]
imul ebx, edx
shr ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x14]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 2], bl
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x59848c
cmp ecx, dword [esp + 0x40]
jl 0x598350
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x598532
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5982b0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5982b0
cmp dword [esp + 0x134], 0
je 0x598850
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5985be
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x598751
cmp edi, dword [esp + 0x6c]
jge 0x598751
cmp ecx, dword [esp + 0x40]
jge 0x598751
test esi, esi
jle 0x598751
lea ecx, [ecx]
cmp ebp, dword [esp + 0x100]
jae 0x59872e
cmp eax, dword [esp + 0xbc]
jae 0x59872e
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
imul ebx, dword [esp + 0x98]
add ebx, dword [esp + 0x90]
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
lea edx, [ebx + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
mov dword [esp + 0x5c], edx
je 0x59872a
movzx edx, byte [edx]
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
mov ebx, dword [esp + 0xa0]
mov edx, dword [ebx + edx*4]
imul edx, eax
shr edx, 8
movzx edx, dl
sub edx, eax
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shl eax, 8
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, 8
mov byte [eax], dl
movzx eax, byte [eax + 1]
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
imul edx, eax
shr edx, 8
movzx edx, dl
sub edx, eax
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0xa8]
shl eax, 8
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, 8
mov byte [eax + 1], dl
movzx eax, byte [eax + 2]
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
imul edx, eax
shr edx, 8
movzx edx, dl
sub edx, eax
imul edx, dword [0x8e80c0]
shl eax, 8
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, 8
mov byte [eax + 2], dl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x598751
cmp ecx, dword [esp + 0x40]
jl 0x598630
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5987f7
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x598591
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x598591
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x598875
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x598a01
cmp edi, dword [esp + 0x6c]
jge 0x598a01
cmp ecx, dword [esp + 0x40]
jge 0x598a01
test esi, esi
jle 0x598a01
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x5989dc
cmp eax, dword [esp + 0xbc]
jae 0x5989dc
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
movzx ebp, byte [ebx]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x5c], eax
movzx eax, byte [eax]
mov eax, dword [edx + eax*4]
imul eax, ebp
shr eax, 8
movzx edx, al
sub edx, ebp
imul edx, dword [0x8e80c0]
mov eax, dword [esp + 0x5c]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [ebx], dl
movzx edx, byte [eax + 1]
movzx ebp, byte [ebx + 1]
mov eax, dword [esp + 0xa4]
mov edx, dword [eax + edx*4]
imul edx, ebp
shr edx, 8
movzx eax, dl
mov edx, dword [esp + 0x5c]
sub eax, ebp
imul eax, dword [0x8e80c0]
shl ebp, 8
add eax, ebp
sar eax, 8
mov byte [ebx + 1], al
movzx eax, byte [edx + 2]
movzx ebp, byte [ebx + 2]
mov edx, dword [esp + 0xa8]
mov eax, dword [edx + eax*4]
imul eax, ebp
shr eax, 8
movzx edx, al
mov eax, dword [esp + 0x14]
sub edx, ebp
imul edx, dword [0x8e80c0]
shl ebp, 8
add edx, ebp
mov ebp, dword [esp + 0x1c]
sar edx, 8
mov byte [ebx + 2], dl
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x598a01
cmp ecx, dword [esp + 0x40]
jl 0x5988f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x598aa7
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x598850
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x598850
mov edx, dword [0x8e80e4]
and edx, 0xffffff
cmp dword [esp + 0x138], 0
je 0x59a45b
cmp edx, 0xffffff
jne 0x599776
cmp dword [eax + 0x28], ebp
jne 0x5991b9
cmp dword [esp + 0x134], 0
je 0x598ed1
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x598b5b
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x598dda
cmp edi, dword [esp + 0x6c]
jge 0x598dda
cmp ecx, dword [esp + 0x40]
jge 0x598dda
test esi, esi
jle 0x598dda
jmp 0x598be4
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [esp + 0x100]
jae 0x598db5
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0xbc]
jae 0x598db5
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
cmp byte [edx + eax*4 + 3], 0xff
lea edx, [edx + eax*4]
movzx eax, byte [ebp]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x2c], ebx
jne 0x598cf6
movzx edx, byte [edx]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
not dl
movzx edx, dl
sub edx, eax
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x5c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp], bl
movzx edx, byte [edx + 1]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx eax, byte [ebp + 1]
movzx ebx, byte [ebx + 0xa77168]
not dl
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0x2c]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 1], dl
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 2]
movzx ebx, byte [ebx]
movzx eax, byte [ebp + 2]
movzx ebx, byte [ebx + 0xa77168]
not dl
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
jmp 0x598db5
mov dl, byte [edx]
not dl
mov dword [esp + 0x4c], eax
movzx eax, byte [ebx]
movzx ebx, byte [eax + 0xa77168]
movzx eax, dl
sub eax, dword [esp + 0x4c]
imul ebx, eax
mov eax, dword [esp + 0x5c]
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x18
add ebx, edx
sar ebx, 0x18
mov byte [ebp], bl
movzx ebx, byte [eax + 1]
movzx edx, byte [ebp + 1]
not bl
movzx ebx, bl
sub ebx, edx
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
imul ebx, edx
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x18
add ebx, edx
sar ebx, 0x18
mov byte [ebp + 1], bl
movzx ebx, byte [eax + 2]
movzx edx, byte [ebp + 2]
movzx eax, byte [eax + 3]
not bl
movzx ebx, bl
sub ebx, edx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
imul ebx, edx
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x60]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp + 2], bl
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
add dword [esp + 0x1c], edx
add dword [esp + 0x14], eax
add ebp, 4
add ecx, 1
sub esi, 1
je 0x598dda
cmp ecx, dword [esp + 0x40]
jl 0x598be0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x598e80
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x598b35
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x598b35
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x598efe
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5990c2
cmp edi, dword [esp + 0x6c]
jge 0x5990c2
cmp ecx, dword [esp + 0x40]
jge 0x5990c2
test esi, esi
jle 0x5990c2
cmp ebx, dword [esp + 0x100]
jae 0x599097
cmp eax, dword [esp + 0xbc]
jae 0x599097
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea ebp, [edx + eax*4]
movzx edx, byte [ebx]
movzx edx, byte [edx + 0xa77168]
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [ebp]
not bl
movzx ebx, bl
sub ebx, eax
imul edx, ebx
movzx ebx, byte [ebp + 3]
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x18
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, 0x18
mov byte [eax], dl
movzx ebx, byte [ebp + 1]
movzx edx, byte [eax + 1]
not bl
movzx ebx, bl
sub ebx, edx
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
imul ebx, edx
movzx edx, byte [ebp + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x18
add ebx, edx
sar ebx, 0x18
mov byte [eax + 1], bl
movzx ebx, byte [ebp + 2]
movzx edx, byte [eax + 2]
not bl
movzx ebx, bl
sub ebx, edx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
imul ebx, edx
movzx edx, byte [ebp + 3]
mov ebp, dword [esp + 0x60]
imul ebx, edx
imul ebx, dword [0x8e80c0]
shl ebp, 0x18
add ebx, ebp
sar ebx, 0x18
mov byte [eax + 2], bl
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5990c2
cmp ecx, dword [esp + 0x40]
jl 0x598f71
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x599168
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x598ed1
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x598ed1
cmp dword [esp + 0x134], 0
je 0x5994b0
jmp 0x5991d0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5991fd
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add eax, edx
add ebp, ebx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5993b8
cmp edi, dword [esp + 0x6c]
jge 0x5993b8
cmp ecx, dword [esp + 0x40]
jge 0x5993b8
test esi, esi
jle 0x5993b8
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x599391
cmp eax, dword [esp + 0xbc]
jae 0x599391
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x2c], ebx
je 0x599391
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov dl, byte [edx]
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
not dl
movzx edx, dl
sub edx, eax
imul ebx, edx
imul ebx, dword [0x8e80c0]
shl eax, 0x10
add ebx, eax
mov eax, dword [esp + 0x10]
sar ebx, 0x10
mov byte [eax], bl
mov ebx, dword [esp + 0x5c]
movzx ebx, byte [ebx + 1]
movzx edx, byte [eax + 1]
not bl
movzx ebx, bl
sub ebx, edx
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [eax + 1], bl
mov ebx, dword [esp + 0x5c]
movzx ebx, byte [ebx + 2]
movzx edx, byte [eax + 2]
not bl
movzx ebx, bl
sub ebx, edx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x60]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [eax + 2], bl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebp, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x5993b8
cmp ecx, dword [esp + 0x40]
jl 0x599270
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59945e
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5991d0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5991d0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x5994d6
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x59967f
cmp edi, dword [esp + 0x6c]
jge 0x59967f
cmp ecx, dword [esp + 0x40]
jge 0x59967f
test esi, esi
jle 0x59967f
nop
cmp edx, dword [esp + 0x100]
jae 0x599656
cmp ebx, dword [esp + 0xbc]
jae 0x599656
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*4]
mov dword [esp + 0x5c], edx
movzx edx, byte [edx]
add ebx, eax
add ebx, dword [esp + 0xac]
movzx eax, byte [ebp]
not dl
movzx edx, dl
sub edx, eax
mov dword [esp + 0x2c], ebx
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x5c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp], bl
movzx edx, byte [edx + 1]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx eax, byte [ebp + 1]
movzx ebx, byte [ebx + 0xa77168]
not dl
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0x2c]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 1], dl
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 2]
movzx ebx, byte [ebx]
movzx eax, byte [ebp + 2]
movzx ebx, byte [ebx + 0xa77168]
not dl
movzx edx, dl
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x59967f
cmp ecx, dword [esp + 0x40]
jl 0x599550
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x599725
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5994b0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5994b0
cmp dword [eax + 0x28], ebp
jne 0x599e62
cmp dword [esp + 0x134], 0
je 0x599b50
lea ecx, [ecx]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x5997b6
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x9c]
add ebx, dword [esp + 0x88]
add esi, 1
add eax, ebx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x599a50
cmp edi, dword [esp + 0x6c]
jge 0x599a50
cmp ecx, dword [esp + 0x40]
jge 0x599a50
test esi, esi
jle 0x599a50
cmp edx, dword [esp + 0x100]
jae 0x599a2b
cmp eax, dword [esp + 0xbc]
jae 0x599a2b
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebx, 0x12
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebp]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
not al
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0xa0]
movzx eax, al
movzx ebx, byte [ebx + eax*4]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
sub ebx, dword [esp + 0x4c]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
cmp byte [edx + 3], 0xff
jne 0x59996a
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx + 1]
not al
movzx eax, al
movzx ebx, byte [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp + 1], bl
mov dl, byte [edx + 2]
mov ebx, dword [esp + 0xa8]
movzx eax, byte [ebp + 2]
not dl
movzx edx, dl
movzx edx, byte [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
jmp 0x599a23
movzx eax, byte [edx + 3]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx + 1]
not al
movzx eax, al
movzx ebx, byte [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
movzx eax, byte [edx + 3]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp + 1], bl
movzx eax, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x60], eax
movzx eax, byte [edx + 2]
movzx edx, byte [edx + 3]
not al
movzx eax, al
movzx ebx, byte [ebx + eax*4]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
sub ebx, dword [esp + 0x60]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x60]
imul ebx, edx
imul ebx, dword [0x8e80c0]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp + 2], bl
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x599a50
cmp ecx, dword [esp + 0x40]
jl 0x599831
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x599af6
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x599790
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x599790
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x599b76
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x599d6b
cmp edi, dword [esp + 0x6c]
jge 0x599d6b
cmp ecx, dword [esp + 0x40]
jge 0x599d6b
test esi, esi
jle 0x599d6b
nop
cmp edx, dword [esp + 0x100]
jae 0x599d42
cmp ebx, dword [esp + 0xbc]
jae 0x599d42
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebx, 0x12
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebp]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
not al
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0xa0]
movzx eax, al
movzx ebx, byte [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
movzx eax, byte [edx + 3]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx + 1]
not al
movzx eax, al
movzx ebx, byte [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
movzx eax, byte [edx + 3]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp + 1], bl
movzx eax, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x60], eax
movzx eax, byte [edx + 2]
movzx edx, byte [edx + 3]
not al
movzx eax, al
movzx ebx, byte [ebx + eax*4]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
sub ebx, dword [esp + 0x60]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
mov eax, dword [esp + 0x60]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x1c]
shl eax, 0x18
add ebx, eax
sar ebx, 0x18
mov byte [ebp + 2], bl
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x599d6b
cmp ecx, dword [esp + 0x40]
jl 0x599bf0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x599e11
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x599b50
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x599b50
cmp dword [esp + 0x134], 0
je 0x59a170
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x599e96
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x9c]
add ebx, dword [esp + 0x88]
add esi, 1
add eax, ebx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x59a078
cmp edi, dword [esp + 0x6c]
jge 0x59a078
cmp ecx, dword [esp + 0x40]
jge 0x59a078
test esi, esi
jle 0x59a078
cmp edx, dword [esp + 0x100]
jae 0x59a04f
cmp eax, dword [esp + 0xbc]
jae 0x59a04f
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
mov dword [esp + 0x2c], ebx
je 0x59a04b
movzx eax, byte [ebp]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx]
not al
movzx eax, al
movzx ebx, byte [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp], bl
movzx eax, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx + 1]
not al
movzx eax, al
movzx ebx, byte [ebx + eax*4]
sub ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
movzx eax, byte [eax + 0xa77168]
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
sar ebx, 0x10
mov byte [ebp + 1], bl
mov dl, byte [edx + 2]
mov ebx, dword [esp + 0xa8]
movzx eax, byte [ebp + 2]
not dl
movzx edx, dl
movzx edx, byte [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x59a078
cmp ecx, dword [esp + 0x40]
jl 0x599f11
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59a11e
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x599e70
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x599e70
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x59a196
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov ebx, eax
imul eax, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add eax, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x14]
imul ebx, dword [esp + 0x48]
add ebx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jl 0x59a364
cmp edi, dword [esp + 0x6c]
jge 0x59a364
cmp ecx, dword [esp + 0x40]
jge 0x59a364
test esi, esi
jle 0x59a364
nop
cmp edx, dword [esp + 0x100]
jae 0x59a33b
cmp ebx, dword [esp + 0xbc]
jae 0x59a33b
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*4]
mov dword [esp + 0x5c], edx
movzx edx, byte [edx]
not dl
movzx edx, dl
add ebx, eax
add ebx, dword [esp + 0xac]
movzx eax, byte [ebp]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0xa0]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0xa4]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp], dl
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 1]
movzx eax, byte [ebp + 1]
not dl
movzx edx, dl
movzx edx, byte [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0xa8]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 1], dl
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 2]
movzx eax, byte [ebp + 2]
not dl
movzx edx, dl
movzx edx, byte [ebx + edx*4]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
sub edx, eax
imul edx, ebx
imul edx, dword [0x8e80c0]
shl eax, 0x10
add edx, eax
sar edx, 0x10
mov byte [ebp + 2], dl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
je 0x59a364
cmp ecx, dword [esp + 0x40]
jl 0x59a210
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59a40a
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59a170
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59a170
cmp edx, 0xffffff
jne 0x59af31
cmp dword [eax + 0x28], ebp
jne 0x59aa1a
cmp dword [esp + 0x134], 0
je 0x59a780
mov edi, edi
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x59a4a6
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x59a681
cmp edi, dword [esp + 0x6c]
jge 0x59a681
cmp ecx, dword [esp + 0x40]
jge 0x59a681
test esi, esi
jle 0x59a681
nop
cmp ebx, dword [esp + 0x100]
jae 0x59a65c
cmp eax, dword [esp + 0xbc]
jae 0x59a65c
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
movzx ebx, byte [edx + eax*4]
lea eax, [edx + eax*4]
movzx edx, byte [ebp]
not bl
movzx ebx, bl
sub ebx, edx
cmp byte [eax + 3], 0xff
jne 0x59a5db
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp], bl
movzx ebx, byte [eax + 1]
movzx edx, byte [ebp + 1]
not bl
movzx ebx, bl
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp + 1], bl
mov al, byte [eax + 2]
movzx edx, byte [ebp + 2]
not al
movzx eax, al
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ebp + 2], al
jmp 0x59a654
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp], bl
movzx ebx, byte [eax + 1]
movzx edx, byte [ebp + 1]
not bl
movzx ebx, bl
sub ebx, edx
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx ebx, byte [eax + 2]
movzx edx, byte [ebp + 2]
movzx eax, byte [eax + 3]
not bl
movzx ebx, bl
sub ebx, edx
imul ebx, eax
imul ebx, dword [0x8e80c0]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 2], bl
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x59a681
cmp ecx, dword [esp + 0x40]
jl 0x59a520
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59a727
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59a480
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59a480
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x59a7a6
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x59a923
cmp edi, dword [esp + 0x6c]
jge 0x59a923
cmp ecx, dword [esp + 0x40]
jge 0x59a923
test esi, esi
jle 0x59a923
nop
cmp ebx, dword [esp + 0x100]
jae 0x59a8fe
cmp eax, dword [esp + 0xbc]
jae 0x59a8fe
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
movzx ebx, byte [edx + eax*4]
not bl
lea eax, [edx + eax*4]
movzx edx, byte [ebp]
movzx ebx, bl
sub ebx, edx
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp], bl
movzx ebx, byte [eax + 1]
movzx edx, byte [ebp + 1]
not bl
movzx ebx, bl
sub ebx, edx
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx ebx, byte [eax + 2]
movzx edx, byte [ebp + 2]
movzx eax, byte [eax + 3]
not bl
movzx ebx, bl
sub ebx, edx
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x14]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 2], bl
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x59a923
cmp ecx, dword [esp + 0x40]
jl 0x59a820
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59a9c9
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59a780
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59a780
cmp dword [esp + 0x134], 0
je 0x59acc0
jmp 0x59aa30
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59aa5d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x59abc0
cmp edi, dword [esp + 0x6c]
jge 0x59abc0
cmp ecx, dword [esp + 0x40]
jge 0x59abc0
test esi, esi
jle 0x59abc0
mov ebp, dword [esp + 0x10]
cmp ebx, dword [esp + 0x100]
jae 0x59ab9b
cmp eax, dword [esp + 0xbc]
jae 0x59ab9b
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
lea edx, [ebp + eax*4]
mov eax, dword [esp + 0x58]
cmp dword [edx], eax
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x5c], edx
je 0x59ab97
movzx edx, byte [edx]
movzx eax, byte [ebp]
not dl
movzx edx, dl
sub edx, eax
imul edx, dword [0x8e80c0]
shl eax, 8
add edx, eax
sar edx, 8
mov byte [ebp], dl
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 1]
movzx eax, byte [ebp + 1]
not dl
movzx edx, dl
sub edx, eax
imul edx, dword [0x8e80c0]
shl eax, 8
add edx, eax
sar edx, 8
mov byte [ebp + 1], dl
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx + 2]
movzx eax, byte [ebp + 2]
not dl
movzx edx, dl
sub edx, eax
imul edx, dword [0x8e80c0]
shl eax, 8
add edx, eax
sar edx, 8
mov byte [ebp + 2], dl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x59abc0
cmp ecx, dword [esp + 0x40]
jl 0x59aad0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59ac66
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59aa30
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59aa30
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x59ace5
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x59ae3a
cmp edi, dword [esp + 0x6c]
jge 0x59ae3a
cmp ecx, dword [esp + 0x40]
jge 0x59ae3a
test esi, esi
jle 0x59ae3a
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x59ae15
cmp eax, dword [esp + 0xbc]
jae 0x59ae15
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
movzx ebp, byte [ebx]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
movzx edx, byte [eax]
not dl
movzx edx, dl
sub edx, ebp
imul edx, dword [0x8e80c0]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [ebx], dl
movzx edx, byte [eax + 1]
movzx ebp, byte [ebx + 1]
not dl
movzx edx, dl
sub edx, ebp
imul edx, dword [0x8e80c0]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [ebx + 1], dl
mov al, byte [eax + 2]
movzx ebp, byte [ebx + 2]
not al
movzx edx, al
mov eax, dword [esp + 0x14]
sub edx, ebp
imul edx, dword [0x8e80c0]
shl ebp, 8
add edx, ebp
mov ebp, dword [esp + 0x1c]
sar edx, 8
mov byte [ebx + 2], dl
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x59ae3a
cmp ecx, dword [esp + 0x40]
jl 0x59ad60
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59aee0
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59acc0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59acc0
cmp dword [eax + 0x28], ebp
jne 0x59b566
cmp dword [esp + 0x134], 0
je 0x59b2a0
jmp 0x59af50
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x59af76
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x59b1a6
cmp edi, dword [esp + 0x6c]
jge 0x59b1a6
cmp ecx, dword [esp + 0x40]
jge 0x59b1a6
test esi, esi
jle 0x59b1a6
nop
cmp ebx, dword [esp + 0x100]
jae 0x59b181
cmp eax, dword [esp + 0xbc]
jae 0x59b181
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
mov ebx, dword [esp + 0xa0]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
cmp byte [edx + eax*4 + 3], 0xff
lea eax, [edx + eax*4]
movzx edx, byte [ebp]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
not dl
movzx edx, dl
movzx ebx, byte [ebx + edx*4]
jne 0x59b0e0
mov edx, dword [esp + 0x4c]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 1]
not dl
movzx edx, dl
movzx ebx, byte [ebx + edx*4]
mov edx, dword [esp + 0x4c]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ebp + 1], bl
mov al, byte [eax + 2]
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
not al
movzx eax, al
movzx eax, byte [ebx + eax*4]
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ebp + 2], al
jmp 0x59b179
sub ebx, dword [esp + 0x4c]
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 1]
not dl
movzx edx, dl
movzx ebx, byte [ebx + edx*4]
sub ebx, dword [esp + 0x4c]
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x60], edx
movzx edx, byte [eax + 2]
movzx eax, byte [eax + 3]
not dl
movzx edx, dl
movzx ebx, byte [ebx + edx*4]
mov edx, dword [esp + 0x60]
sub ebx, edx
imul ebx, eax
imul ebx, dword [0x8e80c0]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 2], bl
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x59b1a6
cmp ecx, dword [esp + 0x40]
jl 0x59aff0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59b24c
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59af50
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59af50
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x59b2c6
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x59b46f
cmp edi, dword [esp + 0x6c]
jge 0x59b46f
cmp ecx, dword [esp + 0x40]
jge 0x59b46f
test esi, esi
jle 0x59b46f
nop
cmp ebx, dword [esp + 0x100]
jae 0x59b44a
cmp eax, dword [esp + 0xbc]
jae 0x59b44a
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
mov ebx, dword [esp + 0xa0]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
movzx edx, byte [ebp]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax]
not dl
movzx edx, dl
movzx ebx, byte [ebx + edx*4]
sub ebx, dword [esp + 0x4c]
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp], bl
movzx edx, byte [ebp + 1]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], edx
movzx edx, byte [eax + 1]
not dl
movzx edx, dl
movzx ebx, byte [ebx + edx*4]
sub ebx, dword [esp + 0x4c]
movzx edx, byte [eax + 3]
imul ebx, edx
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x4c]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 1], bl
movzx edx, byte [ebp + 2]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x60], edx
movzx edx, byte [eax + 2]
movzx eax, byte [eax + 3]
not dl
movzx edx, dl
movzx ebx, byte [ebx + edx*4]
mov edx, dword [esp + 0x60]
sub ebx, edx
imul ebx, eax
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x14]
shl edx, 0x10
add ebx, edx
sar ebx, 0x10
mov byte [ebp + 2], bl
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x59b46f
cmp ecx, dword [esp + 0x40]
jl 0x59b340
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59b515
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59b2a0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59b2a0
cmp dword [esp + 0x134], 0
je 0x59b822
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59b5a1
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*4]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x59b72b
cmp edi, dword [esp + 0x6c]
jge 0x59b72b
cmp ecx, dword [esp + 0x40]
jge 0x59b72b
test esi, esi
jle 0x59b72b
cmp ebx, dword [esp + 0x100]
jae 0x59b708
cmp eax, dword [esp + 0xbc]
jae 0x59b708
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
sar eax, 0x12
cmp dword [ebp + eax*4], edx
lea eax, [ebp + eax*4]
mov dword [esp + 0x5c], eax
je 0x59b704
movzx eax, byte [eax]
mov edx, dword [esp + 0x10]
movzx ebp, byte [edx]
not al
movzx edx, al
mov eax, dword [esp + 0xa0]
movzx edx, byte [eax + edx*4]
sub edx, ebp
imul edx, dword [0x8e80c0]
mov eax, dword [esp + 0x5c]
shl ebp, 8
add edx, ebp
mov ebp, dword [esp + 0x10]
sar edx, 8
mov byte [ebp], dl
mov dl, byte [eax + 1]
movzx ebp, byte [ebp + 1]
not dl
movzx eax, dl
mov edx, dword [esp + 0xa4]
movzx eax, byte [edx + eax*4]
mov edx, dword [esp + 0x5c]
sub eax, ebp
imul eax, dword [0x8e80c0]
shl ebp, 8
add eax, ebp
mov ebp, dword [esp + 0x10]
sar eax, 8
mov byte [ebp + 1], al
movzx eax, byte [edx + 2]
movzx ebp, byte [ebp + 2]
not al
movzx edx, al
mov eax, dword [esp + 0xa8]
movzx edx, byte [eax + edx*4]
mov eax, dword [esp + 0x10]
sub edx, ebp
imul edx, dword [0x8e80c0]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [eax + 2], dl
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add dword [esp + 0x10], 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x59b72b
cmp ecx, dword [esp + 0x40]
jl 0x59b610
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59b7d1
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59b574
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59b574
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jge 0x59b847
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*4]
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x59b9c7
cmp edi, dword [esp + 0x6c]
jge 0x59b9c7
cmp ecx, dword [esp + 0x40]
jge 0x59b9c7
test esi, esi
jle 0x59b9c7
cmp ebp, dword [esp + 0x100]
jae 0x59b9a2
cmp eax, dword [esp + 0xbc]
jae 0x59b9a2
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
movzx ebp, byte [ebx]
sar eax, 0x12
lea eax, [edx + eax*4]
mov dword [esp + 0x5c], eax
movzx eax, byte [eax]
not al
movzx edx, al
mov eax, dword [esp + 0xa0]
movzx edx, byte [eax + edx*4]
sub edx, ebp
imul edx, dword [0x8e80c0]
mov eax, dword [esp + 0x5c]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [ebx], dl
mov dl, byte [eax + 1]
movzx ebp, byte [ebx + 1]
not dl
movzx eax, dl
mov edx, dword [esp + 0xa4]
movzx eax, byte [edx + eax*4]
mov edx, dword [esp + 0x5c]
sub eax, ebp
imul eax, dword [0x8e80c0]
shl ebp, 8
add eax, ebp
sar eax, 8
mov byte [ebx + 1], al
movzx eax, byte [edx + 2]
movzx ebp, byte [ebx + 2]
not al
movzx edx, al
mov eax, dword [esp + 0xa8]
movzx edx, byte [eax + edx*4]
mov eax, dword [esp + 0x14]
sub edx, ebp
imul edx, dword [0x8e80c0]
shl ebp, 8
add edx, ebp
mov ebp, dword [esp + 0x1c]
sar edx, 8
mov byte [ebx + 2], dl
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x59b9c7
cmp ecx, dword [esp + 0x40]
jl 0x59b8c0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59ba6d
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59b822
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59b822
cmp dword [eax + 0x20], 1
jne 0x5a5ba3
mov eax, dword [0x8e80bc]
cmp eax, 0xb
ja case.0x5bc480.5
jmp dword [eax*4 + 0x5bd28c]
mov eax, dword [0x8e80c0]
cmp eax, 0xff
jne 0x59d03b
mov eax, dword [0x8e80e4]
and eax, 0xffffff
cmp dword [esp + 0x138], 0
je 0x59c73b
cmp eax, 0xffffff
jne 0x59c0de
cmp dword [esp + 0x134], 0
je 0x59be04
mov edi, edi
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59bb4d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x59bd0d
cmp edi, dword [esp + 0x6c]
jge 0x59bd0d
cmp ecx, dword [esp + 0x40]
jge 0x59bd0d
test esi, esi
jle 0x59bd0d
cmp ebp, dword [esp + 0x100]
jae 0x59bce2
cmp eax, dword [esp + 0xbc]
jae 0x59bce2
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
sar ebx, 0x12
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
add edx, eax
add edx, dword [esp + 0x90]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edx]
cmp ebx, dword [esp + 0x58]
je 0x59bce2
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov eax, edx
shl eax, 8
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x54]
movzx eax, word [eax + ebx*2]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov dword [esp + 0x2c], ebx
mov ebp, edx
and ebp, 0xf800
mov ebx, eax
and ebx, 0xf800
sub ebx, ebp
imul ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x60]
and ebp, 0xfff80000
add ebx, ebp
mov ebp, eax
mov dword [esp + 0x50], edx
and edx, 0x7e0
and ebp, 0x7e0
sub ebp, edx
imul ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x60]
and edx, 0xffffe000
add ebp, edx
mov edx, dword [esp + 0x50]
and eax, 0x1f
and edx, 0x1f
sub eax, edx
imul eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x60]
shr ebx, 8
shr ebp, 8
and edx, 0x1f00
and ebp, 0x7e0
add eax, edx
and ebx, 0xf800
or ebx, ebp
mov ebp, dword [esp + 0x1c]
shr eax, 8
or ebx, eax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x59bd0d
cmp ecx, dword [esp + 0x40]
jl 0x59bbc0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59bdb3
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59bb20
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59bb20
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59be31
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x59bfe7
cmp edi, dword [esp + 0x6c]
jge 0x59bfe7
cmp ecx, dword [esp + 0x40]
jge 0x59bfe7
test esi, esi
jle 0x59bfe7
jmp 0x59beb0
cmp ebp, dword [esp + 0x100]
jae 0x59bfc0
cmp eax, dword [esp + 0xbc]
jae 0x59bfc0
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx edx, byte [edx]
mov eax, dword [esp + 0x10]
movzx ebp, word [eax]
add ebx, dword [esp + 0xac]
mov eax, ebp
shl eax, 8
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
movzx edx, byte [ebx]
movzx edx, byte [edx + 0xa77168]
mov dword [esp + 0x2c], edx
mov ebx, eax
and ebx, 0xf800
mov edx, ebp
and edx, 0xf800
sub ebx, edx
imul ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x60]
and edx, 0xfff80000
add ebx, edx
mov edx, eax
and edx, 0x7e0
mov dword [esp + 0x50], ebp
and ebp, 0x7e0
sub edx, ebp
imul edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x60]
and ebp, 0xffffe000
add edx, ebp
shr edx, 8
and edx, 0x7e0
shr ebx, 8
mov ebp, dword [esp + 0x1c]
and ebx, 0xf800
or ebx, edx
mov edx, dword [esp + 0x50]
and eax, 0x1f
and edx, 0x1f
sub eax, edx
imul eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x60]
and edx, 0x1f00
add eax, edx
shr eax, 8
or ebx, eax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x59bfe7
cmp ecx, dword [esp + 0x40]
jl 0x59beb0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59c08d
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59be04
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59be04
cmp dword [esp + 0x134], 0
je 0x59c420
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x59c11d
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebp
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
add esi, 1
add eax, ebp
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x59c323
cmp edi, dword [esp + 0x6c]
jge 0x59c323
cmp ecx, dword [esp + 0x40]
jge 0x59c323
test esi, esi
jle 0x59c323
jmp 0x59c1a0
cmp edx, dword [esp + 0x100]
jae 0x59c2f6
cmp eax, dword [esp + 0xbc]
jae 0x59c2f6
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebp, eax
movzx eax, byte [edx]
add ebp, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
je 0x59c2f2
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
movzx edx, word [ebx]
mov dword [esp + 0x5c], edx
movzx ebx, dx
movzx edx, byte [ebp]
mov dl, byte [edx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov byte [esp + 0xdc], dl
movzx edx, dl
mov dword [esp + 0x2c], edx
mov edx, ebx
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, eax
mov dword [esp + 0x50], ebx
shr ebx, 5
shr edx, 5
and ebx, 0x3f
and edx, 0x3f
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0x50]
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
mov bx, word [esp + 0x5c]
mov dword [esp + 0x4c], eax
shr eax, 0xb
and edx, 0xffffffe0
lea edx, [ebp + edx*8]
mov ebp, dword [esp + 0xa8]
mov bp, word [ebp + eax*4]
movzx ax, byte [esp + 0xdc]
shr bx, 0xb
sub bp, bx
mov ebx, dword [esp + 0xa0]
imul bp, ax
mov eax, dword [esp + 0x5c]
shr eax, 3
and eax, 0x1f00
add bp, ax
mov eax, dword [esp + 0x4c]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x60]
sub ebx, eax
imul ebx, dword [esp + 0x2c]
add bp, bp
add bp, bp
shr edx, 3
add bp, bp
shl eax, 8
add ebx, eax
and edx, 0x7e0
and bp, 0xf800
shr ebx, 8
or dx, bp
or dx, bx
mov ebx, dword [esp + 0x10]
mov word [ebx], dx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x59c323
cmp ecx, dword [esp + 0x40]
jl 0x59c1a0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59c3c9
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59c0f0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59c0f0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x59c44e
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov eax, edx
imul edx, dword [esp + 0x9c]
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x59c644
cmp edi, dword [esp + 0x6c]
jge 0x59c644
cmp ecx, dword [esp + 0x40]
jge 0x59c644
test esi, esi
jle 0x59c644
jmp 0x59c4d0
cmp ebx, dword [esp + 0x100]
jae 0x59c61b
cmp eax, dword [esp + 0xbc]
jae 0x59c61b
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx edx, byte [edx]
add ebx, dword [esp + 0xac]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
movzx edx, word [ebp]
mov dword [esp + 0x5c], edx
movzx ebp, dx
movzx edx, byte [ebx]
mov dl, byte [edx + 0xa77168]
mov ebx, dword [esp + 0xa4]
mov byte [esp + 0xdc], dl
movzx edx, dl
mov dword [esp + 0x2c], edx
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, eax
mov dword [esp + 0x50], ebp
shr ebp, 5
shr edx, 5
and ebp, 0x3f
and edx, 0x3f
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0x50]
sub ebx, ebp
imul ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0xa8]
mov dword [esp + 0x4c], eax
shr eax, 0xb
mov bp, word [ebp + eax*4]
movzx ax, byte [esp + 0xdc]
and edx, 0xffffffe0
lea edx, [ebx + edx*8]
mov bx, word [esp + 0x5c]
shr bx, 0xb
sub bp, bx
mov ebx, dword [esp + 0xa0]
imul bp, ax
mov eax, dword [esp + 0x5c]
shr eax, 3
and eax, 0x1f00
add bp, ax
mov eax, dword [esp + 0x4c]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x60]
sub ebx, eax
imul ebx, dword [esp + 0x2c]
add bp, bp
add bp, bp
shr edx, 3
add bp, bp
shl eax, 8
add ebx, eax
mov eax, dword [esp + 0x14]
and bp, 0xf800
and edx, 0x7e0
or dx, bp
mov ebp, dword [esp + 0x10]
shr ebx, 8
or dx, bx
mov ebx, dword [esp + 0x1c]
mov word [ebp], dx
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x59c644
cmp ecx, dword [esp + 0x40]
jl 0x59c4d0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59c6ea
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59c420
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59c420
cmp eax, 0xffffff
jne 0x59cb6a
cmp dword [esp + 0x134], 0
je 0x59c961
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59c781
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x59c86a
cmp edi, dword [esp + 0x6c]
jge 0x59c86a
cmp ecx, dword [esp + 0x40]
jge 0x59c86a
test esi, esi
jle 0x59c86a
cmp ebx, dword [esp + 0x100]
jae 0x59c84b
cmp eax, dword [esp + 0xbc]
jae 0x59c84b
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
add eax, ebp
movzx eax, byte [eax]
cmp eax, dword [esp + 0x58]
je 0x59c847
mov edx, dword [esp + 0x54]
mov ax, word [edx + eax*2]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x59c86a
cmp ecx, dword [esp + 0x40]
jl 0x59c7f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59c910
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59c754
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59c754
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59c98e
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x59ca73
cmp edi, dword [esp + 0x6c]
jge 0x59ca73
cmp ecx, dword [esp + 0x40]
jge 0x59ca73
test esi, esi
jle 0x59ca73
lea ecx, [ecx]
cmp ebx, dword [esp + 0x100]
jae 0x59ca54
cmp eax, dword [esp + 0xbc]
jae 0x59ca54
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
add ebp, dword [esp + 0x90]
movzx edx, byte [eax + ebp]
mov eax, dword [esp + 0x54]
mov dx, word [eax + edx*2]
mov eax, dword [esp + 0x10]
mov word [eax], dx
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x59ca73
cmp ecx, dword [esp + 0x40]
jl 0x59ca00
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59cb19
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59c961
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59c961
cmp dword [esp + 0x134], 0
je 0x59cde0
jmp 0x59cb80
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59cbad
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x59cce9
cmp edi, dword [esp + 0x6c]
jge 0x59cce9
cmp ecx, dword [esp + 0x40]
jge 0x59cce9
test esi, esi
jle 0x59cce9
cmp ebx, dword [esp + 0x100]
jae 0x59ccc2
cmp eax, dword [esp + 0xbc]
jae 0x59ccc2
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
add eax, ebp
movzx eax, byte [eax]
cmp eax, dword [esp + 0x58]
je 0x59ccbe
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
mov ebp, dword [esp + 0xa8]
mov ebx, eax
shr ebx, 0xb
mov bx, word [ebp + ebx*4]
mov ebp, dword [esp + 0xa4]
mov edx, eax
shr edx, 5
shl bx, 6
and edx, 0x3f
or bx, word [ebp + edx*4]
mov edx, dword [esp + 0xa0]
shl bx, 5
and eax, 0x1f
or bx, word [edx + eax*4]
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x59cce9
cmp ecx, dword [esp + 0x40]
jl 0x59cc20
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59cd8f
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59cb80
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59cb80
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59ce0d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x59cf44
cmp edi, dword [esp + 0x6c]
jge 0x59cf44
cmp ecx, dword [esp + 0x40]
jge 0x59cf44
test esi, esi
jle 0x59cf44
cmp ebx, dword [esp + 0x100]
jae 0x59cf1d
cmp eax, dword [esp + 0xbc]
jae 0x59cf1d
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
movzx edx, byte [eax + ebp]
add eax, ebp
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
mov ebp, dword [esp + 0xa8]
mov ebx, eax
shr ebx, 0xb
mov bx, word [ebp + ebx*4]
mov ebp, dword [esp + 0xa4]
mov edx, eax
shr edx, 5
shl bx, 6
and edx, 0x3f
or bx, word [ebp + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
shl bx, 5
or bx, word [edx + eax*4]
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x59cf44
cmp ecx, dword [esp + 0x40]
jl 0x59ce80
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59cfea
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59cde0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59cde0
test eax, eax
je case.0x5bc480.5
mov eax, dword [0x8e80e4]
and eax, 0xffffff
cmp dword [esp + 0x138], 0
je 0x59dc9c
cmp eax, 0xffffff
jne 0x59d64a
cmp dword [esp + 0x134], 0
je 0x59d370
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59d0a1
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x59d271
cmp edi, dword [esp + 0x6c]
jge 0x59d271
cmp ecx, dword [esp + 0x40]
jge 0x59d271
test esi, esi
jle 0x59d271
jmp 0x59d120
cmp ebp, dword [esp + 0x100]
jae 0x59d246
cmp eax, dword [esp + 0xbc]
jae 0x59d246
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
je 0x59d246
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x2c], ebx
mov ebx, edx
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, eax
mov ebp, edx
and ebp, 0xf800
and ebx, 0xf800
sub ebx, ebp
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov ebp, edx
and ebp, 0xfffff800
shl ebp, 0x10
add ebx, ebp
mov ebp, eax
and ebp, 0x7e0
mov dword [esp + 0x50], edx
and edx, 0x7e0
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xffffffe0
shl edx, 0x10
add ebp, edx
mov edx, dword [esp + 0x60]
and eax, 0x1f
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [0x8e80c0]
shr ebx, 0x10
shr ebp, 0x10
shl edx, 0x10
and ebp, 0x7e0
add eax, edx
and ebx, 0xf800
or ebx, ebp
mov ebp, dword [esp + 0x1c]
shr eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x59d271
cmp ecx, dword [esp + 0x40]
jl 0x59d120
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59d317
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59d074
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59d074
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59d39d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x59d553
cmp edi, dword [esp + 0x6c]
jge 0x59d553
cmp ecx, dword [esp + 0x40]
jge 0x59d553
test esi, esi
jle 0x59d553
cmp ebp, dword [esp + 0x100]
jae 0x59d52c
cmp eax, dword [esp + 0xbc]
jae 0x59d52c
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
add edx, eax
add edx, dword [esp + 0x90]
movzx ebx, byte [ebx]
movzx edx, byte [edx]
movzx ebx, byte [ebx + 0xa77168]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x2c], ebx
mov ebx, edx
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, eax
mov ebp, edx
and ebp, 0xf800
and ebx, 0xf800
sub ebx, ebp
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov ebp, edx
and ebp, 0xfffff800
shl ebp, 0x10
add ebx, ebp
mov ebp, eax
and ebp, 0x7e0
mov dword [esp + 0x50], edx
and edx, 0x7e0
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xffffffe0
and eax, 0x1f
shl edx, 0x10
add ebp, edx
mov edx, dword [esp + 0x60]
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [0x8e80c0]
shr ebx, 0x10
shr ebp, 0x10
shl edx, 0x10
add eax, edx
and ebp, 0x7e0
and ebx, 0xf800
shr eax, 0x10
or ebx, ebp
mov ebp, dword [esp + 0x1c]
or ebx, eax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x59d553
cmp ecx, dword [esp + 0x40]
jl 0x59d410
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59d5f9
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59d370
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59d370
cmp dword [esp + 0x134], 0
je 0x59d980
jmp 0x59d660
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x59d68d
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebp
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
add esi, 1
add eax, ebp
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x59d881
cmp edi, dword [esp + 0x6c]
jge 0x59d881
cmp ecx, dword [esp + 0x40]
jge 0x59d881
test esi, esi
jle 0x59d881
jmp 0x59d710
cmp edx, dword [esp + 0x100]
jae 0x59d854
cmp eax, dword [esp + 0xbc]
jae 0x59d854
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebp, eax
movzx eax, byte [edx]
add ebp, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
je 0x59d850
mov edx, dword [esp + 0x54]
movzx edx, word [edx + eax*2]
movzx eax, word [ebx]
movzx ebx, byte [ebp]
movzx ebx, byte [ebx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], edx
shr edx, 5
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
and edx, 0x3f
mov ebp, dword [ebp + edx*4]
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov ebx, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0xb
add ebp, edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x50], eax
shr eax, 0xb
shr edx, 0xb
mov ebx, dword [ebx + edx*4]
sub ebx, eax
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 5
add ebx, eax
mov eax, dword [esp + 0x4c]
shr ebx, 5
and ebx, 0xf800
shr ebp, 0xb
and ebp, 0x7e0
or ebp, ebx
mov ebx, dword [esp + 0xa0]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x50]
and edx, 0x1f
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
and ebx, 0x1f
or ebp, ebx
mov ebx, dword [esp + 0x10]
mov word [ebx], bp
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x59d881
cmp ecx, dword [esp + 0x40]
jl 0x59d710
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59d927
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59d660
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59d660
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x59d9ae
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov eax, edx
imul edx, dword [esp + 0x9c]
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x59dba5
cmp edi, dword [esp + 0x6c]
jge 0x59dba5
cmp ecx, dword [esp + 0x40]
jge 0x59dba5
test esi, esi
jle 0x59dba5
jmp 0x59da30
cmp ebx, dword [esp + 0x100]
jae 0x59db7c
cmp eax, dword [esp + 0xbc]
jae 0x59db7c
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
add edx, eax
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
add edx, dword [esp + 0x90]
mov eax, dword [esp + 0x54]
movzx edx, byte [edx]
movzx edx, word [eax + edx*2]
movzx eax, word [ebp]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], edx
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
shr edx, 5
and edx, 0x3f
mov edx, dword [ebp + edx*4]
sub edx, ebx
imul edx, dword [esp + 0x2c]
imul edx, dword [0x8e80c0]
mov ebp, dword [esp + 0xa8]
mov ebx, eax
and ebx, 0xffffffe0
shl ebx, 0xb
add edx, ebx
mov ebx, dword [esp + 0x4c]
shr ebx, 0xb
mov ebx, dword [ebp + ebx*4]
mov dword [esp + 0x50], eax
shr eax, 0xb
sub ebx, eax
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
shr edx, 0xb
and edx, 0x7e0
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 5
add ebx, eax
mov eax, dword [esp + 0x58]
shr ebx, 5
and ebx, 0xf800
or eax, ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x4c]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x50]
and edx, 0x1f
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov ebp, dword [esp + 0x10]
shl eax, 0x10
add ebx, eax
mov eax, dword [esp + 0x58]
shr ebx, 0x10
and ebx, 0x1f
or eax, ebx
mov ebx, dword [esp + 0x1c]
mov word [ebp], ax
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x59dba5
cmp ecx, dword [esp + 0x40]
jl 0x59da30
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59dc4b
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59d980
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59d980
cmp eax, 0xffffff
jne 0x59e241
cmp dword [esp + 0x134], 0
je 0x59df80
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59dce2
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x59de82
cmp edi, dword [esp + 0x6c]
jge 0x59de82
cmp ecx, dword [esp + 0x40]
jge 0x59de82
test esi, esi
jle 0x59de82
cmp ebx, dword [esp + 0x100]
jae 0x59de57
cmp eax, dword [esp + 0xbc]
jae 0x59de57
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx eax, byte [eax]
cmp eax, dword [esp + 0x58]
je 0x59de53
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov dword [esp + 0x50], edx
mov ebx, eax
shr edx, 5
shr ebx, 5
and edx, 0x3f
and ebx, 0x3f
sub ebx, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
and edx, 0x3f
add dx, word [ebp + ebx*4]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x4c], eax
shr eax, 0xb
shr ebx, 0xb
sub eax, ebx
movzx ebx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x50]
shl dx, 5
shl bx, 0xb
or dx, bx
mov word [esp + 0xdc], dx
mov edx, dword [esp + 0x4c]
movzx ebx, word [esp + 0xdc]
and eax, 0x1f
and edx, 0x1f
sub edx, eax
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + edx*4]
or bx, ax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x59de82
cmp ecx, dword [esp + 0x40]
jl 0x59dd61
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59df2b
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59dcb5
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59dcb5
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59dfad
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x59e147
cmp edi, dword [esp + 0x6c]
jge 0x59e147
cmp ecx, dword [esp + 0x40]
jge 0x59e147
test esi, esi
jle 0x59e147
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x59e120
cmp eax, dword [esp + 0xbc]
jae 0x59e120
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [eax]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov dword [esp + 0x50], edx
mov ebx, eax
shr ebx, 5
shr edx, 5
and edx, 0x3f
and ebx, 0x3f
sub ebx, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
and edx, 0x3f
add dx, word [ebp + ebx*4]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x4c], eax
shr eax, 0xb
shr ebx, 0xb
sub eax, ebx
movzx ebx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x50]
shl dx, 5
shl bx, 0xb
or dx, bx
mov word [esp + 0xdc], dx
mov edx, dword [esp + 0x4c]
movzx ebx, word [esp + 0xdc]
and eax, 0x1f
and edx, 0x1f
sub edx, eax
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + edx*4]
or bx, ax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x59e147
cmp ecx, dword [esp + 0x40]
jl 0x59e030
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59e1f0
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59df80
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59df80
cmp dword [esp + 0x134], 0
je 0x59e540
nop
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59e27d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x59e43d
cmp edi, dword [esp + 0x6c]
jge 0x59e43d
cmp ecx, dword [esp + 0x40]
jge 0x59e43d
test esi, esi
jle 0x59e43d
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x59e412
cmp eax, dword [esp + 0xbc]
jae 0x59e412
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx eax, byte [eax]
cmp eax, dword [esp + 0x58]
je 0x59e40e
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x4c], eax
shr eax, 5
movzx edx, dx
and eax, 0x3f
mov eax, dword [ebx + eax*4]
mov dword [esp + 0x50], edx
mov ebx, edx
shr edx, 5
and edx, 0x3f
sub eax, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
and edx, 0x3f
add dx, word [ebp + eax*4]
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0xa8]
shr eax, 0xb
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0xdc]
shr ebx, 0xb
sub eax, ebx
mov bx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x4c]
shl bx, 0xb
shl dx, 5
or dx, bx
mov ebx, dword [esp + 0x50]
and ebx, 0x1f
and eax, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + ebx*4]
or dx, ax
mov eax, dword [esp + 0x10]
mov word [eax], dx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x59e43d
cmp ecx, dword [esp + 0x40]
jl 0x59e300
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59e4e6
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59e250
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59e250
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59e56d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x59e723
cmp edi, dword [esp + 0x6c]
jge 0x59e723
cmp ecx, dword [esp + 0x40]
jge 0x59e723
test esi, esi
jle 0x59e723
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x59e6fc
cmp eax, dword [esp + 0xbc]
jae 0x59e6fc
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [eax]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], edx
shr eax, 5
movzx edx, dx
and eax, 0x3f
mov eax, dword [ebx + eax*4]
mov dword [esp + 0x50], edx
mov ebx, edx
shr edx, 5
and edx, 0x3f
sub eax, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
shr ebx, 0xb
and edx, 0x3f
add dx, word [ebp + eax*4]
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0xa8]
shr eax, 0xb
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0xdc]
sub eax, ebx
mov bx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x4c]
shl bx, 0xb
shl dx, 5
or dx, bx
mov ebx, dword [esp + 0x50]
and ebx, 0x1f
and eax, 0x1f
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + ebx*4]
mov ebx, dword [esp + 0x1c]
or dx, ax
mov eax, dword [esp + 0x10]
mov word [eax], dx
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x59e723
cmp ecx, dword [esp + 0x40]
jl 0x59e5f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59e7cc
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x59e540
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59e540
cmp dword [0x8e80c0], 0
je case.0x5bc480.5
mov eax, dword [0x8e80e4]
and eax, 0xffffff
cmp dword [esp + 0x138], 0
je 0x59f416
cmp eax, 0xffffff
jne 0x59ee0e
cmp dword [esp + 0x134], 0
je 0x59eb40
jmp 0x59e860
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59e88d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x14]
imul ebp, dword [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add ebp, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
jl 0x59ea42
cmp edi, dword [esp + 0x6c]
jge 0x59ea42
cmp ecx, dword [esp + 0x40]
jge 0x59ea42
test esi, esi
jle 0x59ea42
lea esp, [esp]
cmp eax, dword [esp + 0x100]
jae 0x59ea17
cmp ebp, dword [esp + 0xbc]
jae 0x59ea17
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebp, eax
movzx eax, byte [edx]
add ebp, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
je 0x59ea13
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov ebp, eax
mov dword [esp + 0x4c], eax
and ebp, 0xf800
imul ebp, edx
and eax, 0x7e0
imul eax, edx
shr ebp, 0x13
mov bp, word [ebx + ebp*4]
shr eax, 0xd
shl bp, 6
add bp, word [ebx + eax*4]
mov eax, dword [esp + 0x4c]
and eax, 0x1f
imul eax, edx
shr eax, 8
shl bp, 5
add bp, word [ebx + eax*4]
mov eax, dword [esp + 0x10]
movzx edx, word [eax]
movzx ebp, bp
movzx eax, dx
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
add eax, dword [esp + 0x44]
add ebp, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
je 0x59ea42
cmp ecx, dword [esp + 0x40]
jl 0x59e910
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59eaeb
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x59e860
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59e860
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59eb6d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x59ed14
cmp edi, dword [esp + 0x6c]
jge 0x59ed14
cmp ecx, dword [esp + 0x40]
jge 0x59ed14
test esi, esi
jle 0x59ed14
lea esp, [esp]
cmp edx, dword [esp + 0x100]
jae 0x59eced
cmp eax, dword [esp + 0xbc]
jae 0x59eced
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebp, 0x12
and edx, 0x3ffff
add eax, edx
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebp, eax
add ebp, dword [esp + 0xac]
movzx edx, byte [edx]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov ebp, eax
mov dword [esp + 0x4c], eax
and ebp, 0xf800
imul ebp, edx
and eax, 0x7e0
imul eax, edx
shr ebp, 0x13
mov bp, word [ebx + ebp*4]
shr eax, 0xd
shl bp, 6
add bp, word [ebx + eax*4]
mov eax, dword [esp + 0x4c]
and eax, 0x1f
imul eax, edx
shr eax, 8
shl bp, 5
add bp, word [ebx + eax*4]
mov eax, dword [esp + 0x10]
movzx edx, word [eax]
movzx ebp, bp
movzx eax, dx
and eax, 0xf7def7df
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x59ed14
cmp ecx, dword [esp + 0x40]
jl 0x59ebf0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59edbd
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x59eb40
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59eb40
cmp dword [esp + 0x134], 0
je 0x59f124
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59ee4d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x14]
imul ebp, dword [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add ebp, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
jl 0x59f02a
cmp edi, dword [esp + 0x6c]
jge 0x59f02a
cmp ecx, dword [esp + 0x40]
jge 0x59f02a
test esi, esi
jle 0x59f02a
lea esp, [esp]
cmp eax, dword [esp + 0x100]
jae 0x59efff
cmp ebp, dword [esp + 0xbc]
jae 0x59efff
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebp, eax
movzx eax, byte [edx]
add ebp, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
je 0x59effb
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], edx
mov edx, eax
mov dword [esp + 0x4c], eax
shr edx, 5
shr eax, 0xb
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
imul edx, dword [esp + 0x2c]
mov eax, dword [ebp + eax*4]
imul eax, dword [esp + 0x2c]
shr eax, 8
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x4c]
shr edx, 8
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
imul eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shr eax, 8
shl bp, 5
add bp, word [ebx + eax*4]
movzx eax, dx
movzx ebp, bp
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
add eax, dword [esp + 0x44]
add ebp, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
je 0x59f02a
cmp ecx, dword [esp + 0x40]
jl 0x59eed0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59f0d3
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x59ee20
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59ee20
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59f151
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x59f31c
cmp edi, dword [esp + 0x6c]
jge 0x59f31c
cmp ecx, dword [esp + 0x40]
jge 0x59f31c
test esi, esi
jle 0x59f31c
cmp edx, dword [esp + 0x100]
jae 0x59f2f5
cmp eax, dword [esp + 0xbc]
jae 0x59f2f5
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebp, eax
movzx edx, byte [edx]
add ebp, dword [esp + 0xac]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], edx
mov edx, eax
mov dword [esp + 0x4c], eax
shr edx, 5
shr eax, 0xb
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
imul edx, dword [esp + 0x2c]
mov eax, dword [ebp + eax*4]
imul eax, dword [esp + 0x2c]
shr eax, 8
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x4c]
shr edx, 8
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
imul eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shr eax, 8
shl bp, 5
add bp, word [ebx + eax*4]
movzx eax, dx
movzx ebp, bp
and eax, 0xf7def7df
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x59f31c
cmp ecx, dword [esp + 0x40]
jl 0x59f1d0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59f3c5
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x59f124
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59f124
cmp eax, 0xffffff
jne 0x59f96a
cmp dword [esp + 0x134], 0
je 0x59f6d4
nop
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59f45d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x59f5da
cmp edi, dword [esp + 0x6c]
jge 0x59f5da
cmp ecx, dword [esp + 0x40]
jge 0x59f5da
test esi, esi
jle 0x59f5da
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x59f5b3
cmp eax, dword [esp + 0xbc]
jae 0x59f5b3
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx eax, byte [eax]
cmp eax, dword [esp + 0x58]
je 0x59f5ab
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
mov edx, eax
shr edx, 0xb
mov dx, word [ebx + edx*4]
mov ebp, eax
shl dx, 6
shr ebp, 5
and ebp, 0x3f
add dx, word [ebx + ebp*4]
and eax, 0x1f
shl dx, 5
add dx, word [ebx + eax*4]
mov eax, dword [esp + 0x10]
movzx ebp, dx
movzx edx, word [eax]
movzx eax, dx
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x59f5da
cmp ecx, dword [esp + 0x40]
jl 0x59f4e0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59f683
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x59f430
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59f430
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59f701
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x59f870
cmp edi, dword [esp + 0x6c]
jge 0x59f870
cmp ecx, dword [esp + 0x40]
jge 0x59f870
test esi, esi
jle 0x59f870
cmp ebp, dword [esp + 0x100]
jae 0x59f849
cmp eax, dword [esp + 0xbc]
jae 0x59f849
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [eax]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
mov edx, eax
mov ebp, eax
shr edx, 0xb
mov dx, word [ebx + edx*4]
shr ebp, 5
shl dx, 6
and ebp, 0x3f
add dx, word [ebx + ebp*4]
and eax, 0x1f
shl dx, 5
add dx, word [ebx + eax*4]
mov eax, dword [esp + 0x10]
movzx ebp, dx
movzx edx, word [eax]
movzx eax, dx
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and edx, 0x820
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x59f870
cmp ecx, dword [esp + 0x40]
jl 0x59f780
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59f919
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x59f6d4
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59f6d4
cmp dword [esp + 0x134], 0
je 0x59fc50
jmp 0x59f980
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59f9ad
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x59fb50
cmp edi, dword [esp + 0x6c]
jge 0x59fb50
cmp ecx, dword [esp + 0x40]
jge 0x59fb50
test esi, esi
jle 0x59fb50
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x59fb29
cmp eax, dword [esp + 0xbc]
jae 0x59fb29
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx eax, byte [eax]
cmp eax, dword [esp + 0x58]
je 0x59fb21
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
mov ebp, dword [esp + 0xa4]
mov edx, eax
shr edx, 5
mov dword [esp + 0x4c], eax
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
shr eax, 0xb
mov eax, dword [ebp + eax*4]
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x4c]
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shl bp, 5
add bp, word [ebx + eax*4]
movzx eax, dx
movzx ebp, bp
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x59fb50
cmp ecx, dword [esp + 0x40]
jl 0x59fa30
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59fbf9
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x59f980
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59f980
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59fc7d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x59fe16
cmp edi, dword [esp + 0x6c]
jge 0x59fe16
cmp ecx, dword [esp + 0x40]
jge 0x59fe16
test esi, esi
jle 0x59fe16
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x59fdef
cmp eax, dword [esp + 0xbc]
jae 0x59fdef
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
mov ebp, dword [esp + 0xa4]
sar eax, 0x12
add eax, edx
movzx edx, byte [eax]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
mov edx, eax
mov dword [esp + 0x4c], eax
shr edx, 5
shr eax, 0xb
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
mov eax, dword [ebp + eax*4]
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x4c]
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shl bp, 5
add bp, word [ebx + eax*4]
movzx eax, dx
movzx ebp, bp
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and edx, 0x820
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x59fe16
cmp ecx, dword [esp + 0x40]
jl 0x59fd00
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x59febf
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x59fc50
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59fc50
mov eax, dword [0x8e80e4]
and eax, 0xffffff
cmp dword [esp + 0x138], 0
je 0x5a0a9f
cmp eax, 0xffffff
jne 0x5a04b8
cmp dword [esp + 0x134], 0
je 0x5a0205
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x59ff6e
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x14]
imul ebp, dword [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add ebp, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
jl 0x5a010b
cmp edi, dword [esp + 0x6c]
jge 0x5a010b
cmp ecx, dword [esp + 0x40]
jge 0x5a010b
test esi, esi
jle 0x5a010b
lea ecx, [ecx]
cmp eax, dword [esp + 0x100]
jae 0x5a00e0
cmp ebp, dword [esp + 0xbc]
jae 0x5a00e0
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebp, eax
movzx eax, byte [edx]
add ebp, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
je 0x5a00dc
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov ebp, eax
mov dword [esp + 0x4c], eax
and ebp, 0xf800
imul ebp, edx
and eax, 0x7e0
imul eax, edx
shr ebp, 0x13
mov bp, word [ebx + ebp*4]
shr eax, 0xd
shl bp, 6
add bp, word [ebx + eax*4]
mov eax, dword [esp + 0x4c]
and eax, 0x1f
imul eax, edx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shr eax, 8
shl bp, 5
add bp, word [ebx + eax*4]
or edx, 0x8210820
movzx eax, bp
and eax, 0xf7def7df
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
add eax, dword [esp + 0x44]
add ebp, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
je 0x5a010b
cmp ecx, dword [esp + 0x40]
jl 0x59fff0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a01b4
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x59ff41
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x59ff41
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a0232
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5a03be
cmp edi, dword [esp + 0x6c]
jge 0x5a03be
cmp ecx, dword [esp + 0x40]
jge 0x5a03be
test esi, esi
jle 0x5a03be
cmp edx, dword [esp + 0x100]
jae 0x5a0397
cmp eax, dword [esp + 0xbc]
jae 0x5a0397
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebp, 0x12
and edx, 0x3ffff
add eax, edx
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebp, eax
add ebp, dword [esp + 0xac]
movzx edx, byte [edx]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov ebp, eax
mov dword [esp + 0x4c], eax
and ebp, 0xf800
imul ebp, edx
and eax, 0x7e0
imul eax, edx
shr ebp, 0x13
mov bp, word [ebx + ebp*4]
shr eax, 0xd
shl bp, 6
add bp, word [ebx + eax*4]
mov eax, dword [esp + 0x4c]
and eax, 0x1f
imul eax, edx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shr eax, 8
shl bp, 5
add bp, word [ebx + eax*4]
or edx, 0x8210820
movzx eax, bp
and eax, 0xf7def7df
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x5a03be
cmp ecx, dword [esp + 0x40]
jl 0x5a02b1
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a0467
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5a0205
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a0205
cmp dword [esp + 0x134], 0
je 0x5a07c0
jmp 0x5a04d0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a04fd
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x14]
imul ebp, dword [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add ebp, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
jl 0x5a06c3
cmp edi, dword [esp + 0x6c]
jge 0x5a06c3
cmp ecx, dword [esp + 0x40]
jge 0x5a06c3
test esi, esi
jle 0x5a06c3
lea esp, [esp]
cmp eax, dword [esp + 0x100]
jae 0x5a0698
cmp ebp, dword [esp + 0xbc]
jae 0x5a0698
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebp, eax
movzx eax, byte [edx]
add ebp, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
je 0x5a0694
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], edx
mov edx, eax
mov dword [esp + 0x4c], eax
shr edx, 5
shr eax, 0xb
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
imul edx, dword [esp + 0x2c]
mov eax, dword [ebp + eax*4]
imul eax, dword [esp + 0x2c]
shr eax, 8
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x4c]
shr edx, 8
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
imul eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shr eax, 8
shl bp, 5
add bp, word [ebx + eax*4]
or edx, 0x8210820
movzx eax, bp
and eax, 0xf7def7df
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
add eax, dword [esp + 0x44]
add ebp, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
je 0x5a06c3
cmp ecx, dword [esp + 0x40]
jl 0x5a0580
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a076c
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5a04d0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a04d0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a07ed
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5a09a5
cmp edi, dword [esp + 0x6c]
jge 0x5a09a5
cmp ecx, dword [esp + 0x40]
jge 0x5a09a5
test esi, esi
jle 0x5a09a5
lea esp, [esp]
cmp edx, dword [esp + 0x100]
jae 0x5a097e
cmp eax, dword [esp + 0xbc]
jae 0x5a097e
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebp, eax
movzx edx, byte [edx]
add ebp, dword [esp + 0xac]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], edx
mov edx, eax
mov dword [esp + 0x4c], eax
shr edx, 5
shr eax, 0xb
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
imul edx, dword [esp + 0x2c]
mov eax, dword [ebp + eax*4]
imul eax, dword [esp + 0x2c]
shr eax, 8
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x4c]
shr edx, 8
and eax, 0x1f
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + eax*4]
imul eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shr eax, 8
shl bp, 5
add bp, word [ebx + eax*4]
or edx, 0x8210820
movzx eax, bp
and eax, 0xf7def7df
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x5a09a5
cmp ecx, dword [esp + 0x40]
jl 0x5a0870
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a0a4e
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5a07c0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a07c0
cmp eax, 0xffffff
jne 0x5a0fd3
cmp dword [esp + 0x134], 0
je 0x5a0d50
jmp 0x5a0ac0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a0aed
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x5a0c4f
cmp edi, dword [esp + 0x6c]
jge 0x5a0c4f
cmp ecx, dword [esp + 0x40]
jge 0x5a0c4f
test esi, esi
jle 0x5a0c4f
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x5a0c28
cmp eax, dword [esp + 0xbc]
jae 0x5a0c28
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx eax, byte [eax]
cmp eax, dword [esp + 0x58]
je 0x5a0c20
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
mov edx, eax
shr edx, 0xb
mov dx, word [ebx + edx*4]
mov ebp, eax
shl dx, 6
shr ebp, 5
and ebp, 0x3f
add dx, word [ebx + ebp*4]
and eax, 0x1f
shl dx, 5
add dx, word [ebx + eax*4]
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and eax, 0xf7def7df
or edx, 0x8210820
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a0c4f
cmp ecx, dword [esp + 0x40]
jl 0x5a0b70
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a0cf8
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5a0ac0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a0ac0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a0d7d
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a0ed9
cmp edi, dword [esp + 0x6c]
jge 0x5a0ed9
cmp ecx, dword [esp + 0x40]
jge 0x5a0ed9
test esi, esi
jle 0x5a0ed9
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x5a0eb2
cmp eax, dword [esp + 0xbc]
jae 0x5a0eb2
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [eax]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
mov edx, eax
shr edx, 0xb
mov dx, word [ebx + edx*4]
mov ebp, eax
shl dx, 6
shr ebp, 5
and ebp, 0x3f
add dx, word [ebx + ebp*4]
and eax, 0x1f
shl dx, 5
add dx, word [ebx + eax*4]
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and eax, 0xf7def7df
or edx, 0x8210820
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a0ed9
cmp ecx, dword [esp + 0x40]
jl 0x5a0e00
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a0f82
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5a0d50
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a0d50
cmp dword [esp + 0x134], 0
je 0x5a1293
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a100e
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x5a1199
cmp edi, dword [esp + 0x6c]
jge 0x5a1199
cmp ecx, dword [esp + 0x40]
jge 0x5a1199
test esi, esi
jle 0x5a1199
nop
cmp ebp, dword [esp + 0x100]
jae 0x5a1172
cmp eax, dword [esp + 0xbc]
jae 0x5a1172
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx eax, byte [eax]
cmp eax, dword [esp + 0x58]
je 0x5a116a
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
mov ebp, dword [esp + 0xa4]
mov edx, eax
shr edx, 5
mov dword [esp + 0x4c], eax
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
shr eax, 0xb
mov eax, dword [ebp + eax*4]
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x4c]
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shl bp, 5
add bp, word [ebx + eax*4]
or edx, 0x8210820
movzx eax, bp
and eax, 0xf7def7df
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a1199
cmp ecx, dword [esp + 0x40]
jl 0x5a1090
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a1242
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5a0fe1
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a0fe1
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a12c0
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a143f
cmp edi, dword [esp + 0x6c]
jge 0x5a143f
cmp ecx, dword [esp + 0x40]
jge 0x5a143f
test esi, esi
jle 0x5a143f
nop
cmp ebp, dword [esp + 0x100]
jae 0x5a1418
cmp eax, dword [esp + 0xbc]
jae 0x5a1418
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
mov ebp, dword [esp + 0xa4]
sar eax, 0x12
add eax, edx
movzx edx, byte [eax]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
mov edx, eax
shr edx, 5
mov dword [esp + 0x4c], eax
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
shr eax, 0xb
mov eax, dword [ebp + eax*4]
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x4c]
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shl bp, 5
add bp, word [ebx + eax*4]
or edx, 0x8210820
movzx eax, bp
and eax, 0xf7def7df
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a143f
cmp ecx, dword [esp + 0x40]
jl 0x5a1340
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a14e8
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5a1293
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a1293
mov eax, dword [0x8e80e4]
and eax, 0xffffff
cmp dword [esp + 0x138], 0
je 0x5a208a
cmp eax, 0xffffff
jne 0x5a1ac0
cmp dword [esp + 0x134], 0
je 0x5a1820
lea ebx, [ebx]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a159d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a1727
cmp edi, dword [esp + 0x6c]
jge 0x5a1727
cmp ecx, dword [esp + 0x40]
jge 0x5a1727
test esi, esi
jle 0x5a1727
cmp ebp, dword [esp + 0x100]
jae 0x5a16fc
cmp eax, dword [esp + 0xbc]
jae 0x5a16fc
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
je 0x5a16fc
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
movzx edx, byte [ebx]
movzx edx, byte [edx + 0xa77168]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov ebx, edx
mov ebp, eax
shr ebp, 5
shr ebx, 5
and ebp, 0x3f
and ebx, 0x3f
imul ebp, ebx
imul ebp, dword [esp + 0x2c]
mov dword [esp + 0x50], edx
mov ebx, eax
shr edx, 0xb
shr ebx, 0xb
imul ebx, edx
mov edx, ebx
mov ebx, dword [esp + 0x2c]
imul edx, ebx
sar ebp, 9
sar edx, 2
and edx, 0xf800
and ebp, 0x7e0
or ebp, edx
mov edx, dword [esp + 0x50]
and eax, 0x1f
and edx, 0x1f
imul eax, edx
imul eax, ebx
sar eax, 0xd
or ebp, eax
mov eax, dword [esp + 0x10]
mov word [eax], bp
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a1727
cmp ecx, dword [esp + 0x40]
jl 0x5a1610
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a17cd
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a1570
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a1570
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a184d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a19c9
cmp edi, dword [esp + 0x6c]
jge 0x5a19c9
cmp ecx, dword [esp + 0x40]
jge 0x5a19c9
test esi, esi
jle 0x5a19c9
cmp ebp, dword [esp + 0x100]
jae 0x5a19a2
cmp eax, dword [esp + 0xbc]
jae 0x5a19a2
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx edx, byte [edx]
add ebx, dword [esp + 0xac]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
movzx edx, byte [ebx]
movzx edx, byte [edx + 0xa77168]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov ebx, edx
mov ebp, eax
shr ebp, 5
shr ebx, 5
and ebp, 0x3f
and ebx, 0x3f
imul ebp, ebx
imul ebp, dword [esp + 0x2c]
mov ebx, eax
mov dword [esp + 0x50], edx
shr edx, 0xb
shr ebx, 0xb
imul ebx, edx
mov edx, ebx
mov ebx, dword [esp + 0x2c]
imul edx, ebx
sar ebp, 9
sar edx, 2
and edx, 0xf800
and ebp, 0x7e0
or ebp, edx
mov edx, dword [esp + 0x50]
and eax, 0x1f
and edx, 0x1f
imul eax, edx
imul eax, ebx
sar eax, 0xd
or ebp, eax
mov eax, dword [esp + 0x10]
mov word [eax], bp
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a19c9
cmp ecx, dword [esp + 0x40]
jl 0x5a18c0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a1a6f
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a1820
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a1820
cmp dword [esp + 0x134], 0
je 0x5a1db0
mov edi, edi
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5a1afd
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebp
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
add esi, 1
add eax, ebp
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5a1cb8
cmp edi, dword [esp + 0x6c]
jge 0x5a1cb8
cmp ecx, dword [esp + 0x40]
jge 0x5a1cb8
test esi, esi
jle 0x5a1cb8
jmp 0x5a1b80
cmp edx, dword [esp + 0x100]
jae 0x5a1c8b
cmp eax, dword [esp + 0xbc]
jae 0x5a1c8b
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebp, eax
movzx eax, byte [edx]
add ebp, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
je 0x5a1c87
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov dword [esp + 0x2c], edx
movzx edx, word [ebx]
mov dword [esp + 0x50], edx
shr edx, 5
and edx, 0x3f
mov ebp, edx
mov edx, dword [esp + 0xa4]
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
imul ebp, dword [edx + ebx*4]
mov edx, dword [esp + 0x50]
imul ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0xa8]
shr edx, 0xb
mov dword [esp + 0x4c], eax
shr eax, 0xb
imul edx, dword [ebx + eax*4]
imul edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0xa0]
shr edx, 2
and edx, 0xf800
shr ebp, 9
and ebp, 0x7e0
or ebp, edx
mov edx, dword [esp + 0x50]
and edx, 0x1f
and eax, 0x1f
imul edx, dword [ebx + eax*4]
imul edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x10]
shr edx, 0xd
or ebp, edx
mov word [ebx], bp
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5a1cb8
cmp ecx, dword [esp + 0x40]
jl 0x5a1b80
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a1d5e
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a1ad0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a1ad0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5a1dde
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov eax, edx
imul edx, dword [esp + 0x9c]
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a1f93
cmp edi, dword [esp + 0x6c]
jge 0x5a1f93
cmp ecx, dword [esp + 0x40]
jge 0x5a1f93
test esi, esi
jle 0x5a1f93
jmp 0x5a1e60
cmp ebx, dword [esp + 0x100]
jae 0x5a1f6a
cmp eax, dword [esp + 0xbc]
jae 0x5a1f6a
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx edx, byte [edx]
add ebx, dword [esp + 0xac]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
movzx edx, byte [ebx]
movzx edx, byte [edx + 0xa77168]
mov dword [esp + 0x2c], edx
movzx edx, word [ebp]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x50], edx
shr edx, 5
and edx, 0x3f
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
imul edx, dword [ebp + ebx*4]
mov ebx, dword [esp + 0x50]
imul edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0xa8]
shr ebx, 0xb
mov dword [esp + 0x4c], eax
shr eax, 0xb
imul ebx, dword [ebp + eax*4]
imul ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x4c]
shr edx, 9
and edx, 0x7e0
shr ebx, 2
and ebx, 0xf800
or edx, ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x50]
mov ebp, dword [esp + 0x10]
and edx, 0x1f
and eax, 0x1f
imul edx, dword [ebx + eax*4]
imul edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x14]
shr edx, 0xd
or ebx, edx
mov word [ebp], bx
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5a1f93
cmp ecx, dword [esp + 0x40]
jl 0x5a1e60
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a2039
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a1db0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a1db0
cmp eax, 0xffffff
jne 0x5a25aa
cmp dword [esp + 0x134], 0
je 0x5a2321
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a20d0
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a222a
cmp edi, dword [esp + 0x6c]
jge 0x5a222a
cmp ecx, dword [esp + 0x40]
jge 0x5a222a
test esi, esi
jle 0x5a222a
cmp ebx, dword [esp + 0x100]
jae 0x5a2203
cmp eax, dword [esp + 0xbc]
jae 0x5a2203
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
add eax, ebp
movzx eax, byte [eax]
cmp eax, dword [esp + 0x58]
je 0x5a21ff
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov ebx, eax
and ebx, 0x7e0
mov ebp, edx
and ebp, 0x7e0
imul ebx, ebp
mov ebp, eax
mov dword [esp + 0x50], edx
and ebp, 0xf800
and edx, 0xf800
imul ebp, edx
mov edx, dword [esp + 0x50]
and eax, 0x1f
and edx, 0x1f
imul eax, edx
shr ebx, 0xb
shr ebp, 0x10
and ebx, 0x7e0
and ebp, 0xf800
or ebx, ebp
shr eax, 5
or ebx, eax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5a222a
cmp ecx, dword [esp + 0x40]
jl 0x5a2143
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a22d0
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a20a3
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a20a3
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a234e
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a24b3
cmp edi, dword [esp + 0x6c]
jge 0x5a24b3
cmp ecx, dword [esp + 0x40]
jge 0x5a24b3
test esi, esi
jle 0x5a24b3
mov ebp, dword [esp + 0x10]
jmp 0x5a23d0
cmp ebx, dword [esp + 0x100]
jae 0x5a248a
cmp eax, dword [esp + 0xbc]
jae 0x5a248a
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [eax]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
movzx edx, word [ebp]
mov ebx, eax
and ebx, 0x7e0
mov ebp, edx
and ebp, 0x7e0
imul ebx, ebp
mov ebp, eax
and ebp, 0xf800
mov dword [esp + 0x50], edx
and edx, 0xf800
imul ebp, edx
mov edx, dword [esp + 0x50]
and eax, 0x1f
and edx, 0x1f
imul eax, edx
shr ebx, 0xb
shr ebp, 0x10
and ebx, 0x7e0
and ebp, 0xf800
or ebx, ebp
mov ebp, dword [esp + 0x10]
shr eax, 5
or ebx, eax
mov eax, dword [esp + 0x14]
mov word [ebp], bx
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5a24b3
cmp ecx, dword [esp + 0x40]
jl 0x5a23d0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a2559
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a2321
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a2321
cmp dword [esp + 0x134], 0
je 0x5a2880
jmp 0x5a25c0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5a25ed
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a2782
cmp edi, dword [esp + 0x6c]
jge 0x5a2782
cmp ecx, dword [esp + 0x40]
jge 0x5a2782
test esi, esi
jle 0x5a2782
jmp 0x5a2670
cmp ebp, dword [esp + 0x100]
jae 0x5a2759
cmp eax, dword [esp + 0xbc]
jae 0x5a2759
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx eax, byte [eax]
cmp eax, dword [esp + 0x58]
je 0x5a2751
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
movzx edx, word [ebx]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov dword [esp + 0x50], edx
shr edx, 5
mov ebx, eax
and edx, 0x3f
mov ebp, edx
mov edx, dword [esp + 0xa4]
shr ebx, 5
and ebx, 0x3f
imul ebp, dword [edx + ebx*4]
mov ebx, dword [esp + 0xa8]
mov edx, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x5c]
shr eax, 5
shr edx, 0xb
and eax, 0x7c0
imul ax, word [ebx + edx*4]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0xa0]
shr ebp, 1
and ax, 0xf800
and ebp, 0x7e0
or bp, ax
mov eax, dword [esp + 0x4c]
and edx, 0x1f
and eax, 0x1f
imul edx, dword [ebx + eax*4]
mov ebx, dword [esp + 0x10]
shr edx, 5
or bp, dx
mov word [ebx], bp
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5a2782
cmp ecx, dword [esp + 0x40]
jl 0x5a2670
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a2828
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a25c0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a25c0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5a28ad
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a2a38
cmp edi, dword [esp + 0x6c]
jge 0x5a2a38
cmp ecx, dword [esp + 0x40]
jge 0x5a2a38
test esi, esi
jle 0x5a2a38
jmp 0x5a2930
cmp ebp, dword [esp + 0x100]
jae 0x5a2a0f
cmp eax, dword [esp + 0xbc]
jae 0x5a2a0f
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx eax, byte [eax]
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
movzx edx, word [ebx]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov dword [esp + 0x50], edx
shr edx, 5
mov ebx, eax
and edx, 0x3f
mov ebp, edx
mov edx, dword [esp + 0xa4]
shr ebx, 5
mov dword [esp + 0x4c], eax
and ebx, 0x3f
imul ebp, dword [edx + ebx*4]
mov ebx, dword [esp + 0xa8]
mov edx, eax
mov eax, dword [esp + 0x5c]
shr eax, 5
shr edx, 0xb
and eax, 0x7c0
imul ax, word [ebx + edx*4]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0xa0]
shr ebp, 1
and ax, 0xf800
and ebp, 0x7e0
or bp, ax
mov eax, dword [esp + 0x4c]
and eax, 0x1f
and edx, 0x1f
imul edx, dword [ebx + eax*4]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
shr edx, 5
or bp, dx
mov word [ebx], bp
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5a2a38
cmp ecx, dword [esp + 0x40]
jl 0x5a2930
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a2ade
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a2880
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a2880
mov eax, dword [0x8e80e4]
and eax, 0xffffff
cmp dword [esp + 0x138], 0
je 0x5a37cb
cmp eax, 0xffffff
jne 0x5a3167
cmp dword [esp + 0x134], 0
je 0x5a2e65
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a2b8d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a2d6e
cmp edi, dword [esp + 0x6c]
jge 0x5a2d6e
cmp ecx, dword [esp + 0x40]
jge 0x5a2d6e
test esi, esi
jle 0x5a2d6e
cmp ebp, dword [esp + 0x100]
jae 0x5a2d43
cmp eax, dword [esp + 0xbc]
jae 0x5a2d43
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
je 0x5a2d43
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
mov edx, dword [esp + 0x10]
movzx ebp, word [edx]
mov dword [esp + 0x2c], ebx
mov ebx, ebp
shr ebx, 0xb
mov dword [esp + 0xdc], ebx
mov ebx, ebp
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov edx, ebp
mov ebx, eax
shr ebx, 5
shr edx, 5
and ebx, 0x3f
and edx, 0x3f
imul ebx, edx
sar ebx, 6
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x50], ebp
and ebp, 0x7e0
shl ebp, 0xb
add ebx, ebp
mov ebp, eax
shr ebp, 0xb
imul ebp, edx
sar ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
and eax, 0x1f
shl edx, 5
add ebp, edx
mov edx, dword [esp + 0x60]
imul eax, edx
sar eax, 5
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [0x8e80c0]
sar ebx, 0xb
sar ebp, 5
shl edx, 0x10
and ebp, 0xf800
add eax, edx
and ebx, 0x7e0
or ebx, ebp
mov ebp, dword [esp + 0x1c]
sar eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a2d6e
cmp ecx, dword [esp + 0x40]
jl 0x5a2c00
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a2e14
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a2b60
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a2b60
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a2e92
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a3070
cmp edi, dword [esp + 0x6c]
jge 0x5a3070
cmp ecx, dword [esp + 0x40]
jge 0x5a3070
test esi, esi
jle 0x5a3070
jmp 0x5a2f10
cmp ebp, dword [esp + 0x100]
jae 0x5a3049
cmp eax, dword [esp + 0xbc]
jae 0x5a3049
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
add edx, eax
movzx ebx, byte [ebx]
add edx, dword [esp + 0x90]
movzx ebx, byte [ebx + 0xa77168]
movzx edx, byte [edx]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
mov edx, dword [esp + 0x10]
movzx ebp, word [edx]
mov dword [esp + 0x2c], ebx
mov ebx, ebp
shr ebx, 0xb
mov dword [esp + 0xdc], ebx
mov ebx, ebp
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov edx, ebp
mov ebx, eax
shr ebx, 5
shr edx, 5
and ebx, 0x3f
and edx, 0x3f
imul ebx, edx
sar ebx, 6
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x50], ebp
and ebp, 0x7e0
shl ebp, 0xb
add ebx, ebp
mov ebp, eax
shr ebp, 0xb
imul ebp, edx
sar ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and eax, 0x1f
and edx, 0xfffff800
shl edx, 5
add ebp, edx
mov edx, dword [esp + 0x60]
imul eax, edx
sar eax, 5
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [0x8e80c0]
sar ebx, 0xb
sar ebp, 5
shl edx, 0x10
add eax, edx
and ebp, 0xf800
and ebx, 0x7e0
sar eax, 0x10
or ebx, ebp
mov ebp, dword [esp + 0x1c]
or ebx, eax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a3070
cmp ecx, dword [esp + 0x40]
jl 0x5a2f10
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a3116
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a2e65
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a2e65
cmp dword [esp + 0x134], 0
je 0x5a34b0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a31a2
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a33b2
cmp edi, dword [esp + 0x6c]
jge 0x5a33b2
cmp ecx, dword [esp + 0x40]
jge 0x5a33b2
test esi, esi
jle 0x5a33b2
jmp 0x5a3220
cmp ebp, dword [esp + 0x100]
jae 0x5a3387
cmp eax, dword [esp + 0xbc]
jae 0x5a3387
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
je 0x5a3387
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov edx, dword [esp + 0x54]
movzx ebp, word [edx + eax*2]
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], ebp
shr ebp, 5
and ebp, 0x3f
mov ebx, eax
shr ebx, 0xb
mov dword [esp + 0xdc], ebx
mov ebx, eax
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0xa4]
mov ebx, dword [ebx + ebp*4]
mov edx, eax
shr edx, 5
and edx, 0x3f
imul ebx, edx
shr ebx, 6
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov ebp, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0xb
add ebx, edx
mov edx, dword [esp + 0x4c]
shr edx, 0xb
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0xdc]
imul ebp, edx
shr ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov edx, eax
and edx, 0xfffff800
shl edx, 5
add ebp, edx
mov edx, dword [esp + 0x4c]
shr ebp, 5
and ebp, 0xf800
shr ebx, 0xb
and ebx, 0x7e0
or ebx, ebp
mov ebp, dword [esp + 0xa0]
and edx, 0x1f
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0x60]
imul ebp, edx
shr ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
shl eax, 0x10
add ebp, eax
mov eax, dword [esp + 0x10]
shr ebp, 0x10
and ebp, 0x1f
or ebx, ebp
mov ebp, dword [esp + 0x1c]
mov word [eax], bx
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a33b2
cmp ecx, dword [esp + 0x40]
jl 0x5a3220
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a3458
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a3175
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a3175
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a34dd
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a36d4
cmp edi, dword [esp + 0x6c]
jge 0x5a36d4
cmp ecx, dword [esp + 0x40]
jge 0x5a36d4
test esi, esi
jle 0x5a36d4
cmp ebp, dword [esp + 0x100]
jae 0x5a36ad
cmp eax, dword [esp + 0xbc]
jae 0x5a36ad
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
add ebx, dword [esp + 0xac]
movzx edx, byte [edx]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov eax, dword [esp + 0x54]
movzx ebp, word [eax + edx*2]
mov edx, dword [esp + 0x10]
movzx eax, word [edx]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], ebp
shr ebp, 5
and ebp, 0x3f
mov ebx, eax
shr ebx, 0xb
mov dword [esp + 0xdc], ebx
mov ebx, eax
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0xa4]
mov ebx, dword [ebx + ebp*4]
mov edx, eax
shr edx, 5
and edx, 0x3f
imul ebx, edx
shr ebx, 6
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov ebp, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0xb
add ebx, edx
mov edx, dword [esp + 0x4c]
shr edx, 0xb
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0xdc]
imul ebp, edx
shr ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov edx, eax
and edx, 0xfffff800
shl edx, 5
add ebp, edx
mov edx, dword [esp + 0x4c]
shr ebp, 5
and ebp, 0xf800
shr ebx, 0xb
and ebx, 0x7e0
or ebx, ebp
mov ebp, dword [esp + 0xa0]
and edx, 0x1f
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0x60]
imul ebp, edx
shr ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
shl eax, 0x10
add ebp, eax
shr ebp, 0x10
and ebp, 0x1f
mov eax, dword [esp + 0x10]
or ebx, ebp
mov ebp, dword [esp + 0x1c]
mov word [eax], bx
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a36d4
cmp ecx, dword [esp + 0x40]
jl 0x5a3550
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a377a
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a34b0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a34b0
cmp eax, 0xffffff
jne 0x5a3d99
cmp dword [esp + 0x134], 0
je 0x5a3ac3
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a3811
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a39c9
cmp edi, dword [esp + 0x6c]
jge 0x5a39c9
cmp ecx, dword [esp + 0x40]
jge 0x5a39c9
test esi, esi
jle 0x5a39c9
cmp ebx, dword [esp + 0x100]
jae 0x5a399e
cmp eax, dword [esp + 0xbc]
jae 0x5a399e
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx eax, byte [eax]
cmp eax, dword [esp + 0x58]
je 0x5a399a
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov ebx, edx
mov dword [esp + 0x50], edx
shr edx, 0xb
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x50]
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, eax
shr edx, 5
and edx, 0x3f
shr ebx, 5
and ebx, 0x3f
imul edx, ebx
sar edx, 6
sub edx, ebx
mov ebx, dword [esp + 0x5c]
shr ebx, 5
mov dword [esp + 0x4c], eax
and ebx, 0x3f
add bx, word [ebp + edx*4]
mov edx, eax
mov eax, dword [esp + 0xdc]
shr edx, 0xb
imul edx, eax
sar edx, 5
sub edx, eax
mov ax, word [esp + 0x5c]
shr ax, 0xb
add ax, word [ebp + edx*4]
mov edx, dword [esp + 0x60]
shl ax, 0xb
shl bx, 5
or bx, ax
mov eax, dword [esp + 0x4c]
and eax, 0x1f
imul eax, edx
sar eax, 5
sub eax, edx
mov edx, dword [esp + 0x5c]
and edx, 0x1f
add dx, word [ebp + eax*4]
or bx, dx
mov edx, dword [esp + 0x10]
mov word [edx], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5a39c9
cmp ecx, dword [esp + 0x40]
jl 0x5a3890
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a3a72
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a37e4
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a37e4
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a3af0
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a3c9f
cmp edi, dword [esp + 0x6c]
jge 0x5a3c9f
cmp ecx, dword [esp + 0x40]
jge 0x5a3c9f
test esi, esi
jle 0x5a3c9f
nop
cmp ebx, dword [esp + 0x100]
jae 0x5a3c78
cmp eax, dword [esp + 0xbc]
jae 0x5a3c78
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [eax]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov ebx, edx
mov dword [esp + 0x50], edx
shr edx, 0xb
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x50]
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, eax
shr edx, 5
and edx, 0x3f
shr ebx, 5
and ebx, 0x3f
imul edx, ebx
sar edx, 6
sub edx, ebx
mov ebx, dword [esp + 0x5c]
shr ebx, 5
mov dword [esp + 0x4c], eax
and ebx, 0x3f
add bx, word [ebp + edx*4]
mov edx, eax
mov eax, dword [esp + 0xdc]
shr edx, 0xb
imul edx, eax
sar edx, 5
sub edx, eax
mov ax, word [esp + 0x5c]
shr ax, 0xb
add ax, word [ebp + edx*4]
mov edx, dword [esp + 0x60]
shl ax, 0xb
shl bx, 5
or bx, ax
mov eax, dword [esp + 0x4c]
and eax, 0x1f
imul eax, edx
sar eax, 5
sub eax, edx
mov edx, dword [esp + 0x5c]
and edx, 0x1f
add dx, word [ebp + eax*4]
mov eax, dword [esp + 0x14]
or bx, dx
mov edx, dword [esp + 0x10]
mov word [edx], bx
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5a3c9f
cmp ecx, dword [esp + 0x40]
jl 0x5a3b70
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a3d48
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a3ac3
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a3ac3
cmp dword [esp + 0x134], 0
je 0x5a40c0
jmp 0x5a3db0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a3ddd
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a3fbd
cmp edi, dword [esp + 0x6c]
jge 0x5a3fbd
cmp ecx, dword [esp + 0x40]
jge 0x5a3fbd
test esi, esi
jle 0x5a3fbd
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x5a3f92
cmp eax, dword [esp + 0xbc]
jae 0x5a3f92
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx eax, byte [eax]
cmp eax, dword [esp + 0x58]
je 0x5a3f8e
mov edx, dword [esp + 0x54]
movzx eax, word [edx + eax*2]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov ebx, edx
shr ebx, 5
and ebx, 0x3f
mov dword [esp + 0xac], ebx
mov ebx, edx
shr ebx, 0xb
and edx, 0x1f
mov dword [esp + 0xdc], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x60], edx
mov edx, eax
shr edx, 5
and edx, 0x3f
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0xac]
imul ebx, edx
shr ebx, 6
sub ebx, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x4c], eax
shr eax, 0xb
shr edx, 5
and edx, 0x3f
add dx, word [ebp + ebx*4]
mov ebx, dword [esp + 0xa8]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0xdc]
imul ebx, eax
shr ebx, 5
sub ebx, eax
mov ax, word [esp + 0x5c]
shr ax, 0xb
add ax, word [ebp + ebx*4]
mov ebx, dword [esp + 0xa0]
shl ax, 0xb
shl dx, 5
or dx, ax
mov eax, dword [esp + 0x4c]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x60]
imul ebx, eax
shr ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + ebx*4]
or dx, ax
mov eax, dword [esp + 0x10]
mov word [eax], dx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5a3fbd
cmp ecx, dword [esp + 0x40]
jl 0x5a3e60
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a4066
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a3db0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a3db0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a40ed
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a42c5
cmp edi, dword [esp + 0x6c]
jge 0x5a42c5
cmp ecx, dword [esp + 0x40]
jge 0x5a42c5
test esi, esi
jle 0x5a42c5
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x5a429e
cmp eax, dword [esp + 0xbc]
jae 0x5a429e
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [eax]
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
movzx ebx, dx
mov dword [esp + 0x5c], edx
mov edx, ebx
shr edx, 5
and edx, 0x3f
mov dword [esp + 0xac], edx
mov edx, ebx
shr edx, 0xb
mov dword [esp + 0xdc], edx
mov edx, ebx
mov ebx, dword [esp + 0xa4]
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, eax
shr edx, 5
and edx, 0x3f
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0xac]
imul ebx, edx
shr ebx, 6
sub ebx, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x4c], eax
shr eax, 0xb
shr edx, 5
and edx, 0x3f
add dx, word [ebp + ebx*4]
mov ebx, dword [esp + 0xa8]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0xdc]
imul ebx, eax
shr ebx, 5
sub ebx, eax
mov ax, word [esp + 0x5c]
shr ax, 0xb
add ax, word [ebp + ebx*4]
mov ebx, dword [esp + 0xa0]
shl ax, 0xb
shl dx, 5
or dx, ax
mov eax, dword [esp + 0x4c]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x60]
imul ebx, eax
shr ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + ebx*4]
mov ebx, dword [esp + 0x1c]
or dx, ax
mov eax, dword [esp + 0x10]
mov word [eax], dx
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5a42c5
cmp ecx, dword [esp + 0x40]
jl 0x5a4170
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a436e
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a40c0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a40c0
mov eax, dword [0x8e80e4]
and eax, 0xffffff
cmp dword [esp + 0x138], 0
je 0x5a5012
cmp eax, 0xffffff
jne 0x5a49c0
cmp dword [esp + 0x134], 0
je 0x5a46e0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a441d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a45e7
cmp edi, dword [esp + 0x6c]
jge 0x5a45e7
cmp ecx, dword [esp + 0x40]
jge 0x5a45e7
test esi, esi
jle 0x5a45e7
cmp ebp, dword [esp + 0x100]
jae 0x5a45bc
cmp eax, dword [esp + 0xbc]
jae 0x5a45bc
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
movzx eax, byte [edx]
add ebx, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
je 0x5a45bc
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov edx, dword [esp + 0x54]
mov ax, word [edx + eax*2]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x2c], ebx
not ax
movzx eax, ax
mov ebx, edx
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebp, eax
mov ebx, edx
and ebx, 0x7e0
and ebp, 0x7e0
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov ebx, edx
and ebx, 0xffffffe0
shl ebx, 0x10
add ebp, ebx
mov ebx, eax
mov dword [esp + 0x50], edx
and edx, 0xf800
and ebx, 0xf800
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
shl edx, 0x10
and eax, 0x1f
add ebx, edx
mov edx, dword [esp + 0x60]
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [0x8e80c0]
shr ebp, 0x10
shr ebx, 0x10
shl edx, 0x10
and ebp, 0x7e0
add eax, edx
and ebx, 0xf800
or ebp, ebx
shr eax, 0x10
or ebp, eax
mov eax, dword [esp + 0x10]
mov word [eax], bp
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a45e7
cmp ecx, dword [esp + 0x40]
jl 0x5a4490
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a468d
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a43f0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a43f0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a470d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a48c9
cmp edi, dword [esp + 0x6c]
jge 0x5a48c9
cmp ecx, dword [esp + 0x40]
jge 0x5a48c9
test esi, esi
jle 0x5a48c9
cmp ebp, dword [esp + 0x100]
jae 0x5a48a2
cmp eax, dword [esp + 0xbc]
jae 0x5a48a2
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebx, eax
add ebx, dword [esp + 0xac]
movzx edx, byte [edx]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov eax, dword [esp + 0x54]
mov dx, word [eax + edx*2]
not dx
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x2c], ebx
mov ebx, edx
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebp, eax
mov ebx, edx
and ebx, 0x7e0
and ebp, 0x7e0
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov ebx, edx
and ebx, 0xffffffe0
shl ebx, 0x10
add ebp, ebx
mov ebx, eax
mov dword [esp + 0x50], edx
and edx, 0xf800
and ebx, 0xf800
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
and eax, 0x1f
shl edx, 0x10
add ebx, edx
mov edx, dword [esp + 0x60]
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [0x8e80c0]
shr ebp, 0x10
shr ebx, 0x10
shl edx, 0x10
add eax, edx
and ebp, 0x7e0
and ebx, 0xf800
shr eax, 0x10
or ebp, ebx
or ebp, eax
mov eax, dword [esp + 0x10]
mov word [eax], bp
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a48c9
cmp ecx, dword [esp + 0x40]
jl 0x5a4780
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a496f
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a46e0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a46e0
cmp dword [esp + 0x134], 0
je 0x5a4cf0
mov edi, edi
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5a49fd
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebp
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
add esi, 1
add eax, ebp
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5a4bf7
cmp edi, dword [esp + 0x6c]
jge 0x5a4bf7
cmp ecx, dword [esp + 0x40]
jge 0x5a4bf7
test esi, esi
jle 0x5a4bf7
jmp 0x5a4a80
cmp edx, dword [esp + 0x100]
jae 0x5a4bca
cmp eax, dword [esp + 0xbc]
jae 0x5a4bca
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add edx, eax
add edx, dword [esp + 0x90]
add ebp, eax
movzx eax, byte [edx]
add ebp, dword [esp + 0xac]
cmp eax, dword [esp + 0x58]
je 0x5a4bc6
mov edx, dword [esp + 0x54]
mov ax, word [edx + eax*2]
not ax
movzx edx, ax
movzx eax, word [ebx]
movzx ebx, byte [ebp]
movzx ebx, byte [ebx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x60], edx
shr edx, 5
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
and edx, 0x3f
mov ebp, dword [ebp + edx*4]
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov ebx, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0xb
add ebp, edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x50], eax
shr eax, 0xb
shr edx, 0xb
mov ebx, dword [ebx + edx*4]
sub ebx, eax
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 5
add ebx, eax
mov eax, dword [esp + 0x60]
shr ebx, 5
and ebx, 0xf800
shr ebp, 0xb
and ebp, 0x7e0
or ebp, ebx
mov ebx, dword [esp + 0xa0]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x50]
and edx, 0x1f
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
and ebx, 0x1f
or ebp, ebx
mov ebx, dword [esp + 0x10]
mov word [ebx], bp
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5a4bf7
cmp ecx, dword [esp + 0x40]
jl 0x5a4a80
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a4c9d
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a49d0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a49d0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5a4d1e
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov eax, edx
imul edx, dword [esp + 0x9c]
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a4f1b
cmp edi, dword [esp + 0x6c]
jge 0x5a4f1b
cmp ecx, dword [esp + 0x40]
jge 0x5a4f1b
test esi, esi
jle 0x5a4f1b
jmp 0x5a4da0
cmp ebx, dword [esp + 0x100]
jae 0x5a4ef2
cmp eax, dword [esp + 0xbc]
jae 0x5a4ef2
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
add edx, eax
movzx ebx, byte [ebx]
add edx, dword [esp + 0x90]
movzx ebx, byte [ebx + 0xa77168]
movzx edx, byte [edx]
mov eax, dword [esp + 0x54]
mov dx, word [eax + edx*2]
movzx eax, word [ebp]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], ebx
not dx
movzx edx, dx
mov dword [esp + 0x60], edx
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
shr edx, 5
and edx, 0x3f
mov edx, dword [ebp + edx*4]
sub edx, ebx
imul edx, dword [esp + 0x2c]
imul edx, dword [0x8e80c0]
mov ebp, dword [esp + 0xa8]
mov ebx, eax
and ebx, 0xffffffe0
shl ebx, 0xb
add edx, ebx
mov ebx, dword [esp + 0x60]
shr ebx, 0xb
mov ebx, dword [ebp + ebx*4]
mov dword [esp + 0x50], eax
shr eax, 0xb
sub ebx, eax
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
shr edx, 0xb
and edx, 0x7e0
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 5
add ebx, eax
mov eax, dword [esp + 0x58]
shr ebx, 5
and ebx, 0xf800
or eax, ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x60]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x50]
and edx, 0x1f
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov ebp, dword [esp + 0x10]
shl eax, 0x10
add ebx, eax
mov eax, dword [esp + 0x58]
shr ebx, 0x10
and ebx, 0x1f
or eax, ebx
mov word [ebp], ax
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5a4f1b
cmp ecx, dword [esp + 0x40]
jl 0x5a4da0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a4fc1
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a4cf0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a4cf0
cmp eax, 0xffffff
jne 0x5a55c7
cmp dword [esp + 0x134], 0
je 0x5a5301
jmp 0x5a5030
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a505d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a5207
cmp edi, dword [esp + 0x6c]
jge 0x5a5207
cmp ecx, dword [esp + 0x40]
jge 0x5a5207
test esi, esi
jle 0x5a5207
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x5a51dc
cmp eax, dword [esp + 0xbc]
jae 0x5a51dc
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx eax, byte [eax]
cmp eax, dword [esp + 0x58]
je 0x5a51d8
mov edx, dword [esp + 0x54]
mov ax, word [edx + eax*2]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x5c], edx
not ax
movzx edx, dx
movzx eax, ax
mov dword [esp + 0x50], edx
shr edx, 5
mov ebx, eax
shr ebx, 5
and edx, 0x3f
and ebx, 0x3f
sub ebx, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
and edx, 0x3f
add dx, word [ebp + ebx*4]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x60], eax
shr eax, 0xb
shr ebx, 0xb
sub eax, ebx
movzx ebx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x50]
shl dx, 5
shl bx, 0xb
or dx, bx
mov word [esp + 0xdc], dx
mov edx, dword [esp + 0x60]
movzx ebx, word [esp + 0xdc]
and eax, 0x1f
and edx, 0x1f
sub edx, eax
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + edx*4]
or bx, ax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5a5207
cmp ecx, dword [esp + 0x40]
jl 0x5a50e0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a52b0
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a5030
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a5030
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a532e
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a54cd
cmp edi, dword [esp + 0x6c]
jge 0x5a54cd
cmp ecx, dword [esp + 0x40]
jge 0x5a54cd
test esi, esi
jle 0x5a54cd
lea ecx, [ecx]
cmp ebx, dword [esp + 0x100]
jae 0x5a54a6
cmp eax, dword [esp + 0xbc]
jae 0x5a54a6
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [eax]
mov eax, dword [esp + 0x54]
mov dx, word [eax + edx*2]
not dx
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov dword [esp + 0x50], edx
mov ebx, eax
shr edx, 5
shr ebx, 5
and edx, 0x3f
and ebx, 0x3f
sub ebx, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
and edx, 0x3f
add dx, word [ebp + ebx*4]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x60], eax
shr eax, 0xb
shr ebx, 0xb
sub eax, ebx
movzx ebx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x50]
shl dx, 5
shl bx, 0xb
or dx, bx
and eax, 0x1f
mov word [esp + 0xdc], dx
mov edx, dword [esp + 0x60]
movzx ebx, word [esp + 0xdc]
and edx, 0x1f
sub edx, eax
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + edx*4]
or bx, ax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5a54cd
cmp ecx, dword [esp + 0x40]
jl 0x5a53b0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a5576
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a5301
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a5301
cmp dword [esp + 0x134], 0
je 0x5a58c0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a5602
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a57c4
cmp edi, dword [esp + 0x6c]
jge 0x5a57c4
cmp ecx, dword [esp + 0x40]
jge 0x5a57c4
test esi, esi
jle 0x5a57c4
cmp ebx, dword [esp + 0x100]
jae 0x5a5799
cmp eax, dword [esp + 0xbc]
jae 0x5a5799
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx eax, byte [eax]
cmp eax, dword [esp + 0x58]
je 0x5a5795
mov edx, dword [esp + 0x54]
mov ax, word [edx + eax*2]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov ebx, dword [esp + 0xa4]
not ax
movzx eax, ax
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], edx
shr eax, 5
movzx edx, dx
and eax, 0x3f
mov eax, dword [ebx + eax*4]
mov dword [esp + 0x50], edx
mov ebx, edx
shr edx, 5
and edx, 0x3f
sub eax, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
and edx, 0x3f
add dx, word [ebp + eax*4]
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0xa8]
shr eax, 0xb
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0xdc]
shr ebx, 0xb
sub eax, ebx
mov bx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x60]
shl bx, 0xb
shl dx, 5
or dx, bx
mov ebx, dword [esp + 0x50]
and ebx, 0x1f
and eax, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + ebx*4]
or dx, ax
mov eax, dword [esp + 0x10]
mov word [eax], dx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5a57c4
cmp ecx, dword [esp + 0x40]
jl 0x5a5681
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a586d
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a55d5
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a55d5
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a58ed
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a5aa9
cmp edi, dword [esp + 0x6c]
jge 0x5a5aa9
cmp ecx, dword [esp + 0x40]
jge 0x5a5aa9
test esi, esi
jle 0x5a5aa9
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x5a5a82
cmp eax, dword [esp + 0xbc]
jae 0x5a5a82
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
add eax, edx
movzx edx, byte [eax]
mov eax, dword [esp + 0x54]
mov dx, word [eax + edx*2]
mov ebx, dword [esp + 0xa4]
not dx
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], edx
shr eax, 5
movzx edx, dx
and eax, 0x3f
mov eax, dword [ebx + eax*4]
mov dword [esp + 0x50], edx
mov ebx, edx
shr edx, 5
and edx, 0x3f
sub eax, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
shr ebx, 0xb
and edx, 0x3f
add dx, word [ebp + eax*4]
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0xa8]
shr eax, 0xb
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0xdc]
sub eax, ebx
mov bx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x60]
shl bx, 0xb
shl dx, 5
or dx, bx
mov ebx, dword [esp + 0x50]
and ebx, 0x1f
and eax, 0x1f
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + ebx*4]
mov ebx, dword [esp + 0x1c]
or dx, ax
mov eax, dword [esp + 0x10]
mov word [eax], dx
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5a5aa9
cmp ecx, dword [esp + 0x40]
jl 0x5a5970
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a5b52
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a58c0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a58c0
mov edx, dword [0x8e80bc]
cmp edx, 0xb
ja case.0x5bc480.5
jmp dword [edx*4 + 0x5bd2bc]
mov edx, dword [0x8e80c0]
cmp edx, 0xff
jne 0x5a8b1c
mov edx, dword [0x8e80e4]
and edx, 0xffffff
cmp dword [esp + 0x138], 0
je 0x5a75e8
cmp edx, 0xffffff
jne 0x5a6858
cmp dword [eax + 0x28], 1
jne 0x5a62a2
cmp dword [esp + 0x134], 0
je 0x5a5fc3
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5a5c3e
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x9c]
add ebx, dword [esp + 0x88]
add esi, 1
add eax, ebx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5a5ecc
cmp edi, dword [esp + 0x6c]
jge 0x5a5ecc
cmp ecx, dword [esp + 0x40]
jge 0x5a5ecc
test esi, esi
jle 0x5a5ecc
jmp 0x5a5cc4
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x100]
jae 0x5a5ea3
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0xbc]
jae 0x5a5ea3
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebx, 0x12
and edx, 0x3ffff
add edx, eax
mov eax, ebx
imul ebx, dword [esp + 0xb8]
imul eax, dword [esp + 0x98]
add eax, dword [esp + 0x90]
sar edx, 0x12
add ebx, edx
add ebx, dword [esp + 0xac]
lea eax, [eax + edx*4]
mov dword [esp + 0x2c], ebx
mov bl, byte [eax + 2]
test bl, bl
je 0x5a5ea3
cmp bl, 0xff
movzx eax, word [eax]
jne 0x5a5de8
movzx edx, word [ebp]
mov ebx, edx
shl ebx, 8
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov dword [esp + 0x2c], ebx
mov ebx, edx
and ebx, 0xf800
mov ebp, eax
and ebp, 0xf800
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x60]
and ebx, 0xfff80000
add ebp, ebx
mov dword [esp + 0x50], edx
and edx, 0x7e0
mov ebx, eax
and ebx, 0x7e0
sub ebx, edx
imul ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x60]
and edx, 0xffffe000
add ebx, edx
mov edx, dword [esp + 0x50]
and eax, 0x1f
and edx, 0x1f
sub eax, edx
imul eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x60]
shr ebp, 8
shr ebx, 8
and edx, 0x1f00
and ebx, 0x7e0
and ebp, 0xf800
add eax, edx
or ebp, ebx
shr eax, 8
or ebp, eax
mov dword [esp + 0x58], ebp
mov ebx, ebp
jmp 0x5a5e9b
movzx ebp, word [ebp]
mov edx, ebp
shl edx, 0x10
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
mov dword [esp + 0x2c], edx
movzx edx, bl
mov dword [esp + 0x4c], edx
mov ebx, eax
and ebx, 0xf800
mov edx, ebp
and edx, 0xf800
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x60]
and edx, 0xf8000000
add ebx, edx
mov edx, eax
and edx, 0x7e0
mov dword [esp + 0x50], ebp
and ebp, 0x7e0
sub edx, ebp
imul edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x60]
and ebp, 0xffe00000
add edx, ebp
shr edx, 0x10
and edx, 0x7e0
shr ebx, 0x10
and ebx, 0xf800
or ebx, edx
mov edx, dword [esp + 0x50]
and eax, 0x1f
and edx, 0x1f
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x60]
and edx, 0x1f0000
add eax, edx
shr eax, 0x10
or ebx, eax
mov ebp, dword [esp + 0x10]
mov word [ebp], bx
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
add dword [esp + 0x1c], eax
add dword [esp + 0x14], edx
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x10], ebp
je 0x5a5ecc
cmp ecx, dword [esp + 0x40]
jl 0x5a5cc0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a5f72
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a5c10
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a5c10
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a5ff0
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a61ab
cmp edi, dword [esp + 0x6c]
jge 0x5a61ab
cmp ecx, dword [esp + 0x40]
jge 0x5a61ab
test esi, esi
jle 0x5a61ab
cmp ebp, dword [esp + 0x100]
jae 0x5a6184
cmp eax, dword [esp + 0xbc]
jae 0x5a6184
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea ebp, [edx + eax*4]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov eax, dword [esp + 0x10]
movzx edx, word [eax]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [ebp + 2]
mov eax, edx
shl eax, 0x10
mov dword [esp + 0x60], eax
movzx eax, word [ebp]
mov dword [esp + 0x4c], ebx
mov ebp, eax
mov ebx, edx
and ebx, 0xf800
and ebp, 0xf800
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x60]
and ebx, 0xf8000000
add ebp, ebx
mov ebx, eax
mov dword [esp + 0x50], edx
and edx, 0x7e0
and ebx, 0x7e0
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x60]
and edx, 0xffe00000
add ebx, edx
mov edx, dword [esp + 0x50]
and eax, 0x1f
and edx, 0x1f
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x60]
shr ebp, 0x10
shr ebx, 0x10
and edx, 0x1f0000
add eax, edx
and ebp, 0xf800
and ebx, 0x7e0
shr eax, 0x10
or ebp, ebx
or ebp, eax
mov eax, dword [esp + 0x10]
mov word [eax], bp
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a61ab
cmp ecx, dword [esp + 0x40]
jl 0x5a6063
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a6251
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a5fc3
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a5fc3
cmp dword [esp + 0x134], 0
je 0x5a6585
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a62dd
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a648e
cmp edi, dword [esp + 0x6c]
jge 0x5a648e
cmp ecx, dword [esp + 0x40]
jge 0x5a648e
test esi, esi
jle 0x5a648e
cmp ebp, dword [esp + 0x100]
jae 0x5a6463
cmp eax, dword [esp + 0xbc]
jae 0x5a6463
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx eax, word [edx]
cmp eax, dword [esp + 0x58]
je 0x5a6463
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x2c], ebx
mov ebp, edx
shl ebp, 8
mov dword [esp + 0x60], ebp
mov ebx, edx
and ebx, 0xf800
mov ebp, eax
and ebp, 0xf800
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x60]
and ebx, 0xfff80000
add ebp, ebx
mov ebx, eax
mov dword [esp + 0x50], edx
and edx, 0x7e0
and ebx, 0x7e0
sub ebx, edx
imul ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x60]
and edx, 0xffffe000
add ebx, edx
mov edx, dword [esp + 0x50]
and eax, 0x1f
and edx, 0x1f
sub eax, edx
imul eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x60]
shr ebp, 8
shr ebx, 8
and edx, 0x1f00
and ebp, 0xf800
add eax, edx
and ebx, 0x7e0
or ebp, ebx
shr eax, 8
or ebp, eax
mov eax, dword [esp + 0x10]
mov word [eax], bp
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a648e
cmp ecx, dword [esp + 0x40]
jl 0x5a6350
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a6534
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a62b0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a62b0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a65b2
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a6761
cmp edi, dword [esp + 0x6c]
jge 0x5a6761
cmp ecx, dword [esp + 0x40]
jge 0x5a6761
test esi, esi
jle 0x5a6761
jmp 0x5a6630
cmp ebp, dword [esp + 0x100]
jae 0x5a673a
cmp eax, dword [esp + 0xbc]
jae 0x5a673a
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea ebp, [edx + eax*2]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov eax, dword [esp + 0x10]
movzx edx, word [eax]
mov eax, edx
shl eax, 8
mov dword [esp + 0x60], eax
movzx eax, word [ebp]
mov dword [esp + 0x2c], ebx
mov ebx, edx
and ebx, 0xf800
mov ebp, eax
and ebp, 0xf800
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x60]
and ebx, 0xfff80000
add ebp, ebx
mov ebx, eax
mov dword [esp + 0x50], edx
and edx, 0x7e0
and ebx, 0x7e0
sub ebx, edx
imul ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x60]
and edx, 0xffffe000
add ebx, edx
mov edx, dword [esp + 0x50]
and eax, 0x1f
and edx, 0x1f
sub eax, edx
imul eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x60]
shr ebp, 8
shr ebx, 8
and edx, 0x1f00
add eax, edx
and ebp, 0xf800
and ebx, 0x7e0
shr eax, 8
or ebp, ebx
or ebp, eax
mov eax, dword [esp + 0x10]
mov word [eax], bp
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a6761
cmp ecx, dword [esp + 0x40]
jl 0x5a6630
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a6807
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a6585
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a6585
cmp dword [eax + 0x28], 1
jne 0x5a6f8c
cmp dword [esp + 0x134], 0
je 0x5a6c70
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5a689d
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebp
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5a6b76
cmp edi, dword [esp + 0x6c]
jge 0x5a6b76
cmp ecx, dword [esp + 0x40]
jge 0x5a6b76
test esi, esi
jle 0x5a6b76
jmp 0x5a6920
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x100]
jae 0x5a6b4d
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0xbc]
jae 0x5a6b4d
mov eax, edx
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebp, 0x12
and edx, 0x3ffff
add edx, eax
mov eax, ebp
imul ebp, dword [esp + 0xb8]
imul eax, dword [esp + 0x98]
add eax, dword [esp + 0x90]
sar edx, 0x12
add ebp, edx
add ebp, dword [esp + 0xac]
lea eax, [eax + edx*4]
mov dl, byte [eax + 2]
test dl, dl
je 0x5a6b4d
cmp dl, 0xff
movzx eax, word [eax]
mov dword [esp + 0x54], eax
jne 0x5a6a80
movzx edx, word [ebx]
mov dword [esp + 0x5c], edx
movzx ebx, dx
movzx edx, byte [ebp]
mov dl, byte [edx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov byte [esp + 0xdc], dl
movzx edx, dl
mov dword [esp + 0x2c], edx
mov edx, ebx
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, eax
mov dword [esp + 0x50], ebx
shr ebx, 5
shr edx, 5
and ebx, 0x3f
and edx, 0x3f
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0x50]
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
mov bx, word [esp + 0x5c]
shr eax, 0xb
and edx, 0xffffffe0
lea edx, [ebp + edx*8]
mov ebp, dword [esp + 0xa8]
mov bp, word [ebp + eax*4]
movzx ax, byte [esp + 0xdc]
shr bx, 0xb
sub bp, bx
mov ebx, dword [esp + 0xa0]
imul bp, ax
mov eax, dword [esp + 0x5c]
shr eax, 3
and eax, 0x1f00
add bp, ax
mov eax, dword [esp + 0x54]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x60]
sub ebx, eax
imul ebx, dword [esp + 0x2c]
add bp, bp
add bp, bp
shr edx, 3
add bp, bp
shl eax, 8
add ebx, eax
and edx, 0x7e0
and bp, 0xf800
shr ebx, 8
or dx, bp
or dx, bx
mov ebx, dword [esp + 0x10]
mov word [ebx], dx
jmp 0x5a6b4d
movzx eax, word [ebx]
movzx ebx, byte [ebp]
movzx ebx, byte [ebx + 0xa77168]
mov ebp, dword [esp + 0xa4]
movzx edx, dl
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], edx
mov edx, eax
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x54]
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
shr edx, 5
and edx, 0x3f
mov ebp, dword [ebp + edx*4]
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0xb
add ebp, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
shr eax, 0xb
shr edx, 0xb
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0x2c]
sub ebx, eax
mov eax, dword [esp + 0x50]
imul ebx, edx
imul ebx, dword [esp + 0x4c]
and eax, 0xfffff800
shl eax, 5
add ebx, eax
mov eax, dword [esp + 0x54]
shr ebx, 5
and ebx, 0xf800
shr ebp, 0xb
and ebp, 0x7e0
or ebp, ebx
mov ebx, dword [esp + 0xa0]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x60]
sub ebx, eax
imul ebx, edx
imul ebx, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
or ebp, ebx
mov ebx, dword [esp + 0x10]
mov word [ebx], bp
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
add dword [esp + 0x1c], eax
add dword [esp + 0x14], edx
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x10], ebx
je 0x5a6b76
cmp ecx, dword [esp + 0x40]
jl 0x5a6920
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a6c1c
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a6870
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a6870
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5a6c9e
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov eax, edx
imul edx, dword [esp + 0x9c]
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a6e95
cmp edi, dword [esp + 0x6c]
jge 0x5a6e95
cmp ecx, dword [esp + 0x40]
jge 0x5a6e95
test esi, esi
jle 0x5a6e95
jmp 0x5a6d20
cmp ebx, dword [esp + 0x100]
jae 0x5a6e6c
cmp eax, dword [esp + 0xbc]
jae 0x5a6e6c
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, word [edx]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
movzx edx, byte [edx + 2]
mov dword [esp + 0x54], eax
movzx eax, word [ebp]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], edx
mov edx, eax
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x54]
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
shr edx, 5
and edx, 0x3f
mov edx, dword [ebp + edx*4]
sub edx, ebx
imul edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0xa8]
mov ebx, eax
and ebx, 0xffffffe0
shl ebx, 0xb
add edx, ebx
mov ebx, dword [esp + 0x54]
shr ebx, 0xb
mov ebx, dword [ebp + ebx*4]
mov dword [esp + 0x50], eax
shr eax, 0xb
sub ebx, eax
mov eax, dword [esp + 0x50]
shr edx, 0xb
and edx, 0x7e0
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x2c]
imul ebx, edx
imul ebx, dword [esp + 0x4c]
and eax, 0xfffff800
shl eax, 5
add ebx, eax
mov eax, dword [esp + 0x58]
shr ebx, 5
and ebx, 0xf800
or eax, ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x54]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x60]
sub ebx, eax
mov ebp, dword [esp + 0x10]
imul ebx, edx
imul ebx, dword [esp + 0x4c]
shl eax, 0x10
add ebx, eax
mov eax, dword [esp + 0x58]
shr ebx, 0x10
or eax, ebx
mov word [ebp], ax
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5a6e95
cmp ecx, dword [esp + 0x40]
jl 0x5a6d20
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a6f3b
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a6c70
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a6c70
cmp dword [esp + 0x134], 0
je 0x5a72d0
lea ebx, [ebx]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5a6fcd
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebp
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
add esi, 1
add eax, ebp
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5a71d5
cmp edi, dword [esp + 0x6c]
jge 0x5a71d5
cmp ecx, dword [esp + 0x40]
jge 0x5a71d5
test esi, esi
jle 0x5a71d5
jmp 0x5a7050
cmp edx, dword [esp + 0x100]
jae 0x5a71a4
cmp eax, dword [esp + 0xbc]
jae 0x5a71a4
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebp, eax
add ebp, dword [esp + 0xac]
lea edx, [edx + eax*2]
mov dword [esp + 0x5c], edx
mov eax, dword [esp + 0x5c]
mov edx, ebp
movzx ebp, word [eax]
cmp ebp, dword [esp + 0x58]
mov dword [esp + 0x54], ebp
je 0x5a71a0
movzx eax, word [ebx]
movzx edx, byte [edx]
mov dl, byte [edx + 0xa77168]
mov byte [esp + 0xdc], dl
movzx ebx, ax
mov dword [esp + 0x50], ebx
movzx edx, dl
mov dword [esp + 0x2c], edx
mov edx, ebx
shr ebx, 5
and ebx, 0x3f
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0xa4]
shr ebp, 5
and ebp, 0x3f
mov ebp, dword [edx + ebp*4]
mov edx, dword [esp + 0x50]
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x54]
shr ebx, 0xb
mov dword [esp + 0x5c], eax
and edx, 0xffffffe0
shr ax, 0xb
lea edx, [ebp + edx*8]
mov ebp, dword [esp + 0xa8]
mov bx, word [ebp + ebx*4]
sub bx, ax
movzx ax, byte [esp + 0xdc]
imul bx, ax
mov eax, dword [esp + 0x5c]
shr eax, 3
and eax, 0x1f00
add bx, ax
mov eax, dword [esp + 0x54]
add bx, bx
add bx, bx
add bx, bx
and bx, 0xf800
shr edx, 3
and edx, 0x7e0
or dx, bx
mov ebx, dword [esp + 0xa0]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x60]
sub ebx, eax
imul ebx, dword [esp + 0x2c]
shl eax, 8
add ebx, eax
shr ebx, 8
or dx, bx
mov ebx, dword [esp + 0x10]
mov word [ebx], dx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5a71d5
cmp ecx, dword [esp + 0x40]
jl 0x5a7050
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a727b
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a6fa0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a6fa0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5a7302
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov eax, edx
imul edx, dword [esp + 0x9c]
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a74f1
cmp edi, dword [esp + 0x6c]
jge 0x5a74f1
cmp ecx, dword [esp + 0x40]
jge 0x5a74f1
test esi, esi
jle 0x5a74f1
jmp 0x5a7380
cmp ebx, dword [esp + 0x100]
jae 0x5a74c4
cmp eax, dword [esp + 0xbc]
jae 0x5a74c4
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*2]
add ebx, eax
movzx eax, word [edx]
movzx edx, word [ebp]
add ebx, dword [esp + 0xac]
mov dword [esp + 0x5c], edx
movzx ebp, dx
movzx edx, byte [ebx]
mov dl, byte [edx + 0xa77168]
mov ebx, dword [esp + 0xa4]
mov byte [esp + 0xdc], dl
movzx edx, dl
mov dword [esp + 0x2c], edx
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, eax
mov dword [esp + 0x50], ebp
shr ebp, 5
shr edx, 5
and ebp, 0x3f
and edx, 0x3f
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0x50]
sub ebx, ebp
imul ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0xa8]
mov dword [esp + 0x54], eax
shr eax, 0xb
mov bp, word [ebp + eax*4]
movzx ax, byte [esp + 0xdc]
and edx, 0xffffffe0
lea edx, [ebx + edx*8]
mov bx, word [esp + 0x5c]
shr bx, 0xb
sub bp, bx
mov ebx, dword [esp + 0xa0]
imul bp, ax
mov eax, dword [esp + 0x5c]
shr eax, 3
and eax, 0x1f00
add bp, ax
mov eax, dword [esp + 0x54]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x60]
sub ebx, eax
imul ebx, dword [esp + 0x2c]
add bp, bp
add bp, bp
shr edx, 3
add bp, bp
shl eax, 8
add ebx, eax
mov eax, dword [esp + 0x14]
and bp, 0xf800
and edx, 0x7e0
or dx, bp
mov ebp, dword [esp + 0x10]
shr ebx, 8
or dx, bx
mov ebx, dword [esp + 0x1c]
mov word [ebp], dx
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5a74f1
cmp ecx, dword [esp + 0x40]
jl 0x5a7380
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a7597
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a72d0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a72d0
cmp edx, 0xffffff
jne 0x5a7fd7
cmp dword [eax + 0x28], 1
jne 0x5a7ba1
cmp dword [esp + 0x134], 0
je 0x5a78e0
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a763d
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a77e8
cmp edi, dword [esp + 0x6c]
jge 0x5a77e8
cmp ecx, dword [esp + 0x40]
jge 0x5a77e8
test esi, esi
jle 0x5a77e8
cmp ebx, dword [esp + 0x100]
jae 0x5a77b9
cmp eax, dword [esp + 0xbc]
jae 0x5a77b9
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
mov dl, byte [ebp + eax*4 + 2]
test dl, dl
lea eax, [ebp + eax*4]
je 0x5a77b9
cmp dl, 0xff
jne 0x5a771d
mov dx, word [eax]
mov eax, dword [esp + 0x10]
mov word [eax], dx
jmp 0x5a77b9
movzx eax, word [eax]
mov ebx, dword [esp + 0x10]
movzx ebp, word [ebx]
movzx edx, dl
mov dword [esp + 0x4c], edx
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x60], edx
mov ebx, eax
mov edx, ebp
and edx, 0x7e0
and ebx, 0x7e0
sub ebx, edx
imul ebx, dword [esp + 0x4c]
mov edx, ebp
and edx, 0xffffffe0
shl edx, 8
add ebx, edx
mov edx, eax
and edx, 0xf800
mov dword [esp + 0x50], ebp
and ebp, 0xf800
sub edx, ebp
imul edx, dword [esp + 0x4c]
mov ebp, edx
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
shl edx, 8
add ebp, edx
mov edx, dword [esp + 0x60]
and eax, 0x1f
sub eax, edx
imul eax, dword [esp + 0x4c]
shr ebx, 8
shr ebp, 8
shl edx, 8
and ebx, 0x7e0
add eax, edx
and ebp, 0xf800
or ebx, ebp
shr eax, 8
or ebx, eax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5a77e8
cmp ecx, dword [esp + 0x40]
jl 0x5a76b0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a788e
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a7610
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a7610
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a7911
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a7aaa
cmp edi, dword [esp + 0x6c]
jge 0x5a7aaa
cmp ecx, dword [esp + 0x40]
jge 0x5a7aaa
test esi, esi
jle 0x5a7aaa
mov ebp, dword [esp + 0x10]
jmp 0x5a7990
cmp ebx, dword [esp + 0x100]
jae 0x5a7a7d
cmp eax, dword [esp + 0xbc]
jae 0x5a7a7d
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebx, [edx + eax*4]
movzx eax, word [ebx]
movzx ebx, byte [ebx + 2]
movzx edx, word [ebp]
mov dword [esp + 0x4c], ebx
mov ebx, edx
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, edx
and ebx, 0x7e0
mov ebp, eax
and ebp, 0x7e0
sub ebp, ebx
imul ebp, dword [esp + 0x4c]
mov ebx, edx
and ebx, 0xffffffe0
shl ebx, 8
add ebp, ebx
mov ebx, eax
and ebx, 0xf800
mov dword [esp + 0x50], edx
and edx, 0xf800
sub ebx, edx
imul ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
shl edx, 8
add ebx, edx
mov edx, dword [esp + 0x60]
and eax, 0x1f
sub eax, edx
imul eax, dword [esp + 0x4c]
shr ebp, 8
shr ebx, 8
and ebx, 0xf800
shl edx, 8
and ebp, 0x7e0
add eax, edx
or ebp, ebx
shr eax, 8
or ebp, eax
mov eax, dword [esp + 0x14]
mov ebx, ebp
mov ebp, dword [esp + 0x10]
mov word [ebp], bx
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5a7aaa
cmp ecx, dword [esp + 0x40]
jl 0x5a7990
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a7b50
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], edx
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x64]
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], eax
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a78e0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a78e0
cmp dword [esp + 0x134], 0
je 0x5a7dd0
nop
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a7be1
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5a7ccf
cmp edi, dword [esp + 0x6c]
jge 0x5a7ccf
cmp ecx, dword [esp + 0x40]
jge 0x5a7ccf
test esi, esi
jle 0x5a7ccf
cmp ebx, dword [esp + 0x100]
jae 0x5a7cac
cmp eax, dword [esp + 0xbc]
jae 0x5a7cac
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
lea eax, [ebp + eax*2]
movzx eax, word [eax]
movzx edx, ax
cmp edx, dword [esp + 0x58]
je 0x5a7ca8
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x5a7ccf
cmp ecx, dword [esp + 0x40]
jl 0x5a7c50
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a7d75
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a7bb0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a7bb0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a7e01
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5a7ee0
cmp edi, dword [esp + 0x6c]
jge 0x5a7ee0
cmp ecx, dword [esp + 0x40]
jge 0x5a7ee0
test esi, esi
jle 0x5a7ee0
cmp ebx, dword [esp + 0x100]
jae 0x5a7ebd
cmp eax, dword [esp + 0xbc]
jae 0x5a7ebd
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
add ebp, dword [esp + 0x90]
mov dx, word [ebp + eax*2]
mov eax, dword [esp + 0x10]
mov word [eax], dx
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x5a7ee0
cmp ecx, dword [esp + 0x40]
jl 0x5a7e70
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a7f86
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a7dd0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a7dd0
cmp dword [eax + 0x28], 1
jne 0x5a8643
cmp dword [esp + 0x134], 0
je 0x5a8344
nop
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5a8021
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a824d
cmp edi, dword [esp + 0x6c]
jge 0x5a824d
cmp ecx, dword [esp + 0x40]
jge 0x5a824d
test esi, esi
jle 0x5a824d
lea ebx, [ebx]
cmp ebp, dword [esp + 0x100]
jae 0x5a821c
cmp eax, dword [esp + 0xbc]
jae 0x5a821c
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
mov dl, byte [eax + 2]
test dl, dl
mov byte [esp + 0xdc], dl
je 0x5a8218
cmp dl, 0xff
movzx eax, word [eax]
mov dword [esp + 0x54], eax
jne 0x5a8150
mov ebp, dword [esp + 0xa8]
mov edx, eax
shr eax, 0xb
mov bp, word [ebp + eax*4]
mov eax, dword [esp + 0xa4]
shr edx, 5
and edx, 0x3f
shl bp, 6
or bp, word [eax + edx*4]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0xa0]
shl bp, 5
and eax, 0x1f
or bp, word [edx + eax*4]
mov word [ebx], bp
jmp 0x5a8218
movzx ebx, word [ebx]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x5c], ebx
movzx edx, dl
movzx ebx, bx
mov dword [esp + 0x4c], edx
mov edx, ebx
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, eax
mov dword [esp + 0x50], ebx
shr ebx, 5
shr edx, 5
and ebx, 0x3f
and edx, 0x3f
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0x50]
sub ebp, ebx
imul ebp, dword [esp + 0x4c]
mov bx, word [esp + 0x5c]
shr eax, 0xb
and edx, 0xffffffe0
lea edx, [ebp + edx*8]
mov ebp, dword [esp + 0xa8]
mov bp, word [ebp + eax*4]
movzx ax, byte [esp + 0xdc]
shr bx, 0xb
sub bp, bx
mov ebx, dword [esp + 0xa0]
imul bp, ax
mov eax, dword [esp + 0x5c]
shr eax, 3
and eax, 0x1f00
add bp, ax
mov eax, dword [esp + 0x54]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x60]
sub ebx, eax
imul ebx, dword [esp + 0x4c]
add bp, bp
add bp, bp
shr edx, 3
add bp, bp
shl eax, 8
add ebx, eax
and edx, 0x7e0
and bp, 0xf800
shr ebx, 8
or dx, bp
or dx, bx
mov ebx, dword [esp + 0x10]
mov word [ebx], dx
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5a824d
cmp ecx, dword [esp + 0x40]
jl 0x5a80a0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a82f3
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a7ff0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a7ff0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5a8375
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a854c
cmp edi, dword [esp + 0x6c]
jge 0x5a854c
cmp ecx, dword [esp + 0x40]
jge 0x5a854c
test esi, esi
jle 0x5a854c
mov edi, edi
cmp ebp, dword [esp + 0x100]
jae 0x5a851f
cmp eax, dword [esp + 0xbc]
jae 0x5a851f
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
movzx ebx, word [ebx]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*4]
movzx eax, word [edx]
mov dl, byte [edx + 2]
mov ebp, dword [esp + 0xa4]
mov byte [esp + 0xdc], dl
mov dword [esp + 0x5c], ebx
movzx edx, dl
movzx ebx, bx
mov dword [esp + 0x4c], edx
mov edx, ebx
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, eax
mov dword [esp + 0x50], ebx
shr ebx, 5
shr edx, 5
and ebx, 0x3f
and edx, 0x3f
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0x50]
sub ebp, ebx
imul ebp, dword [esp + 0x4c]
mov bx, word [esp + 0x5c]
mov dword [esp + 0x54], eax
shr eax, 0xb
and edx, 0xffffffe0
lea edx, [ebp + edx*8]
mov ebp, dword [esp + 0xa8]
mov bp, word [ebp + eax*4]
movzx ax, byte [esp + 0xdc]
shr bx, 0xb
sub bp, bx
mov ebx, dword [esp + 0xa0]
imul bp, ax
mov eax, dword [esp + 0x5c]
shr eax, 3
and eax, 0x1f00
add bp, ax
mov eax, dword [esp + 0x54]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x60]
sub ebx, eax
imul ebx, dword [esp + 0x4c]
add bp, bp
add bp, bp
shr edx, 3
add bp, bp
shl eax, 8
add ebx, eax
mov eax, dword [esp + 0x14]
and bp, 0xf800
and edx, 0x7e0
or dx, bp
mov ebp, dword [esp + 0x1c]
shr ebx, 8
or dx, bx
mov ebx, dword [esp + 0x10]
mov word [ebx], dx
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5a854c
cmp ecx, dword [esp + 0x40]
jl 0x5a83f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a85f2
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a8344
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a8344
cmp dword [esp + 0x134], 0
je 0x5a88b0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a8682
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5a87b5
cmp edi, dword [esp + 0x6c]
jge 0x5a87b5
cmp ecx, dword [esp + 0x40]
jge 0x5a87b5
test esi, esi
jle 0x5a87b5
cmp ebx, dword [esp + 0x100]
jae 0x5a878e
cmp eax, dword [esp + 0xbc]
jae 0x5a878e
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
lea eax, [ebp + eax*2]
movzx eax, word [eax]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
je 0x5a878a
mov ebp, dword [esp + 0xa8]
mov edx, eax
shr eax, 0xb
mov bp, word [ebp + eax*4]
mov eax, dword [esp + 0xa4]
shr edx, 5
and edx, 0x3f
shl bp, 6
or bp, word [eax + edx*4]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
shl bp, 5
or bp, word [edx + eax*4]
mov eax, dword [esp + 0x10]
mov word [eax], bp
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x5a87b5
cmp ecx, dword [esp + 0x40]
jl 0x5a86f1
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a885b
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a8651
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a8651
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a88e1
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a8a21
cmp edi, dword [esp + 0x6c]
jge 0x5a8a21
cmp ecx, dword [esp + 0x40]
jge 0x5a8a21
test esi, esi
jle 0x5a8a21
jmp 0x5a8960
cmp ebx, dword [esp + 0x100]
jae 0x5a89f6
cmp eax, dword [esp + 0xbc]
jae 0x5a89f6
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
lea eax, [ebp + eax*2]
movzx eax, word [eax]
mov ebp, dword [esp + 0xa8]
mov ebx, eax
shr ebx, 0xb
mov bx, word [ebp + ebx*4]
mov ebp, dword [esp + 0xa4]
mov edx, eax
shr edx, 5
shl bx, 6
and edx, 0x3f
or bx, word [ebp + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
shl bx, 5
or bx, word [edx + eax*4]
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5a8a21
cmp ecx, dword [esp + 0x40]
jl 0x5a8960
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a8acb
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a88b0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a88b0
test edx, edx
je case.0x5bc480.5
mov edx, dword [0x8e80e4]
and edx, 0xffffff
cmp dword [esp + 0x138], 0
je 0x5aa5bd
cmp edx, 0xffffff
jne 0x5a982b
cmp dword [eax + 0x28], 1
jne 0x5a922d
cmp dword [esp + 0x134], 0
je 0x5a8f31
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5a8b94
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5a8e36
cmp edi, dword [esp + 0x6c]
jge 0x5a8e36
cmp ecx, dword [esp + 0x40]
jge 0x5a8e36
test esi, esi
jle 0x5a8e36
nop
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x100]
jae 0x5a8e09
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0xbc]
jae 0x5a8e09
mov eax, edx
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
sar ebx, 0x12
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov dword [esp + 0x2c], ebx
mov bl, byte [edx + 2]
test bl, bl
je 0x5a8e09
cmp bl, 0xff
movzx eax, word [edx]
jne 0x5a8d46
movzx edx, word [ebp]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov dword [esp + 0x2c], ebx
mov ebx, edx
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, edx
and ebx, 0x7e0
mov ebp, eax
and ebp, 0x7e0
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov ebx, edx
and ebx, 0xffffffe0
shl ebx, 0x10
add ebp, ebx
mov ebx, eax
and ebx, 0xf800
mov dword [esp + 0x50], edx
and edx, 0xf800
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
shl edx, 0x10
add ebx, edx
mov edx, dword [esp + 0x60]
and eax, 0x1f
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [0x8e80c0]
shr ebp, 0x10
shr ebx, 0x10
shl edx, 0x10
and ebx, 0xf800
and ebp, 0x7e0
add eax, edx
or ebp, ebx
shr eax, 0x10
or ebp, eax
mov dword [esp + 0x58], ebp
mov ebx, ebp
jmp 0x5a8e01
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
movzx ebp, word [ebp]
mov dword [esp + 0x2c], edx
movzx edx, bl
mov dword [esp + 0x4c], edx
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x60], edx
mov ebx, eax
shr ebx, 5
mov edx, ebp
shr edx, 5
and edx, 0x3f
and ebx, 0x3f
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov edx, ebp
and edx, 0xffffffe0
shl edx, 0x13
add ebx, edx
mov edx, eax
shr edx, 0xb
mov dword [esp + 0x50], ebp
shr ebp, 0xb
sub edx, ebp
imul edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x4c]
imul edx, dword [0x8e80c0]
mov ebp, edx
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
shl edx, 0xd
and eax, 0x1f
add ebp, edx
mov edx, dword [esp + 0x60]
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x4c]
imul eax, dword [0x8e80c0]
shr ebx, 0x13
shr ebp, 0xd
shl edx, 0x18
and ebx, 0x7e0
and ebp, 0xf800
add eax, edx
or ebx, ebp
shr eax, 0x18
or ebx, eax
mov ebp, dword [esp + 0x10]
mov word [ebp], bx
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
add dword [esp + 0x1c], eax
add dword [esp + 0x14], edx
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x10], ebp
je 0x5a8e36
cmp ecx, dword [esp + 0x40]
jl 0x5a8c10
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a8ee0
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a8b62
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a8b62
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a8f62
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a9132
cmp edi, dword [esp + 0x6c]
jge 0x5a9132
cmp ecx, dword [esp + 0x40]
jge 0x5a9132
test esi, esi
jle 0x5a9132
jmp 0x5a8fe0
cmp ebp, dword [esp + 0x100]
jae 0x5a9107
cmp eax, dword [esp + 0xbc]
jae 0x5a9107
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea ebp, [edx + eax*4]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
movzx eax, word [ebp]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [ebp + 2]
mov dword [esp + 0x4c], ebx
mov ebx, edx
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebp, eax
shr ebp, 5
mov ebx, edx
shr ebx, 5
and ebx, 0x3f
and ebp, 0x3f
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov ebx, edx
and ebx, 0xffffffe0
shl ebx, 0x13
add ebp, ebx
mov ebx, eax
shr ebx, 0xb
mov dword [esp + 0x50], edx
shr edx, 0xb
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
and eax, 0x1f
shl edx, 0xd
add ebx, edx
mov edx, dword [esp + 0x60]
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x4c]
imul eax, dword [0x8e80c0]
shr ebp, 0x13
shr ebx, 0xd
shl edx, 0x18
add eax, edx
and ebp, 0x7e0
and ebx, 0xf800
shr eax, 0x18
or ebp, ebx
or ebp, eax
mov eax, dword [esp + 0x10]
mov word [eax], bp
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a9132
cmp ecx, dword [esp + 0x40]
jl 0x5a8fe0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a91dc
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a8f31
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a8f31
cmp dword [esp + 0x134], 0
je 0x5a9540
jmp 0x5a9240
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a9271
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a943e
cmp edi, dword [esp + 0x6c]
jge 0x5a943e
cmp ecx, dword [esp + 0x40]
jge 0x5a943e
test esi, esi
jle 0x5a943e
jmp 0x5a92f0
cmp ebp, dword [esp + 0x100]
jae 0x5a940f
cmp eax, dword [esp + 0xbc]
jae 0x5a940f
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx eax, word [edx]
cmp eax, dword [esp + 0x58]
je 0x5a940f
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x2c], ebx
mov ebx, edx
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebp, eax
mov ebx, edx
and ebx, 0x7e0
and ebp, 0x7e0
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov ebx, edx
and ebx, 0xffffffe0
shl ebx, 0x10
add ebp, ebx
mov ebx, eax
mov dword [esp + 0x50], edx
and edx, 0xf800
and ebx, 0xf800
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
shl edx, 0x10
and eax, 0x1f
add ebx, edx
mov edx, dword [esp + 0x60]
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [0x8e80c0]
shr ebp, 0x10
shr ebx, 0x10
shl edx, 0x10
and ebp, 0x7e0
add eax, edx
and ebx, 0xf800
or ebp, ebx
shr eax, 0x10
or ebp, eax
mov eax, dword [esp + 0x10]
mov word [eax], bp
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a943e
cmp ecx, dword [esp + 0x40]
jl 0x5a92f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a94e8
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a9240
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a9240
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5a9571
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5a9730
cmp edi, dword [esp + 0x6c]
jge 0x5a9730
cmp ecx, dword [esp + 0x40]
jge 0x5a9730
test esi, esi
jle 0x5a9730
jmp 0x5a95f0
cmp ebp, dword [esp + 0x100]
jae 0x5a9705
cmp eax, dword [esp + 0xbc]
jae 0x5a9705
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
movzx eax, word [edx]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x2c], ebx
mov ebx, edx
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebp, eax
mov ebx, edx
and ebx, 0x7e0
and ebp, 0x7e0
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov ebx, edx
and ebx, 0xffffffe0
shl ebx, 0x10
add ebp, ebx
mov ebx, eax
mov dword [esp + 0x50], edx
and edx, 0xf800
and ebx, 0xf800
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
and eax, 0x1f
shl edx, 0x10
add ebx, edx
mov edx, dword [esp + 0x60]
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [0x8e80c0]
shr ebp, 0x10
shr ebx, 0x10
shl edx, 0x10
add eax, edx
and ebp, 0x7e0
and ebx, 0xf800
shr eax, 0x10
or ebp, ebx
or ebp, eax
mov eax, dword [esp + 0x10]
mov word [eax], bp
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5a9730
cmp ecx, dword [esp + 0x40]
jl 0x5a95f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a97da
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a9540
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a9540
cmp dword [eax + 0x28], 1
jne 0x5a9f78
cmp dword [esp + 0x134], 0
je 0x5a9c42
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5a9874
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebp
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5a9b47
cmp edi, dword [esp + 0x6c]
jge 0x5a9b47
cmp ecx, dword [esp + 0x40]
jge 0x5a9b47
test esi, esi
jle 0x5a9b47
nop
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x100]
jae 0x5a9b1a
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0xbc]
jae 0x5a9b1a
mov eax, edx
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebp, 0x12
and edx, 0x3ffff
add edx, eax
mov eax, ebp
imul ebp, dword [esp + 0xb8]
imul eax, dword [esp + 0x98]
add eax, dword [esp + 0x90]
sar edx, 0x12
add ebp, edx
add ebp, dword [esp + 0xac]
lea eax, [eax + edx*4]
mov dl, byte [eax + 2]
test dl, dl
je 0x5a9b1a
cmp dl, 0xff
jne 0x5a9a32
movzx edx, word [eax]
movzx eax, word [ebx]
movzx ebx, byte [ebp]
movzx ebx, byte [ebx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x54], edx
shr edx, 5
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
and edx, 0x3f
mov ebp, dword [ebp + edx*4]
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov ebx, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0xb
add ebp, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
shr eax, 0xb
shr edx, 0xb
mov ebx, dword [ebx + edx*4]
sub ebx, eax
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 5
add ebx, eax
mov eax, dword [esp + 0x54]
shr ebx, 5
and ebx, 0xf800
shr ebp, 0xb
and ebp, 0x7e0
or ebp, ebx
mov ebx, dword [esp + 0xa0]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x50]
and edx, 0x1f
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
jmp 0x5a9b0e
movzx eax, word [eax]
mov dword [esp + 0x54], eax
movzx eax, word [ebx]
movzx ebx, byte [ebp]
movzx ebx, byte [ebx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], ebx
movzx edx, dl
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x54]
shr edx, 5
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
and edx, 0x3f
mov ebp, dword [ebp + edx*4]
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov ebx, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0x13
add ebp, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
shr eax, 0xb
shr edx, 0xb
mov ebx, dword [ebx + edx*4]
sub ebx, eax
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 0xd
add ebx, eax
mov eax, dword [esp + 0x54]
shr ebx, 0xd
and ebx, 0xf800
shr ebp, 0x13
and ebp, 0x7e0
or ebp, ebx
mov ebx, dword [esp + 0xa0]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
and edx, 0x1f
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x50]
shl eax, 0x18
add ebx, eax
shr ebx, 0x18
and ebx, 0x1f
or ebp, ebx
mov ebx, dword [esp + 0x10]
mov word [ebx], bp
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
add dword [esp + 0x1c], edx
add dword [esp + 0x14], eax
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x10], ebx
je 0x5a9b47
cmp ecx, dword [esp + 0x40]
jl 0x5a98f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a9bf1
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a9843
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a9843
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5a9c74
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov eax, edx
imul edx, dword [esp + 0x9c]
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5a9e7d
cmp edi, dword [esp + 0x6c]
jge 0x5a9e7d
cmp ecx, dword [esp + 0x40]
jge 0x5a9e7d
test esi, esi
jle 0x5a9e7d
lea ecx, [ecx]
cmp ebx, dword [esp + 0x100]
jae 0x5a9e50
cmp eax, dword [esp + 0xbc]
jae 0x5a9e50
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
movzx eax, word [edx]
movzx edx, byte [edx + 2]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x54], eax
movzx eax, word [ebp]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x54]
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
shr edx, 5
and edx, 0x3f
mov edx, dword [ebp + edx*4]
sub edx, ebx
imul edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x4c]
imul edx, dword [0x8e80c0]
mov ebp, dword [esp + 0xa8]
mov ebx, eax
and ebx, 0xffffffe0
shl ebx, 0x13
add edx, ebx
mov ebx, dword [esp + 0x54]
shr ebx, 0xb
mov ebx, dword [ebp + ebx*4]
mov dword [esp + 0x50], eax
shr eax, 0xb
sub ebx, eax
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
shr edx, 0x13
and edx, 0x7e0
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 0xd
add ebx, eax
mov eax, dword [esp + 0x58]
shr ebx, 0xd
and ebx, 0xf800
or eax, ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x54]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
and edx, 0x1f
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x10]
shl eax, 0x18
add ebx, eax
mov eax, dword [esp + 0x58]
shr ebx, 0x18
and ebx, 0x1f
or eax, ebx
mov ebx, dword [esp + 0x1c]
mov word [ebp], ax
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5a9e7d
cmp ecx, dword [esp + 0x40]
jl 0x5a9cf0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5a9f27
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a9c42
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a9c42
cmp dword [esp + 0x134], 0
je 0x5aa2a5
jmp 0x5a9f90
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5a9fc1
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebp
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
add esi, 1
add eax, ebp
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5aa1ae
cmp edi, dword [esp + 0x6c]
jge 0x5aa1ae
cmp ecx, dword [esp + 0x40]
jge 0x5aa1ae
test esi, esi
jle 0x5aa1ae
lea esp, [esp]
cmp edx, dword [esp + 0x100]
jae 0x5aa17d
cmp eax, dword [esp + 0xbc]
jae 0x5aa17d
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*2]
movzx edx, word [edx]
add ebp, eax
add ebp, dword [esp + 0xac]
cmp edx, dword [esp + 0x58]
mov dword [esp + 0x54], edx
je 0x5aa179
movzx eax, word [ebx]
movzx ebx, byte [ebp]
movzx ebx, byte [ebx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], ebx
shr edx, 5
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
and edx, 0x3f
mov ebp, dword [ebp + edx*4]
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov ebx, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0xb
add ebp, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
shr eax, 0xb
shr edx, 0xb
mov ebx, dword [ebx + edx*4]
sub ebx, eax
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 5
add ebx, eax
mov eax, dword [esp + 0x54]
shr ebx, 5
and ebx, 0xf800
shr ebp, 0xb
and ebp, 0x7e0
or ebp, ebx
mov ebx, dword [esp + 0xa0]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x50]
and edx, 0x1f
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
and ebx, 0x1f
or ebp, ebx
mov ebx, dword [esp + 0x10]
mov word [ebx], bp
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5aa1ae
cmp ecx, dword [esp + 0x40]
jl 0x5aa040
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5aa254
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5a9f90
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5a9f90
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5aa2d7
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov eax, edx
imul edx, dword [esp + 0x9c]
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5aa4c2
cmp edi, dword [esp + 0x6c]
jge 0x5aa4c2
cmp ecx, dword [esp + 0x40]
jge 0x5aa4c2
test esi, esi
jle 0x5aa4c2
cmp ebx, dword [esp + 0x100]
jae 0x5aa495
cmp eax, dword [esp + 0xbc]
jae 0x5aa495
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
movzx edx, word [edx]
movzx eax, word [ebp]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x54], edx
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
shr edx, 5
and edx, 0x3f
mov edx, dword [ebp + edx*4]
sub edx, ebx
imul edx, dword [esp + 0x2c]
imul edx, dword [0x8e80c0]
mov ebp, dword [esp + 0xa8]
mov ebx, eax
and ebx, 0xffffffe0
shl ebx, 0xb
add edx, ebx
mov ebx, dword [esp + 0x54]
shr ebx, 0xb
mov ebx, dword [ebp + ebx*4]
mov dword [esp + 0x50], eax
shr eax, 0xb
sub ebx, eax
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
shr edx, 0xb
and edx, 0x7e0
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 5
add ebx, eax
mov eax, dword [esp + 0x58]
shr ebx, 5
and ebx, 0xf800
or eax, ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x54]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x50]
and edx, 0x1f
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov ebp, dword [esp + 0x10]
shl eax, 0x10
add ebx, eax
mov eax, dword [esp + 0x58]
shr ebx, 0x10
and ebx, 0x1f
or eax, ebx
mov ebx, dword [esp + 0x1c]
mov word [ebp], ax
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5aa4c2
cmp ecx, dword [esp + 0x40]
jl 0x5aa350
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5aa56c
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5aa2a5
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5aa2a5
cmp edx, 0xffffff
jne 0x5ab1e2
cmp dword [eax + 0x28], 1
jne 0x5aac4a
cmp dword [esp + 0x134], 0
je 0x5aa970
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5aa612
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5aa86a
cmp edi, dword [esp + 0x6c]
jge 0x5aa86a
cmp ecx, dword [esp + 0x40]
jge 0x5aa86a
test esi, esi
jle 0x5aa86a
cmp ebx, dword [esp + 0x100]
jae 0x5aa83b
cmp eax, dword [esp + 0xbc]
jae 0x5aa83b
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
mov dl, byte [eax + 2]
test dl, dl
je 0x5aa837
cmp dl, 0xff
jne 0x5aa784
movzx eax, word [eax]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov dword [esp + 0x50], edx
shr edx, 5
mov ebx, eax
shr ebx, 5
and edx, 0x3f
and ebx, 0x3f
sub ebx, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
and edx, 0x3f
add dx, word [ebp + ebx*4]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x54], eax
shr ebx, 0xb
shr eax, 0xb
sub eax, ebx
movzx ebx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x50]
shl dx, 5
shl bx, 0xb
or dx, bx
mov word [esp + 0xdc], dx
mov edx, dword [esp + 0x54]
movzx ebx, word [esp + 0xdc]
and eax, 0x1f
and edx, 0x1f
sub edx, eax
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + edx*4]
or bx, ax
jmp 0x5aa830
movzx ebx, word [eax]
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
movzx edx, dl
mov dword [esp + 0x4c], edx
mov edx, eax
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, eax
and edx, 0x7e0
mov dword [esp + 0x54], ebx
and ebx, 0x7e0
sub ebx, edx
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0x10
add ebx, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
and eax, 0xf800
and edx, 0xf800
sub edx, eax
imul edx, dword [esp + 0x4c]
imul edx, dword [0x8e80c0]
mov eax, dword [esp + 0x50]
and eax, 0xfffff800
shl eax, 0x10
add edx, eax
mov eax, dword [esp + 0x54]
and eax, 0x1f
sub eax, dword [esp + 0x60]
shr edx, 0x10
imul eax, dword [esp + 0x4c]
imul eax, dword [0x8e80c0]
shr ebx, 0x10
and edx, 0xf800
and ebx, 0x7e0
or ebx, edx
mov edx, dword [esp + 0x60]
shl edx, 0x10
add eax, edx
shr eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5aa86a
cmp ecx, dword [esp + 0x40]
jl 0x5aa691
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5aa917
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5aa5e1
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5aa5e1
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5aa9a1
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5aab4f
cmp edi, dword [esp + 0x6c]
jge 0x5aab4f
cmp ecx, dword [esp + 0x40]
jge 0x5aab4f
test esi, esi
jle 0x5aab4f
mov ebp, dword [esp + 0x10]
jmp 0x5aaa20
cmp ebx, dword [esp + 0x100]
jae 0x5aab22
cmp eax, dword [esp + 0xbc]
jae 0x5aab22
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebx, [edx + eax*4]
movzx eax, word [ebx]
movzx ebx, byte [ebx + 2]
movzx edx, word [ebp]
mov dword [esp + 0x4c], ebx
mov ebx, edx
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebp, eax
mov ebx, edx
and ebx, 0x7e0
and ebp, 0x7e0
sub ebp, ebx
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov ebx, edx
and ebx, 0xffffffe0
shl ebx, 0x10
add ebp, ebx
mov ebx, eax
and ebx, 0xf800
mov dword [esp + 0x50], edx
and edx, 0xf800
sub ebx, edx
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
shl edx, 0x10
add ebx, edx
mov edx, dword [esp + 0x60]
and eax, 0x1f
sub eax, edx
imul eax, dword [esp + 0x4c]
imul eax, dword [0x8e80c0]
shr ebp, 0x10
shr ebx, 0x10
and ebx, 0xf800
shl edx, 0x10
and ebp, 0x7e0
add eax, edx
or ebp, ebx
shr eax, 0x10
or ebp, eax
mov eax, dword [esp + 0x14]
mov ebx, ebp
mov ebp, dword [esp + 0x10]
mov word [ebp], bx
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5aab4f
cmp ecx, dword [esp + 0x40]
jl 0x5aaa20
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5aabf9
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], edx
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x64]
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], eax
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5aa970
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5aa970
cmp dword [esp + 0x134], 0
je 0x5aaf20
jmp 0x5aac60
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5aac91
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5aae1e
cmp edi, dword [esp + 0x6c]
jge 0x5aae1e
cmp ecx, dword [esp + 0x40]
jge 0x5aae1e
test esi, esi
jle 0x5aae1e
cmp ebx, dword [esp + 0x100]
jae 0x5aadef
cmp eax, dword [esp + 0xbc]
jae 0x5aadef
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx edx, word [eax]
cmp edx, dword [esp + 0x58]
mov dword [esp + 0x54], edx
je 0x5aadeb
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
mov dword [esp + 0x5c], eax
movzx eax, ax
mov ebx, eax
shr edx, 5
shr ebx, 5
and edx, 0x3f
and ebx, 0x3f
sub edx, ebx
mov ebx, dword [esp + 0x5c]
shr ebx, 5
mov dword [esp + 0x50], eax
shr eax, 0xb
and ebx, 0x3f
add bx, word [ebp + edx*4]
mov edx, dword [esp + 0x54]
shr edx, 0xb
sub edx, eax
mov ax, word [esp + 0x5c]
shr ax, 0xb
add ax, word [ebp + edx*4]
mov edx, dword [esp + 0x54]
shl ax, 0xb
shl bx, 5
or bx, ax
mov eax, dword [esp + 0x50]
and eax, 0x1f
and edx, 0x1f
sub edx, eax
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + edx*4]
mov edx, dword [esp + 0x10]
or bx, ax
mov word [edx], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5aae1e
cmp ecx, dword [esp + 0x40]
jl 0x5aad10
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5aaecb
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5aac60
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5aac60
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5aaf51
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5ab0e4
cmp edi, dword [esp + 0x6c]
jge 0x5ab0e4
cmp ecx, dword [esp + 0x40]
jge 0x5ab0e4
test esi, esi
jle 0x5ab0e4
cmp ebx, dword [esp + 0x100]
jae 0x5ab0b9
cmp eax, dword [esp + 0xbc]
jae 0x5ab0b9
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx eax, word [eax]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov dword [esp + 0x50], edx
mov ebx, eax
shr edx, 5
shr ebx, 5
and edx, 0x3f
and ebx, 0x3f
sub ebx, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
and edx, 0x3f
add dx, word [ebp + ebx*4]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x54], eax
shr eax, 0xb
shr ebx, 0xb
sub eax, ebx
movzx ebx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x50]
shl dx, 5
shl bx, 0xb
or dx, bx
and eax, 0x1f
mov word [esp + 0xdc], dx
mov edx, dword [esp + 0x54]
movzx ebx, word [esp + 0xdc]
and edx, 0x1f
sub edx, eax
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + edx*4]
or bx, ax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5ab0e4
cmp ecx, dword [esp + 0x40]
jl 0x5aafd0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ab191
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5aaf20
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5aaf20
cmp dword [eax + 0x28], 1
jne 0x5ab8b5
cmp dword [esp + 0x134], 0
je 0x5ab5c2
lea ebx, [ebx]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5ab231
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5ab4c4
cmp edi, dword [esp + 0x6c]
jge 0x5ab4c4
cmp ecx, dword [esp + 0x40]
jge 0x5ab4c4
test esi, esi
jle 0x5ab4c4
cmp ebx, dword [esp + 0x100]
jae 0x5ab495
cmp eax, dword [esp + 0xbc]
jae 0x5ab495
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
mov dl, byte [eax + 2]
test dl, dl
je 0x5ab491
cmp dl, 0xff
mov ebx, dword [esp + 0xa4]
jne 0x5ab3c6
movzx eax, word [eax]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x54], eax
shr eax, 5
movzx edx, dx
and eax, 0x3f
mov eax, dword [ebx + eax*4]
mov dword [esp + 0x50], edx
mov ebx, edx
shr edx, 5
and edx, 0x3f
sub eax, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
and edx, 0x3f
add dx, word [ebp + eax*4]
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0xa8]
shr eax, 0xb
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0xdc]
shr ebx, 0xb
sub eax, ebx
mov bx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x54]
shl bx, 0xb
shl dx, 5
or dx, bx
mov ebx, dword [esp + 0x50]
and ebx, 0x1f
and eax, 0x1f
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + ebx*4]
or dx, ax
mov eax, dword [esp + 0x10]
mov word [eax], dx
jmp 0x5ab491
movzx ebp, word [eax]
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
mov dword [esp + 0x54], ebp
shr ebp, 5
movzx edx, dl
and ebp, 0x3f
mov ebx, dword [ebx + ebp*4]
mov dword [esp + 0x4c], edx
mov edx, eax
shr edx, 5
and edx, 0x3f
sub ebx, edx
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov ebp, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0xb
add ebx, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
shr eax, 0xb
shr edx, 0xb
mov ebp, dword [ebp + edx*4]
sub ebp, eax
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 5
add ebp, eax
mov eax, dword [esp + 0x54]
shr ebp, 5
and ebp, 0xf800
shr ebx, 0xb
and ebx, 0x7e0
or ebx, ebp
mov ebp, dword [esp + 0xa0]
and eax, 0x1f
mov ebp, dword [ebp + eax*4]
mov eax, dword [esp + 0x50]
and edx, 0x1f
sub ebp, edx
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov edx, dword [esp + 0x10]
shl eax, 0x10
add ebp, eax
shr ebp, 0x10
and ebp, 0x1f
or ebx, ebp
mov ebp, dword [esp + 0xdc]
mov word [edx], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5ab4c4
cmp ecx, dword [esp + 0x40]
jl 0x5ab2b0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ab571
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5ab200
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5ab200
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5ab5f3
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5ab7ba
cmp edi, dword [esp + 0x6c]
jge 0x5ab7ba
cmp ecx, dword [esp + 0x40]
jge 0x5ab7ba
test esi, esi
jle 0x5ab7ba
lea esp, [esp]
cmp ebp, dword [esp + 0x100]
jae 0x5ab78d
cmp eax, dword [esp + 0xbc]
jae 0x5ab78d
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
movzx ebp, word [edx + eax*4]
lea edx, [edx + eax*4]
movzx eax, word [ebx]
movzx edx, byte [edx + 2]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x4c], edx
shr ebp, 5
mov edx, eax
and ebp, 0x3f
mov ebp, dword [ebx + ebp*4]
shr edx, 5
and edx, 0x3f
sub ebp, edx
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov ebx, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0xb
add ebp, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
shr eax, 0xb
shr edx, 0xb
mov ebx, dword [ebx + edx*4]
sub ebx, eax
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 5
add ebx, eax
mov eax, dword [esp + 0x54]
shr ebx, 5
and ebx, 0xf800
shr ebp, 0xb
and ebp, 0x7e0
or ebp, ebx
mov ebx, dword [esp + 0xa0]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x50]
and edx, 0x1f
sub ebx, edx
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
shl eax, 0x10
add ebx, eax
mov eax, dword [esp + 0x14]
shr ebx, 0x10
and ebx, 0x1f
or ebp, ebx
mov ebx, dword [esp + 0x10]
mov word [ebx], bp
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5ab7ba
cmp ecx, dword [esp + 0x40]
jl 0x5ab670
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ab864
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5ab5c2
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5ab5c2
cmp dword [esp + 0x134], 0
je 0x5abbb0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5ab8f4
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5abaaf
cmp edi, dword [esp + 0x6c]
jge 0x5abaaf
cmp ecx, dword [esp + 0x40]
jge 0x5abaaf
test esi, esi
jle 0x5abaaf
cmp ebx, dword [esp + 0x100]
jae 0x5aba80
cmp eax, dword [esp + 0xbc]
jae 0x5aba80
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx edx, word [eax]
cmp edx, dword [esp + 0x58]
mov dword [esp + 0x54], edx
je 0x5aba7c
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x5c], eax
shr edx, 5
movzx eax, ax
and edx, 0x3f
mov edx, dword [ebx + edx*4]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x50], eax
shr eax, 5
and eax, 0x3f
sub edx, eax
mov eax, dword [esp + 0x54]
shr ebx, 5
shr eax, 0xb
and ebx, 0x3f
add bx, word [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
mov eax, dword [ebp + eax*4]
mov edx, dword [esp + 0x50]
mov ebp, dword [esp + 0xdc]
shr edx, 0xb
sub eax, edx
mov dx, word [esp + 0x5c]
shr dx, 0xb
add dx, word [ebp + eax*4]
mov eax, dword [esp + 0x54]
shl dx, 0xb
shl bx, 5
or bx, dx
mov edx, dword [esp + 0x50]
and edx, 0x1f
and eax, 0x1f
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0xa0]
mov edx, dword [edx + eax*4]
sub edx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + edx*4]
or bx, ax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5abaaf
cmp ecx, dword [esp + 0x40]
jl 0x5ab973
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5abb5c
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5ab8c3
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5ab8c3
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5abbe1
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5abd90
cmp edi, dword [esp + 0x6c]
jge 0x5abd90
cmp ecx, dword [esp + 0x40]
jge 0x5abd90
test esi, esi
jle 0x5abd90
cmp ebx, dword [esp + 0x100]
jae 0x5abd65
cmp eax, dword [esp + 0xbc]
jae 0x5abd65
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xa4]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx eax, word [eax]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], edx
shr eax, 5
movzx edx, dx
and eax, 0x3f
mov eax, dword [ebx + eax*4]
mov dword [esp + 0x50], edx
mov ebx, edx
shr edx, 5
and edx, 0x3f
sub eax, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
shr ebx, 0xb
and edx, 0x3f
add dx, word [ebp + eax*4]
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0xa8]
shr eax, 0xb
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0xdc]
sub eax, ebx
mov bx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x54]
shl bx, 0xb
shl dx, 5
or dx, bx
mov ebx, dword [esp + 0x50]
and ebx, 0x1f
and eax, 0x1f
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + ebx*4]
mov ebx, dword [esp + 0x1c]
or dx, ax
mov eax, dword [esp + 0x10]
mov word [eax], dx
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5abd90
cmp ecx, dword [esp + 0x40]
jl 0x5abc60
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5abe3d
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5abbb0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5abbb0
cmp dword [0x8e80c0], 0
je case.0x5bc480.5
mov edx, dword [0x8e80e4]
and edx, 0xffffff
cmp dword [esp + 0x138], 0
je 0x5ad7e7
cmp edx, 0xffffff
jne 0x5acaef
cmp dword [eax + 0x28], 1
jne 0x5ac52d
cmp dword [esp + 0x134], 0
je 0x5ac240
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5abf11
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x14]
imul ebp, dword [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add ebp, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
jl 0x5ac139
cmp edi, dword [esp + 0x6c]
jge 0x5ac139
cmp ecx, dword [esp + 0x40]
jge 0x5ac139
test esi, esi
jle 0x5ac139
jmp 0x5abf99
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x100]
jae 0x5ac10e
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0xbc]
jae 0x5ac10e
mov eax, edx
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebp, 0x12
and edx, 0x3ffff
add edx, eax
mov eax, ebp
imul ebp, dword [esp + 0xb8]
imul eax, dword [esp + 0x98]
add eax, dword [esp + 0x90]
sar edx, 0x12
add ebp, edx
add ebp, dword [esp + 0xac]
lea eax, [eax + edx*4]
mov dl, byte [eax + 2]
test dl, dl
je 0x5ac10e
cmp dl, 0xff
movzx eax, word [eax]
mov dword [esp + 0x54], eax
jne 0x5ac06b
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov ebp, eax
and ebp, 0xf800
imul ebp, edx
and eax, 0x7e0
imul eax, edx
shr ebp, 0x13
mov bp, word [ebx + ebp*4]
shr eax, 0xd
shl bp, 6
add bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, edx
shl bp, 5
shr eax, 8
add bp, word [ebx + eax*4]
mov eax, dword [esp + 0x10]
movzx edx, word [eax]
movzx ebp, bp
jmp 0x5ac0d3
movzx ebp, byte [ebp]
movzx ebp, byte [ebp + 0xa77168]
and eax, 0xf800
imul eax, ebp
movzx edx, dl
imul eax, edx
shr eax, 0x1b
mov dword [esp + 0x4c], edx
mov dx, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
and eax, 0x7e0
imul eax, ebp
imul eax, dword [esp + 0x4c]
shr eax, 0x15
shl dx, 6
add dx, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, ebp
imul eax, dword [esp + 0x4c]
shl dx, 5
shr eax, 0x10
add dx, word [ebx + eax*4]
mov dword [esp + 0x2c], ebp
movzx ebp, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
movzx eax, dx
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
add dword [esp + 0x1c], eax
add dword [esp + 0x14], edx
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
je 0x5ac139
cmp ecx, dword [esp + 0x40]
jl 0x5abf95
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ac1e6
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5abee0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5abee0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5ac271
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5ac42f
cmp edi, dword [esp + 0x6c]
jge 0x5ac42f
cmp ecx, dword [esp + 0x40]
jge 0x5ac42f
test esi, esi
jle 0x5ac42f
cmp edx, dword [esp + 0x100]
jae 0x5ac404
cmp eax, dword [esp + 0xbc]
jae 0x5ac404
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebp, 0x12
and edx, 0x3ffff
add eax, edx
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebp, eax
add ebp, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebp]
movzx eax, byte [eax + 0xa77168]
movzx ebp, word [edx]
movzx edx, byte [edx + 2]
mov dword [esp + 0x54], ebp
and ebp, 0xf800
imul ebp, eax
imul ebp, edx
mov dword [esp + 0x4c], edx
shr ebp, 0x1b
mov dx, word [ebx + ebp*4]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x2c], eax
and ebp, 0x7e0
imul ebp, eax
mov eax, dword [esp + 0x54]
imul ebp, dword [esp + 0x4c]
and eax, 0x1f
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x4c]
shl dx, 6
shr ebp, 0x15
add dx, word [ebx + ebp*4]
shr eax, 0x10
shl dx, 5
add dx, word [ebx + eax*4]
mov eax, dword [esp + 0x10]
movzx ebp, dx
movzx edx, word [eax]
movzx eax, dx
and eax, 0xf7def7df
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x5ac42f
cmp ecx, dword [esp + 0x40]
jl 0x5ac2f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ac4dc
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5ac240
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5ac240
cmp dword [esp + 0x134], 0
je 0x5ac820
jmp 0x5ac540
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5ac571
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x14]
imul ebp, dword [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add ebp, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
jl 0x5ac71f
cmp edi, dword [esp + 0x6c]
jge 0x5ac71f
cmp ecx, dword [esp + 0x40]
jge 0x5ac71f
test esi, esi
jle 0x5ac71f
cmp eax, dword [esp + 0x100]
jae 0x5ac6f0
cmp ebp, dword [esp + 0xbc]
jae 0x5ac6f0
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebp, eax
add ebp, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx eax, word [edx]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
je 0x5ac6ec
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov ebp, eax
and ebp, 0xf800
imul ebp, edx
and eax, 0x7e0
imul eax, edx
shr ebp, 0x13
mov bp, word [ebx + ebp*4]
shr eax, 0xd
shl bp, 6
add bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, edx
shr eax, 8
shl bp, 5
add bp, word [ebx + eax*4]
mov eax, dword [esp + 0x10]
movzx edx, word [eax]
movzx ebp, bp
movzx eax, dx
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
add eax, dword [esp + 0x44]
add ebp, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
je 0x5ac71f
cmp ecx, dword [esp + 0x40]
jl 0x5ac5f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ac7cc
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5ac540
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5ac540
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5ac851
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5ac9f1
cmp edi, dword [esp + 0x6c]
jge 0x5ac9f1
cmp ecx, dword [esp + 0x40]
jge 0x5ac9f1
test esi, esi
jle 0x5ac9f1
cmp edx, dword [esp + 0x100]
jae 0x5ac9c6
cmp eax, dword [esp + 0xbc]
jae 0x5ac9c6
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
sar eax, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
add ebp, eax
add ebp, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx eax, byte [ebp]
movzx ebp, byte [eax + 0xa77168]
movzx eax, word [edx]
mov edx, eax
mov dword [esp + 0x54], eax
and edx, 0xf800
imul edx, ebp
and eax, 0x7e0
imul eax, ebp
shr edx, 0x13
mov dx, word [ebx + edx*4]
shr eax, 0xd
shl dx, 6
add dx, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, ebp
shr eax, 8
shl dx, 5
add dx, word [ebx + eax*4]
mov eax, dword [esp + 0x10]
movzx ebp, dx
movzx edx, word [eax]
movzx eax, dx
and eax, 0xf7def7df
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x5ac9f1
cmp ecx, dword [esp + 0x40]
jl 0x5ac8d0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5aca9e
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5ac820
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5ac820
cmp dword [eax + 0x28], 1
jne 0x5ad1ce
cmp dword [esp + 0x134], 0
je 0x5aceb4
jmp 0x5acb10
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5acb41
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x14]
imul ebp, dword [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add ebp, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
jl 0x5acdb6
cmp edi, dword [esp + 0x6c]
jge 0x5acdb6
cmp ecx, dword [esp + 0x40]
jge 0x5acdb6
test esi, esi
jle 0x5acdb6
jmp 0x5acbc9
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x100]
jae 0x5acd8b
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0xbc]
jae 0x5acd8b
mov eax, edx
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebp, eax
add ebp, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov al, byte [edx + 2]
test al, al
je 0x5acd8b
cmp al, 0xff
jne 0x5accbb
movzx eax, word [edx]
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], edx
mov edx, eax
shr edx, 5
mov dword [esp + 0x54], eax
shr eax, 0xb
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
imul edx, dword [esp + 0x2c]
mov eax, dword [ebp + eax*4]
imul eax, dword [esp + 0x2c]
shr eax, 8
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
shl bp, 6
shr edx, 8
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
imul eax, dword [esp + 0x2c]
shl bp, 5
shr eax, 8
add bp, word [ebx + eax*4]
movzx ebp, bp
jmp 0x5acd49
movzx edx, word [edx]
movzx ebp, byte [ebp]
movzx ebp, byte [ebp + 0xa77168]
movzx eax, al
mov dword [esp + 0x4c], eax
mov eax, edx
shr eax, 5
and eax, 0x3f
mov dword [esp + 0x54], edx
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0xa4]
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0xa8]
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x4c]
shr edx, 0xb
mov edx, dword [ebp + edx*4]
imul edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0xa0]
shr edx, 0x10
mov dx, word [ebx + edx*4]
shr eax, 0x10
shl dx, 6
add dx, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
and eax, 0x1f
mov eax, dword [ebp + eax*4]
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x4c]
shl dx, 5
shr eax, 0x10
add dx, word [ebx + eax*4]
movzx ebp, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
movzx eax, dx
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
add dword [esp + 0x1c], eax
add dword [esp + 0x14], edx
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
je 0x5acdb6
cmp ecx, dword [esp + 0x40]
jl 0x5acbc5
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ace63
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5acb10
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5acb10
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5acee5
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5ad0d0
cmp edi, dword [esp + 0x6c]
jge 0x5ad0d0
cmp ecx, dword [esp + 0x40]
jge 0x5ad0d0
test esi, esi
jle 0x5ad0d0
jmp 0x5acf70
cmp edx, dword [esp + 0x100]
jae 0x5ad0a5
cmp eax, dword [esp + 0xbc]
jae 0x5ad0a5
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebp, eax
add ebp, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, word [edx]
movzx edx, byte [edx + 2]
movzx ebp, byte [ebp]
movzx ebp, byte [ebp + 0xa77168]
mov dword [esp + 0x4c], edx
mov edx, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0xa4]
shr edx, 5
shr eax, 0xb
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
imul edx, dword [esp + 0x2c]
mov eax, dword [ebp + eax*4]
imul edx, dword [esp + 0x4c]
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x4c]
shr eax, 0x10
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
shr edx, 0x10
and eax, 0x1f
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + eax*4]
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shr eax, 0x10
shl bp, 5
add bp, word [ebx + eax*4]
movzx eax, dx
movzx ebp, bp
and eax, 0xf7def7df
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x5ad0d0
cmp ecx, dword [esp + 0x40]
jl 0x5acf70
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ad17d
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5aceb4
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5aceb4
cmp dword [esp + 0x134], 0
je 0x5ad4e5
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5ad211
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x14]
imul ebp, dword [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add ebp, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
jl 0x5ad3e7
cmp edi, dword [esp + 0x6c]
jge 0x5ad3e7
cmp ecx, dword [esp + 0x40]
jge 0x5ad3e7
test esi, esi
jle 0x5ad3e7
cmp eax, dword [esp + 0x100]
jae 0x5ad3b8
cmp ebp, dword [esp + 0xbc]
jae 0x5ad3b8
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebp, eax
add ebp, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx eax, word [edx]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
je 0x5ad3b4
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], edx
mov edx, eax
shr edx, 5
shr eax, 0xb
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
imul edx, dword [esp + 0x2c]
mov eax, dword [ebp + eax*4]
imul eax, dword [esp + 0x2c]
shr eax, 8
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
shr edx, 8
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
imul eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shr eax, 8
shl bp, 5
add bp, word [ebx + eax*4]
movzx eax, dx
movzx ebp, bp
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
add eax, dword [esp + 0x44]
add ebp, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
je 0x5ad3e7
cmp ecx, dword [esp + 0x40]
jl 0x5ad290
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ad494
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5ad1e0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5ad1e0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5ad516
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5ad6e9
cmp edi, dword [esp + 0x6c]
jge 0x5ad6e9
cmp ecx, dword [esp + 0x40]
jge 0x5ad6e9
test esi, esi
jle 0x5ad6e9
jmp 0x5ad5a0
cmp edx, dword [esp + 0x100]
jae 0x5ad6be
cmp eax, dword [esp + 0xbc]
jae 0x5ad6be
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*2]
add ebp, eax
movzx eax, word [edx]
add ebp, dword [esp + 0xac]
mov dword [esp + 0x54], eax
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], edx
mov edx, eax
shr edx, 5
shr eax, 0xb
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
imul edx, dword [esp + 0x2c]
mov eax, dword [ebp + eax*4]
imul eax, dword [esp + 0x2c]
shr eax, 8
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
shr edx, 8
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
imul eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shr eax, 8
shl bp, 5
add bp, word [ebx + eax*4]
movzx eax, dx
movzx ebp, bp
and eax, 0xf7def7df
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x5ad6e9
cmp ecx, dword [esp + 0x40]
jl 0x5ad5a0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ad796
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5ad4e5
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5ad4e5
cmp edx, 0xffffff
jne 0x5ae35b
cmp dword [eax + 0x28], 1
jne 0x5addfa
cmp dword [esp + 0x134], 0
je 0x5adb25
jmp 0x5ad810
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5ad841
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x5ada27
cmp edi, dword [esp + 0x6c]
jge 0x5ada27
cmp ecx, dword [esp + 0x40]
jge 0x5ada27
test esi, esi
jle 0x5ada27
cmp ebp, dword [esp + 0x100]
jae 0x5ad9f8
cmp eax, dword [esp + 0xbc]
jae 0x5ad9f8
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
mov al, byte [ebp + 2]
test al, al
je 0x5ad9f4
cmp al, 0xff
jne 0x5ad95a
movzx eax, word [ebp]
mov edx, eax
shr edx, 0xb
mov dx, word [ebx + edx*4]
mov ebp, eax
shr ebp, 5
shl dx, 6
and ebp, 0x3f
add dx, word [ebx + ebp*4]
and eax, 0x1f
shl dx, 5
add dx, word [ebx + eax*4]
mov eax, dword [esp + 0x10]
movzx ebp, dx
movzx edx, word [eax]
jmp 0x5ad9b9
movzx ebp, word [ebp]
movzx edx, al
mov eax, ebp
and eax, 0xf800
imul eax, edx
mov dword [esp + 0x54], ebp
and ebp, 0x7e0
imul ebp, edx
shr eax, 0x13
mov ax, word [ebx + eax*4]
shl ax, 6
shr ebp, 0xd
add ax, word [ebx + ebp*4]
shl ax, 5
mov word [esp + 0xdc], ax
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, edx
mov dx, word [esp + 0xdc]
shr eax, 8
add dx, word [ebx + eax*4]
movzx ebp, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
movzx eax, dx
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5ada27
cmp ecx, dword [esp + 0x40]
jl 0x5ad8c2
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5adad4
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5ad810
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5ad810
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5adb56
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5adcfc
cmp edi, dword [esp + 0x6c]
jge 0x5adcfc
cmp ecx, dword [esp + 0x40]
jge 0x5adcfc
test esi, esi
jle 0x5adcfc
jmp 0x5adbe0
cmp ebp, dword [esp + 0x100]
jae 0x5adcd1
cmp eax, dword [esp + 0xbc]
jae 0x5adcd1
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
movzx ebp, word [edx + eax*4]
lea eax, [edx + eax*4]
movzx edx, byte [eax + 2]
mov eax, ebp
and eax, 0xf800
imul eax, edx
mov dword [esp + 0x54], ebp
and ebp, 0x7e0
imul ebp, edx
shr eax, 0x13
mov ax, word [ebx + eax*4]
shl ax, 6
shr ebp, 0xd
add ax, word [ebx + ebp*4]
shl ax, 5
mov word [esp + 0xdc], ax
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, edx
mov dx, word [esp + 0xdc]
shr eax, 8
add dx, word [ebx + eax*4]
movzx ebp, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
movzx eax, dx
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and edx, 0x820
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5adcfc
cmp ecx, dword [esp + 0x40]
jl 0x5adbe0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5adda9
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5adb25
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5adb25
cmp dword [esp + 0x134], 0
je 0x5ae0c0
jmp 0x5ade10
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5ade41
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x5adfb9
cmp edi, dword [esp + 0x6c]
jge 0x5adfb9
cmp ecx, dword [esp + 0x40]
jge 0x5adfb9
test esi, esi
jle 0x5adfb9
cmp ebp, dword [esp + 0x100]
jae 0x5adf8e
cmp eax, dword [esp + 0xbc]
jae 0x5adf8e
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx eax, word [eax]
cmp eax, dword [esp + 0x58]
je 0x5adf86
mov edx, eax
shr edx, 0xb
mov dx, word [ebx + edx*4]
mov ebp, eax
shl dx, 6
shr ebp, 5
and ebp, 0x3f
add dx, word [ebx + ebp*4]
and eax, 0x1f
shl dx, 5
add dx, word [ebx + eax*4]
mov eax, dword [esp + 0x10]
movzx ebp, dx
movzx edx, word [eax]
movzx eax, dx
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5adfb9
cmp ecx, dword [esp + 0x40]
jl 0x5adec2
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ae066
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5ade10
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5ade10
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5ae0f1
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5ae25d
cmp edi, dword [esp + 0x6c]
jge 0x5ae25d
cmp ecx, dword [esp + 0x40]
jge 0x5ae25d
test esi, esi
jle 0x5ae25d
cmp ebp, dword [esp + 0x100]
jae 0x5ae232
cmp eax, dword [esp + 0xbc]
jae 0x5ae232
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx eax, word [eax]
mov edx, eax
mov ebp, eax
shr edx, 0xb
mov dx, word [ebx + edx*4]
shr ebp, 5
shl dx, 6
and ebp, 0x3f
add dx, word [ebx + ebp*4]
and eax, 0x1f
shl dx, 5
add dx, word [ebx + eax*4]
mov eax, dword [esp + 0x10]
movzx ebp, dx
movzx edx, word [eax]
movzx eax, dx
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and edx, 0x820
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5ae25d
cmp ecx, dword [esp + 0x40]
jl 0x5ae170
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ae30a
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5ae0c0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5ae0c0
cmp dword [eax + 0x28], 1
jne 0x5ae9b0
cmp dword [esp + 0x134], 0
je 0x5ae6d0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5ae3a4
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x5ae5cc
cmp edi, dword [esp + 0x6c]
jge 0x5ae5cc
cmp ecx, dword [esp + 0x40]
jge 0x5ae5cc
test esi, esi
jle 0x5ae5cc
jmp 0x5ae430
cmp ebp, dword [esp + 0x100]
jae 0x5ae59d
cmp eax, dword [esp + 0xbc]
jae 0x5ae59d
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
mov al, byte [ebp + 2]
test al, al
je 0x5ae599
cmp al, 0xff
jne 0x5ae4e7
movzx eax, word [ebp]
mov ebp, dword [esp + 0xa4]
mov edx, eax
shr edx, 5
mov dword [esp + 0x54], eax
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
shr eax, 0xb
mov eax, dword [ebp + eax*4]
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
shl bp, 5
add bp, word [ebx + eax*4]
movzx ebp, bp
jmp 0x5ae557
movzx ebp, word [ebp]
movzx eax, al
mov edx, ebp
and edx, 0xf800
imul edx, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x54], ebp
and ebp, 0x7e0
imul ebp, dword [esp + 0x4c]
shr edx, 0x13
mov edx, dword [eax + edx*4]
mov dx, word [ebx + edx*4]
mov eax, dword [esp + 0xa4]
shr ebp, 0xd
mov eax, dword [eax + ebp*4]
mov ebp, dword [esp + 0xa0]
shl dx, 6
add dx, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, dword [esp + 0x4c]
shr eax, 8
mov eax, dword [ebp + eax*4]
shl dx, 5
add dx, word [ebx + eax*4]
movzx ebp, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
movzx eax, dx
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5ae5cc
cmp ecx, dword [esp + 0x40]
jl 0x5ae430
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ae679
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5ae373
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5ae373
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5ae701
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5ae8b2
cmp edi, dword [esp + 0x6c]
jge 0x5ae8b2
cmp ecx, dword [esp + 0x40]
jge 0x5ae8b2
test esi, esi
jle 0x5ae8b2
cmp ebp, dword [esp + 0x100]
jae 0x5ae887
cmp eax, dword [esp + 0xbc]
jae 0x5ae887
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
movzx edx, word [eax]
movzx eax, byte [eax + 2]
mov ebp, edx
and ebp, 0xf800
imul ebp, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x54], edx
and edx, 0x7e0
imul edx, dword [esp + 0x4c]
shr ebp, 0x13
mov eax, dword [eax + ebp*4]
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0xa4]
shr edx, 0xd
mov edx, dword [eax + edx*4]
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, dword [esp + 0x4c]
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
shr eax, 8
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shl bp, 5
add bp, word [ebx + eax*4]
movzx eax, dx
movzx ebp, bp
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and edx, 0x820
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5ae8b2
cmp ecx, dword [esp + 0x40]
jl 0x5ae780
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ae95f
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5ae6d0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5ae6d0
cmp dword [esp + 0x134], 0
je 0x5aec90
mov edi, edi
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5ae9f1
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x5aeb8f
cmp edi, dword [esp + 0x6c]
jge 0x5aeb8f
cmp ecx, dword [esp + 0x40]
jge 0x5aeb8f
test esi, esi
jle 0x5aeb8f
cmp ebp, dword [esp + 0x100]
jae 0x5aeb64
cmp eax, dword [esp + 0xbc]
jae 0x5aeb64
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx eax, word [eax]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
je 0x5aeb5c
mov ebp, dword [esp + 0xa4]
mov edx, eax
shr edx, 5
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
shr eax, 0xb
mov eax, dword [ebp + eax*4]
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shl bp, 5
add bp, word [ebx + eax*4]
movzx eax, dx
movzx ebp, bp
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5aeb8f
cmp ecx, dword [esp + 0x40]
jl 0x5aea72
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5aec3c
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5ae9c0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5ae9c0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5aecc1
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5aee53
cmp edi, dword [esp + 0x6c]
jge 0x5aee53
cmp ecx, dword [esp + 0x40]
jge 0x5aee53
test esi, esi
jle 0x5aee53
cmp ebp, dword [esp + 0x100]
jae 0x5aee28
cmp eax, dword [esp + 0xbc]
jae 0x5aee28
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
mov ebp, dword [esp + 0xa4]
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx eax, word [eax]
mov edx, eax
mov dword [esp + 0x54], eax
shr edx, 5
shr eax, 0xb
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
mov eax, dword [ebp + eax*4]
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shl bp, 5
add bp, word [ebx + eax*4]
movzx eax, dx
movzx ebp, bp
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and eax, 0xf7def7df
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and edx, 0x820
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5aee53
cmp ecx, dword [esp + 0x40]
jl 0x5aed40
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5aef00
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5aec90
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5aec90
cmp dword [0x8e80c0], 0
je case.0x5bc480.5
mov edx, dword [0x8e80e4]
and edx, 0xffffff
cmp dword [esp + 0x138], 0
je 0x5b07e0
cmp edx, 0xffffff
jne 0x5afb58
cmp dword [eax + 0x28], 1
jne 0x5af5b6
cmp dword [esp + 0x134], 0
je 0x5af2d5
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5aefd1
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x14]
imul ebp, dword [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add ebp, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
jl 0x5af1d7
cmp edi, dword [esp + 0x6c]
jge 0x5af1d7
cmp ecx, dword [esp + 0x40]
jge 0x5af1d7
test esi, esi
jle 0x5af1d7
jmp 0x5af059
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x100]
jae 0x5af1ac
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0xbc]
jae 0x5af1ac
mov eax, edx
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebp, eax
add ebp, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov al, byte [edx + 2]
test al, al
je 0x5af1ac
cmp al, 0xff
jne 0x5af118
movzx eax, byte [ebp]
movzx ebp, byte [eax + 0xa77168]
movzx eax, word [edx]
mov edx, eax
and edx, 0xf800
mov dword [esp + 0x54], eax
imul edx, ebp
and eax, 0x7e0
imul eax, ebp
shr edx, 0x13
mov dx, word [ebx + edx*4]
shr eax, 0xd
shl dx, 6
add dx, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, ebp
shr eax, 8
jmp 0x5af176
movzx edx, word [edx]
movzx ebp, byte [ebp]
movzx ebp, byte [ebp + 0xa77168]
mov dword [esp + 0x54], edx
and edx, 0xf800
imul edx, ebp
movzx eax, al
imul edx, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x54]
and eax, 0x7e0
imul eax, ebp
imul eax, dword [esp + 0x4c]
shr edx, 0x1b
mov dx, word [ebx + edx*4]
shr eax, 0x15
shl dx, 6
add dx, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, ebp
imul eax, dword [esp + 0x4c]
mov dword [esp + 0x2c], ebp
shr eax, 0x10
shl dx, 5
add dx, word [ebx + eax*4]
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and eax, 0xf7def7df
or edx, 0x8210820
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
add dword [esp + 0x1c], eax
add dword [esp + 0x14], edx
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
je 0x5af1d7
cmp ecx, dword [esp + 0x40]
jl 0x5af055
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5af284
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5aefa0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5aefa0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5af306
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5af4b8
cmp edi, dword [esp + 0x6c]
jge 0x5af4b8
cmp ecx, dword [esp + 0x40]
jge 0x5af4b8
test esi, esi
jle 0x5af4b8
jmp 0x5af390
cmp edx, dword [esp + 0x100]
jae 0x5af48d
cmp eax, dword [esp + 0xbc]
jae 0x5af48d
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebp, eax
add ebp, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, byte [ebp]
movzx ebp, word [edx]
movzx eax, byte [eax + 0xa77168]
movzx edx, byte [edx + 2]
mov dword [esp + 0x54], ebp
and ebp, 0xf800
imul ebp, eax
imul ebp, edx
mov dword [esp + 0x4c], edx
shr ebp, 0x1b
mov dx, word [ebx + ebp*4]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x2c], eax
and ebp, 0x7e0
imul ebp, eax
mov eax, dword [esp + 0x54]
imul ebp, dword [esp + 0x4c]
and eax, 0x1f
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x4c]
shl dx, 6
shr ebp, 0x15
add dx, word [ebx + ebp*4]
shr eax, 0x10
shl dx, 5
add dx, word [ebx + eax*4]
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and eax, 0xf7def7df
or edx, 0x8210820
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x5af4b8
cmp ecx, dword [esp + 0x40]
jl 0x5af390
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5af565
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5af2d5
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5af2d5
cmp dword [esp + 0x134], 0
je 0x5af8a0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5af5f5
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x14]
imul ebp, dword [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add ebp, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
jl 0x5af798
cmp edi, dword [esp + 0x6c]
jge 0x5af798
cmp ecx, dword [esp + 0x40]
jge 0x5af798
test esi, esi
jle 0x5af798
jmp 0x5af680
cmp eax, dword [esp + 0x100]
jae 0x5af769
cmp ebp, dword [esp + 0xbc]
jae 0x5af769
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebp, eax
add ebp, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx eax, word [edx]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
je 0x5af765
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov ebp, eax
and ebp, 0xf800
imul ebp, edx
and eax, 0x7e0
imul eax, edx
shr ebp, 0x13
mov bp, word [ebx + ebp*4]
shr eax, 0xd
shl bp, 6
add bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, edx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shr eax, 8
shl bp, 5
add bp, word [ebx + eax*4]
or edx, 0x8210820
movzx eax, bp
and eax, 0xf7def7df
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
add eax, dword [esp + 0x44]
add ebp, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
je 0x5af798
cmp ecx, dword [esp + 0x40]
jl 0x5af680
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5af845
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5af5c4
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5af5c4
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5af8d1
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5afa5a
cmp edi, dword [esp + 0x6c]
jge 0x5afa5a
cmp ecx, dword [esp + 0x40]
jge 0x5afa5a
test esi, esi
jle 0x5afa5a
cmp edx, dword [esp + 0x100]
jae 0x5afa2f
cmp eax, dword [esp + 0xbc]
jae 0x5afa2f
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
sar eax, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
add ebp, eax
add ebp, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx eax, byte [ebp]
movzx ebp, byte [eax + 0xa77168]
movzx eax, word [edx]
mov edx, eax
and edx, 0xf800
imul edx, ebp
mov dword [esp + 0x54], eax
and eax, 0x7e0
imul eax, ebp
shr edx, 0x13
mov dx, word [ebx + edx*4]
shr eax, 0xd
shl dx, 6
add dx, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, ebp
shl dx, 5
shr eax, 8
add dx, word [ebx + eax*4]
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and eax, 0xf7def7df
or edx, 0x8210820
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x5afa5a
cmp ecx, dword [esp + 0x40]
jl 0x5af950
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5afb07
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5af8a0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5af8a0
cmp dword [eax + 0x28], 1
jne 0x5b01f7
cmp dword [esp + 0x134], 0
je 0x5aff00
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5afba1
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x14]
imul ebp, dword [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add ebp, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
jl 0x5afdff
cmp edi, dword [esp + 0x6c]
jge 0x5afdff
cmp ecx, dword [esp + 0x40]
jge 0x5afdff
test esi, esi
jle 0x5afdff
jmp 0x5afc29
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x100]
jae 0x5afdd4
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0xbc]
jae 0x5afdd4
mov eax, edx
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebp, eax
add ebp, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov al, byte [edx + 2]
test al, al
je 0x5afdd4
cmp al, 0xff
jne 0x5afd1b
movzx eax, word [edx]
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], edx
mov edx, eax
mov dword [esp + 0x54], eax
shr edx, 5
shr eax, 0xb
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
imul edx, dword [esp + 0x2c]
mov eax, dword [ebp + eax*4]
imul eax, dword [esp + 0x2c]
shr eax, 8
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
shr edx, 8
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
imul eax, dword [esp + 0x2c]
shr eax, 8
shl bp, 5
add bp, word [ebx + eax*4]
movzx eax, bp
jmp 0x5afda9
movzx edx, word [edx]
movzx ebp, byte [ebp]
movzx ebp, byte [ebp + 0xa77168]
movzx eax, al
mov dword [esp + 0x4c], eax
mov eax, edx
shr eax, 5
and eax, 0x3f
mov dword [esp + 0x54], edx
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0xa4]
mov eax, dword [ebp + eax*4]
imul eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0xa8]
imul eax, dword [esp + 0x4c]
shr edx, 0xb
mov edx, dword [ebp + edx*4]
imul edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0xa0]
shr eax, 0x10
shr edx, 0x10
mov dx, word [ebx + edx*4]
shl dx, 6
add dx, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
and eax, 0x1f
mov eax, dword [ebp + eax*4]
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x4c]
shr eax, 0x10
shl dx, 5
add dx, word [ebx + eax*4]
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and eax, 0xf7def7df
or edx, 0x8210820
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
add dword [esp + 0x1c], eax
add dword [esp + 0x14], edx
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
je 0x5afdff
cmp ecx, dword [esp + 0x40]
jl 0x5afc25
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5afeac
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5afb70
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5afb70
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5aff31
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5b00f9
cmp edi, dword [esp + 0x6c]
jge 0x5b00f9
cmp ecx, dword [esp + 0x40]
jge 0x5b00f9
test esi, esi
jle 0x5b00f9
cmp edx, dword [esp + 0x100]
jae 0x5b00ce
cmp eax, dword [esp + 0xbc]
jae 0x5b00ce
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*4]
add ebp, eax
movzx eax, word [edx]
movzx edx, byte [edx + 2]
add ebp, dword [esp + 0xac]
mov dword [esp + 0x4c], edx
movzx ebp, byte [ebp]
movzx ebp, byte [ebp + 0xa77168]
mov edx, eax
mov dword [esp + 0x54], eax
shr edx, 5
shr eax, 0xb
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0xa4]
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
imul edx, dword [esp + 0x2c]
mov eax, dword [ebp + eax*4]
imul edx, dword [esp + 0x4c]
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x4c]
shr eax, 0x10
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
shr edx, 0x10
and eax, 0x1f
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + eax*4]
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shr eax, 0x10
shl bp, 5
add bp, word [ebx + eax*4]
or edx, 0x8210820
movzx eax, bp
and eax, 0xf7def7df
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x5b00f9
cmp ecx, dword [esp + 0x40]
jl 0x5affb0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b01a6
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5aff00
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5aff00
cmp dword [esp + 0x134], 0
je 0x5b0500
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b0236
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x14]
imul ebp, dword [esp + 0x48]
add eax, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add ebp, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
jl 0x5b0400
cmp edi, dword [esp + 0x6c]
jge 0x5b0400
cmp ecx, dword [esp + 0x40]
jge 0x5b0400
test esi, esi
jle 0x5b0400
jmp 0x5b02c0
cmp eax, dword [esp + 0x100]
jae 0x5b03d1
cmp ebp, dword [esp + 0xbc]
jae 0x5b03d1
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebp, eax
add ebp, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx eax, word [edx]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
je 0x5b03cd
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], edx
mov edx, eax
shr edx, 5
shr eax, 0xb
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
imul edx, dword [esp + 0x2c]
mov eax, dword [ebp + eax*4]
imul eax, dword [esp + 0x2c]
shr eax, 8
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
shr edx, 8
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
imul eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shr eax, 8
shl bp, 5
add bp, word [ebx + eax*4]
or edx, 0x8210820
movzx eax, bp
and eax, 0xf7def7df
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
add eax, dword [esp + 0x44]
add ebp, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
je 0x5b0400
cmp ecx, dword [esp + 0x40]
jl 0x5b02c0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b04ad
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5b0205
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b0205
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b0531
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov edx, ecx
sub edx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x44]
add edx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5b06e2
cmp edi, dword [esp + 0x6c]
jge 0x5b06e2
cmp ecx, dword [esp + 0x40]
jge 0x5b06e2
test esi, esi
jle 0x5b06e2
cmp edx, dword [esp + 0x100]
jae 0x5b06b7
cmp eax, dword [esp + 0xbc]
jae 0x5b06b7
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*2]
add ebp, eax
movzx eax, word [edx]
add ebp, dword [esp + 0xac]
mov dword [esp + 0x54], eax
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], edx
mov edx, eax
shr edx, 5
shr eax, 0xb
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
imul edx, dword [esp + 0x2c]
mov eax, dword [ebp + eax*4]
imul eax, dword [esp + 0x2c]
shr eax, 8
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
shr edx, 8
and eax, 0x1f
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + eax*4]
imul eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shr eax, 8
shl bp, 5
add bp, word [ebx + eax*4]
or edx, 0x8210820
movzx eax, bp
and eax, 0xf7def7df
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
je 0x5b06e2
cmp ecx, dword [esp + 0x40]
jl 0x5b05b0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b078f
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5b0500
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b0500
cmp edx, 0xffffff
jne 0x5b12c4
cmp dword [eax + 0x28], 1
jne 0x5b0da2
cmp dword [esp + 0x134], 0
je 0x5b0b00
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b0835
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x5b0a00
cmp edi, dword [esp + 0x6c]
jge 0x5b0a00
cmp ecx, dword [esp + 0x40]
jge 0x5b0a00
test esi, esi
jle 0x5b0a00
jmp 0x5b08c0
cmp ebp, dword [esp + 0x100]
jae 0x5b09d1
cmp eax, dword [esp + 0xbc]
jae 0x5b09d1
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
mov al, byte [ebp + 2]
test al, al
je 0x5b09cd
cmp al, 0xff
jne 0x5b094a
movzx eax, word [ebp]
mov edx, eax
shr edx, 0xb
mov dx, word [ebx + edx*4]
mov ebp, eax
shr ebp, 5
shl dx, 6
and ebp, 0x3f
add dx, word [ebx + ebp*4]
shl dx, 5
and eax, 0x1f
jmp 0x5b099b
movzx ebp, word [ebp]
movzx edx, al
mov eax, ebp
and eax, 0xf800
imul eax, edx
mov dword [esp + 0x54], ebp
and ebp, 0x7e0
imul ebp, edx
shr eax, 0x13
mov ax, word [ebx + eax*4]
shl ax, 6
shr ebp, 0xd
add ax, word [ebx + ebp*4]
shl ax, 5
mov word [esp + 0xdc], ax
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, edx
mov dx, word [esp + 0xdc]
shr eax, 8
add dx, word [ebx + eax*4]
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and eax, 0xf7def7df
or edx, 0x8210820
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b0a00
cmp ecx, dword [esp + 0x40]
jl 0x5b08c0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b0aad
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5b0804
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b0804
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b0b31
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b0ca4
cmp edi, dword [esp + 0x6c]
jge 0x5b0ca4
cmp ecx, dword [esp + 0x40]
jge 0x5b0ca4
test esi, esi
jle 0x5b0ca4
cmp ebp, dword [esp + 0x100]
jae 0x5b0c79
cmp eax, dword [esp + 0xbc]
jae 0x5b0c79
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*4]
movzx eax, word [edx]
movzx edx, byte [edx + 2]
mov ebp, eax
mov dword [esp + 0x54], eax
and ebp, 0xf800
imul ebp, edx
and eax, 0x7e0
imul eax, edx
shr ebp, 0x13
mov bp, word [ebx + ebp*4]
shr eax, 0xd
shl bp, 6
add bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, edx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shr eax, 8
shl bp, 5
add bp, word [ebx + eax*4]
or edx, 0x8210820
movzx eax, bp
and eax, 0xf7def7df
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b0ca4
cmp ecx, dword [esp + 0x40]
jl 0x5b0bb0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b0d51
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5b0b00
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b0b00
cmp dword [esp + 0x134], 0
je 0x5b1040
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b0de1
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x5b0f42
cmp edi, dword [esp + 0x6c]
jge 0x5b0f42
cmp ecx, dword [esp + 0x40]
jge 0x5b0f42
test esi, esi
jle 0x5b0f42
cmp ebp, dword [esp + 0x100]
jae 0x5b0f17
cmp eax, dword [esp + 0xbc]
jae 0x5b0f17
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx eax, word [eax]
cmp eax, dword [esp + 0x58]
je 0x5b0f0f
mov edx, eax
shr edx, 0xb
mov dx, word [ebx + edx*4]
mov ebp, eax
shl dx, 6
shr ebp, 5
and ebp, 0x3f
add dx, word [ebx + ebp*4]
and eax, 0x1f
shl dx, 5
add dx, word [ebx + eax*4]
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and eax, 0xf7def7df
or edx, 0x8210820
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b0f42
cmp ecx, dword [esp + 0x40]
jl 0x5b0e62
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b0fef
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5b0db0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b0db0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b1071
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b11c6
cmp edi, dword [esp + 0x6c]
jge 0x5b11c6
cmp ecx, dword [esp + 0x40]
jge 0x5b11c6
test esi, esi
jle 0x5b11c6
cmp ebp, dword [esp + 0x100]
jae 0x5b119b
cmp eax, dword [esp + 0xbc]
jae 0x5b119b
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx eax, word [eax]
mov edx, eax
shr edx, 0xb
mov dx, word [ebx + edx*4]
mov ebp, eax
shl dx, 6
shr ebp, 5
and ebp, 0x3f
add dx, word [ebx + ebp*4]
and eax, 0x1f
shl dx, 5
add dx, word [ebx + eax*4]
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and eax, 0xf7def7df
or edx, 0x8210820
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b11c6
cmp ecx, dword [esp + 0x40]
jl 0x5b10f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b1273
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5b1040
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b1040
cmp dword [eax + 0x28], 1
jne 0x5b18e9
cmp dword [esp + 0x134], 0
je 0x5b1615
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b1311
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x5b1517
cmp edi, dword [esp + 0x6c]
jge 0x5b1517
cmp ecx, dword [esp + 0x40]
jge 0x5b1517
test esi, esi
jle 0x5b1517
cmp ebp, dword [esp + 0x100]
jae 0x5b14e8
cmp eax, dword [esp + 0xbc]
jae 0x5b14e8
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
mov al, byte [ebp + 2]
test al, al
je 0x5b14e4
cmp al, 0xff
jne 0x5b1449
movzx eax, word [ebp]
mov ebp, dword [esp + 0xa4]
mov edx, eax
shr edx, 5
mov dword [esp + 0x54], eax
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
shr eax, 0xb
mov eax, dword [ebp + eax*4]
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
shl bp, 5
add bp, word [ebx + eax*4]
movzx eax, bp
jmp 0x5b14b9
movzx ebp, word [ebp]
movzx eax, al
mov edx, ebp
and edx, 0xf800
imul edx, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x54], ebp
and ebp, 0x7e0
imul ebp, dword [esp + 0x4c]
shr edx, 0x13
mov edx, dword [eax + edx*4]
mov dx, word [ebx + edx*4]
mov eax, dword [esp + 0xa4]
shr ebp, 0xd
mov eax, dword [eax + ebp*4]
mov ebp, dword [esp + 0xa0]
shl dx, 6
add dx, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, dword [esp + 0x4c]
shr eax, 8
mov eax, dword [ebp + eax*4]
shl dx, 5
add dx, word [ebx + eax*4]
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and eax, 0xf7def7df
or edx, 0x8210820
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b1517
cmp ecx, dword [esp + 0x40]
jl 0x5b1392
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b15c4
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5b12e0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b12e0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b1646
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b17eb
cmp edi, dword [esp + 0x6c]
jge 0x5b17eb
cmp ecx, dword [esp + 0x40]
jge 0x5b17eb
test esi, esi
jle 0x5b17eb
jmp 0x5b16d0
cmp ebp, dword [esp + 0x100]
jae 0x5b17c0
cmp eax, dword [esp + 0xbc]
jae 0x5b17c0
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
movzx edx, word [eax]
movzx eax, byte [eax + 2]
mov ebp, edx
mov dword [esp + 0x4c], eax
and ebp, 0xf800
imul ebp, eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x54], edx
and edx, 0x7e0
imul edx, dword [esp + 0x4c]
shr ebp, 0x13
mov eax, dword [eax + ebp*4]
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0xa4]
shr edx, 0xd
mov edx, dword [eax + edx*4]
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, dword [esp + 0x4c]
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
shr eax, 8
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shl bp, 5
add bp, word [ebx + eax*4]
or edx, 0x8210820
movzx eax, bp
and eax, 0xf7def7df
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b17eb
cmp ecx, dword [esp + 0x40]
jl 0x5b16d0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b1898
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5b1615
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b1615
cmp dword [esp + 0x134], 0
je 0x5b1bc0
jmp 0x5b1900
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b1931
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x9c]
add eax, dword [esp + 0x88]
add esi, 1
add edx, eax
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov eax, edx
mov dword [esp + 0x14], edx
jl 0x5b1ab8
cmp edi, dword [esp + 0x6c]
jge 0x5b1ab8
cmp ecx, dword [esp + 0x40]
jge 0x5b1ab8
test esi, esi
jle 0x5b1ab8
cmp ebp, dword [esp + 0x100]
jae 0x5b1a8d
cmp eax, dword [esp + 0xbc]
jae 0x5b1a8d
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx eax, word [eax]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
je 0x5b1a85
mov ebp, dword [esp + 0xa4]
mov edx, eax
shr edx, 5
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
shr eax, 0xb
mov eax, dword [ebp + eax*4]
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shl bp, 5
add bp, word [ebx + eax*4]
or edx, 0x8210820
movzx eax, bp
and eax, 0xf7def7df
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b1ab8
cmp ecx, dword [esp + 0x40]
jl 0x5b19b2
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b1b65
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5b1900
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b1900
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b1bf1
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebp, ecx
sub ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
imul ebp, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b1d6c
cmp edi, dword [esp + 0x6c]
jge 0x5b1d6c
cmp ecx, dword [esp + 0x40]
jge 0x5b1d6c
test esi, esi
jle 0x5b1d6c
cmp ebp, dword [esp + 0x100]
jae 0x5b1d41
cmp eax, dword [esp + 0xbc]
jae 0x5b1d41
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
mov ebp, dword [esp + 0xa4]
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx eax, word [eax]
mov edx, eax
shr edx, 5
mov dword [esp + 0x54], eax
and edx, 0x3f
mov edx, dword [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
shr eax, 0xb
mov eax, dword [ebp + eax*4]
mov bp, word [ebx + eax*4]
mov eax, dword [esp + 0x54]
shl bp, 6
add bp, word [ebx + edx*4]
mov edx, dword [esp + 0xa0]
and eax, 0x1f
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
shl bp, 5
add bp, word [ebx + eax*4]
or edx, 0x8210820
movzx eax, bp
and eax, 0xf7def7df
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
mov ebp, dword [esp + 0x1c]
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b1d6c
cmp ecx, dword [esp + 0x40]
jl 0x5b1c70
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b1e19
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5b1bc0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b1bc0
mov edx, dword [0x8e80e4]
and edx, 0xffffff
cmp dword [esp + 0x138], 0
je 0x5b367b
cmp edx, 0xffffff
jne 0x5b2a21
cmp dword [eax + 0x28], 1
jne 0x5b24a6
cmp dword [esp + 0x134], 0
je 0x5b21e4
jmp 0x5b1eb0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5b1ee2
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5b20e9
cmp edi, dword [esp + 0x6c]
jge 0x5b20e9
cmp ecx, dword [esp + 0x40]
jge 0x5b20e9
test esi, esi
jle 0x5b20e9
lea ecx, [ecx]
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x100]
jae 0x5b20bc
cmp eax, dword [esp + 0xbc]
jae 0x5b20bc
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov eax, ebx
movzx eax, byte [eax]
mov bl, byte [edx + 2]
movzx eax, byte [eax + 0xa77168]
movzx edx, word [edx]
mov dword [esp + 0x2c], eax
movzx eax, word [ebp]
mov ebp, edx
shr ebp, 5
mov dword [esp + 0x54], edx
shr edx, 0xb
and ebp, 0x3f
cmp bl, 0xff
jne 0x5b2048
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
imul ebx, ebp
imul ebx, dword [esp + 0x2c]
mov ebp, eax
shr ebp, 0xb
imul ebp, edx
sar ebx, 9
and ebx, 0x7e0
mov edx, ebx
mov ebx, dword [esp + 0x2c]
imul ebp, ebx
sar ebp, 2
and ebp, 0xf800
or edx, ebp
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x54]
and eax, 0x1f
and edx, 0x1f
imul eax, edx
mov edx, dword [esp + 0x58]
imul eax, ebx
sar eax, 0xd
jmp 0x5b20ae
movzx ebx, bl
mov dword [esp + 0x4c], ebx
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
imul ebx, ebp
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
mov ebp, eax
shr ebp, 0xb
imul ebp, edx
imul ebp, dword [esp + 0x2c]
sar ebx, 0x11
and ebx, 0x7e0
mov edx, ebx
mov ebx, dword [esp + 0x4c]
imul ebp, ebx
sar ebp, 0xa
and ebp, 0xf800
or edx, ebp
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x54]
and eax, 0x1f
and edx, 0x1f
imul eax, edx
imul eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x58]
imul eax, ebx
sar eax, 0x15
mov ebp, dword [esp + 0x10]
or edx, eax
mov eax, dword [esp + 0x14]
mov word [ebp], dx
mov edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x1c], edx
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5b20e9
cmp ecx, dword [esp + 0x40]
jl 0x5b1f60
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b2193
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b1eb0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b1eb0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b2215
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b23ab
cmp edi, dword [esp + 0x6c]
jge 0x5b23ab
cmp ecx, dword [esp + 0x40]
jge 0x5b23ab
test esi, esi
jle 0x5b23ab
jmp 0x5b2290
cmp ebp, dword [esp + 0x100]
jae 0x5b2380
cmp eax, dword [esp + 0xbc]
jae 0x5b2380
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*4]
add ebx, eax
add ebx, dword [esp + 0xac]
movzx eax, byte [ebx]
movzx eax, byte [eax + 0xa77168]
movzx ebx, word [edx]
movzx edx, byte [edx + 2]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
mov dword [esp + 0x4c], edx
mov ebp, eax
shr ebp, 5
and ebp, 0x3f
mov edx, ebx
shr edx, 5
and edx, 0x3f
imul ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x4c]
mov edx, eax
shr edx, 0xb
mov dword [esp + 0x54], ebx
shr ebx, 0xb
imul edx, ebx
imul edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x4c]
imul edx, ebx
sar ebp, 0x11
sar edx, 0xa
and edx, 0xf800
and ebp, 0x7e0
or ebp, edx
mov edx, dword [esp + 0x54]
and eax, 0x1f
and edx, 0x1f
imul eax, edx
imul eax, dword [esp + 0x2c]
imul eax, ebx
sar eax, 0x15
or ebp, eax
mov eax, dword [esp + 0x10]
mov word [eax], bp
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b23ab
cmp ecx, dword [esp + 0x40]
jl 0x5b2290
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b2455
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b21e4
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b21e4
cmp dword [esp + 0x134], 0
je 0x5b2770
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b24e5
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b2674
cmp edi, dword [esp + 0x6c]
jge 0x5b2674
cmp ecx, dword [esp + 0x40]
jge 0x5b2674
test esi, esi
jle 0x5b2674
jmp 0x5b2560
cmp ebp, dword [esp + 0x100]
jae 0x5b2645
cmp eax, dword [esp + 0xbc]
jae 0x5b2645
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*2]
movzx edx, word [edx]
add ebx, eax
add ebx, dword [esp + 0xac]
cmp edx, dword [esp + 0x58]
mov dword [esp + 0x54], edx
je 0x5b2645
movzx eax, byte [ebx]
movzx eax, byte [eax + 0xa77168]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
mov ebx, edx
mov ebp, eax
shr ebp, 5
shr ebx, 5
and ebp, 0x3f
and ebx, 0x3f
imul ebp, ebx
imul ebp, dword [esp + 0x2c]
shr edx, 0xb
mov ebx, eax
shr ebx, 0xb
imul ebx, edx
mov edx, ebx
mov ebx, dword [esp + 0x2c]
imul edx, ebx
sar edx, 2
sar ebp, 9
and edx, 0xf800
and ebp, 0x7e0
or ebp, edx
mov edx, dword [esp + 0x54]
and eax, 0x1f
and edx, 0x1f
imul eax, edx
mov edx, dword [esp + 0x10]
imul eax, ebx
sar eax, 0xd
or ebp, eax
mov word [edx], bp
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b2674
cmp ecx, dword [esp + 0x40]
jl 0x5b2560
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b271e
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b24b4
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b24b4
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b27a1
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b2926
cmp edi, dword [esp + 0x6c]
jge 0x5b2926
cmp ecx, dword [esp + 0x40]
jge 0x5b2926
test esi, esi
jle 0x5b2926
jmp 0x5b2820
cmp ebp, dword [esp + 0x100]
jae 0x5b28fb
cmp eax, dword [esp + 0xbc]
jae 0x5b28fb
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx eax, byte [ebx]
movzx eax, byte [eax + 0xa77168]
movzx edx, word [edx]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
mov ebx, edx
mov ebp, eax
shr ebp, 5
shr ebx, 5
and ebp, 0x3f
and ebx, 0x3f
imul ebp, ebx
imul ebp, dword [esp + 0x2c]
mov dword [esp + 0x54], edx
shr edx, 0xb
mov ebx, eax
shr ebx, 0xb
imul ebx, edx
mov edx, ebx
mov ebx, dword [esp + 0x2c]
imul edx, ebx
sar edx, 2
sar ebp, 9
and edx, 0xf800
and ebp, 0x7e0
or ebp, edx
mov edx, dword [esp + 0x54]
and eax, 0x1f
and edx, 0x1f
imul eax, edx
mov edx, dword [esp + 0x10]
imul eax, ebx
sar eax, 0xd
or ebp, eax
mov eax, dword [esp + 0x14]
mov word [edx], bp
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b2926
cmp ecx, dword [esp + 0x40]
jl 0x5b2820
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b29d0
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b2770
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b2770
cmp dword [eax + 0x28], 1
jne 0x5b30ab
cmp dword [esp + 0x134], 0
je 0x5b2dc0
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5b2a71
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebp
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5b2cc3
cmp edi, dword [esp + 0x6c]
jge 0x5b2cc3
cmp ecx, dword [esp + 0x40]
jge 0x5b2cc3
test esi, esi
jle 0x5b2cc3
lea esp, [esp]
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x100]
jae 0x5b2c92
cmp eax, dword [esp + 0xbc]
jae 0x5b2c92
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebp, 0x12
and edx, 0x3ffff
add edx, eax
mov eax, ebp
imul ebp, dword [esp + 0xb8]
imul eax, dword [esp + 0x98]
add eax, dword [esp + 0x90]
sar edx, 0x12
lea eax, [eax + edx*4]
add ebp, edx
mov dl, byte [eax + 2]
movzx eax, word [eax]
add ebp, dword [esp + 0xac]
cmp dl, 0xff
mov dword [esp + 0x54], eax
jne 0x5b2bee
movzx edx, byte [ebp]
movzx edx, byte [edx + 0xa77168]
mov dword [esp + 0x2c], edx
movzx edx, word [ebx]
mov dword [esp + 0x50], edx
shr edx, 5
and edx, 0x3f
mov ebp, edx
mov edx, dword [esp + 0xa4]
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
imul ebp, dword [edx + ebx*4]
mov edx, dword [esp + 0x50]
imul ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0xa8]
shr edx, 0xb
shr eax, 0xb
imul edx, dword [ebx + eax*4]
imul edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0xa0]
shr edx, 2
and edx, 0xf800
shr ebp, 9
and ebp, 0x7e0
or ebp, edx
mov edx, dword [esp + 0x50]
and edx, 0x1f
and eax, 0x1f
imul edx, dword [ebx + eax*4]
imul edx, dword [esp + 0x2c]
shr edx, 0xd
jmp 0x5b2c89
movzx ebp, byte [ebp]
movzx ebx, word [ebx]
movzx ebp, byte [ebp + 0xa77168]
movzx edx, dl
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x2c], ebp
shr ebx, 5
mov edx, eax
shr edx, 5
and edx, 0x3f
and ebx, 0x3f
mov ebp, ebx
mov ebx, dword [esp + 0xa4]
imul ebp, dword [ebx + edx*4]
mov edx, dword [esp + 0x50]
imul ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0xa8]
imul ebp, dword [esp + 0x4c]
shr edx, 0xb
shr eax, 0xb
imul edx, dword [ebx + eax*4]
imul edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0xa0]
shr edx, 0xa
and edx, 0xf800
shr ebp, 0x11
and ebp, 0x7e0
or ebp, edx
mov edx, dword [esp + 0x50]
and edx, 0x1f
and eax, 0x1f
imul edx, dword [ebx + eax*4]
imul edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x4c]
shr edx, 0x15
mov ebx, dword [esp + 0x10]
or ebp, edx
mov word [ebx], bp
mov eax, dword [esp + 0x44]
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5b2cc3
cmp ecx, dword [esp + 0x40]
jl 0x5b2af0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b2d6d
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b2a40
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b2a40
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5b2df2
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov eax, edx
imul edx, dword [esp + 0x9c]
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5b2fb0
cmp edi, dword [esp + 0x6c]
jge 0x5b2fb0
cmp ecx, dword [esp + 0x40]
jge 0x5b2fb0
test esi, esi
jle 0x5b2fb0
jmp 0x5b2e70
cmp ebx, dword [esp + 0x100]
jae 0x5b2f83
cmp eax, dword [esp + 0xbc]
jae 0x5b2f83
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, word [edx]
movzx ebx, byte [ebx]
movzx edx, byte [edx + 2]
movzx ebx, byte [ebx + 0xa77168]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x2c], ebx
movzx ebx, word [ebp]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x50], ebx
shr ebx, 5
mov edx, eax
shr edx, 5
and edx, 0x3f
and ebx, 0x3f
imul ebx, dword [ebp + edx*4]
mov edx, dword [esp + 0x50]
imul ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0xa8]
imul ebx, dword [esp + 0x4c]
shr edx, 0xb
mov dword [esp + 0x54], eax
shr eax, 0xb
imul edx, dword [ebp + eax*4]
imul edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0xa0]
shr edx, 0xa
and edx, 0xf800
shr ebx, 0x11
and ebx, 0x7e0
or ebx, edx
mov edx, dword [esp + 0x50]
and edx, 0x1f
and eax, 0x1f
imul edx, dword [ebp + eax*4]
imul edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
shr edx, 0x15
or ebx, edx
mov word [ebp], bx
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5b2fb0
cmp ecx, dword [esp + 0x40]
jl 0x5b2e70
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b305a
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b2dc0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b2dc0
cmp dword [esp + 0x134], 0
je 0x5b33a0
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5b30f1
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebp
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
add esi, 1
add eax, ebp
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5b32a4
cmp edi, dword [esp + 0x6c]
jge 0x5b32a4
cmp ecx, dword [esp + 0x40]
jge 0x5b32a4
test esi, esi
jle 0x5b32a4
lea esp, [esp]
cmp edx, dword [esp + 0x100]
jae 0x5b3273
cmp eax, dword [esp + 0xbc]
jae 0x5b3273
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*2]
movzx edx, word [edx]
add ebp, eax
add ebp, dword [esp + 0xac]
cmp edx, dword [esp + 0x58]
mov dword [esp + 0x54], edx
je 0x5b326f
movzx eax, byte [ebp]
movzx eax, byte [eax + 0xa77168]
mov dword [esp + 0x2c], eax
movzx eax, word [ebx]
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
shr edx, 5
mov dword [esp + 0x50], eax
and edx, 0x3f
mov ebp, ebx
mov ebx, dword [esp + 0xa4]
imul ebp, dword [ebx + edx*4]
mov edx, dword [esp + 0x54]
imul ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0xa8]
shr eax, 0xb
shr edx, 0xb
imul eax, dword [ebx + edx*4]
imul eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0xa0]
shr eax, 2
and eax, 0xf800
shr ebp, 9
and ebp, 0x7e0
or ebp, eax
mov eax, dword [esp + 0x50]
and eax, 0x1f
and edx, 0x1f
imul eax, dword [ebx + edx*4]
imul eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x10]
shr eax, 0xd
or ebp, eax
mov word [ebx], bp
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5b32a4
cmp ecx, dword [esp + 0x40]
jl 0x5b3170
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b334e
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b30c0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b30c0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5b33d2
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov eax, edx
imul edx, dword [esp + 0x9c]
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5b3580
cmp edi, dword [esp + 0x6c]
jge 0x5b3580
cmp ecx, dword [esp + 0x40]
jge 0x5b3580
test esi, esi
jle 0x5b3580
jmp 0x5b3450
cmp ebx, dword [esp + 0x100]
jae 0x5b3553
cmp eax, dword [esp + 0xbc]
jae 0x5b3553
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx eax, word [edx]
movzx edx, byte [ebx]
movzx edx, byte [edx + 0xa77168]
mov dword [esp + 0x2c], edx
movzx edx, word [ebp]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x50], edx
shr edx, 5
and edx, 0x3f
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
imul edx, dword [ebp + ebx*4]
mov ebx, dword [esp + 0x50]
imul edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0xa8]
shr ebx, 0xb
mov dword [esp + 0x54], eax
shr eax, 0xb
imul ebx, dword [ebp + eax*4]
imul ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x54]
shr edx, 9
and edx, 0x7e0
shr ebx, 2
and ebx, 0xf800
or edx, ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x50]
mov ebp, dword [esp + 0x10]
and edx, 0x1f
and eax, 0x1f
imul edx, dword [ebx + eax*4]
imul edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x14]
shr edx, 0xd
or ebx, edx
mov word [ebp], bx
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5b3580
cmp ecx, dword [esp + 0x40]
jl 0x5b3450
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b362a
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b33a0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b33a0
cmp edx, 0xffffff
jne 0x5b417b
cmp dword [eax + 0x28], 1
jne 0x5b3c56
cmp dword [esp + 0x134], 0
je 0x5b39b0
nop
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b36d1
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b38b3
cmp edi, dword [esp + 0x6c]
jge 0x5b38b3
cmp ecx, dword [esp + 0x40]
jge 0x5b38b3
test esi, esi
jle 0x5b38b3
mov ebx, dword [esp + 0x10]
jmp 0x5b3750
cmp ebp, dword [esp + 0x100]
jae 0x5b3886
cmp eax, dword [esp + 0xbc]
jae 0x5b3886
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
mov dl, byte [ebp + 2]
cmp dl, 0xff
movzx eax, word [ebx]
jne 0x5b380b
movzx edx, word [ebp]
mov ebp, eax
mov ebx, edx
and ebx, 0x7e0
and ebp, 0x7e0
imul ebp, ebx
mov ebx, eax
and ebx, 0xf800
mov dword [esp + 0x54], edx
and edx, 0xf800
imul ebx, edx
mov edx, dword [esp + 0x54]
and eax, 0x1f
and edx, 0x1f
imul eax, edx
shr ebp, 0xb
shr ebx, 0x10
and ebx, 0xf800
and ebp, 0x7e0
or ebp, ebx
mov ebx, dword [esp + 0x10]
shr eax, 5
or ebp, eax
mov word [ebx], bp
jmp 0x5b387e
movzx ebp, word [ebp]
movzx edx, dl
mov dword [esp + 0x4c], edx
mov ebx, ebp
mov edx, eax
shr edx, 5
and edx, 0x3f
shr ebx, 5
and ebx, 0x3f
imul edx, ebx
imul edx, dword [esp + 0x4c]
mov dword [esp + 0x54], ebp
mov ebx, eax
shr ebp, 0xb
shr ebx, 0xb
imul ebx, ebp
mov ebp, ebx
mov ebx, dword [esp + 0x4c]
imul ebp, ebx
sar edx, 9
and edx, 0x7e0
sar ebp, 2
and ebp, 0xf800
or edx, ebp
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x54]
and eax, 0x1f
and edx, 0x1f
imul eax, edx
mov edx, dword [esp + 0x58]
imul eax, ebx
mov ebx, dword [esp + 0x10]
sar eax, 0xd
or edx, eax
mov word [ebx], dx
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5b38b3
cmp ecx, dword [esp + 0x40]
jl 0x5b3750
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b395d
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b36a0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b36a0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b39e1
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5b3b5b
cmp edi, dword [esp + 0x6c]
jge 0x5b3b5b
cmp ecx, dword [esp + 0x40]
jge 0x5b3b5b
test esi, esi
jle 0x5b3b5b
mov ebp, dword [esp + 0x10]
jmp 0x5b3a60
cmp ebx, dword [esp + 0x100]
jae 0x5b3b2e
cmp eax, dword [esp + 0xbc]
jae 0x5b3b2e
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebx, [edx + eax*4]
movzx edx, word [ebx]
movzx eax, word [ebp]
movzx ebx, byte [ebx + 2]
mov dword [esp + 0x4c], ebx
mov ebp, edx
shr ebp, 5
mov ebx, eax
shr ebx, 5
and ebp, 0x3f
and ebx, 0x3f
imul ebx, ebp
imul ebx, dword [esp + 0x4c]
mov dword [esp + 0x54], edx
mov ebp, eax
shr edx, 0xb
shr ebp, 0xb
imul ebp, edx
sar ebx, 9
and ebx, 0x7e0
mov edx, ebx
mov ebx, dword [esp + 0x4c]
imul ebp, ebx
sar ebp, 2
and ebp, 0xf800
or edx, ebp
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x54]
mov ebp, dword [esp + 0x10]
and eax, 0x1f
and edx, 0x1f
imul eax, edx
mov edx, dword [esp + 0x58]
imul eax, ebx
mov ebx, dword [esp + 0x1c]
sar eax, 0xd
or edx, eax
mov eax, dword [esp + 0x14]
mov word [ebp], dx
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5b3b5b
cmp ecx, dword [esp + 0x40]
jl 0x5b3a60
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b3c05
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], edx
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x64]
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], eax
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b39b0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b39b0
cmp dword [esp + 0x134], 0
je 0x5b3ef1
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b3c95
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add eax, edx
add ebx, ebp
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5b3df6
cmp edi, dword [esp + 0x6c]
jge 0x5b3df6
cmp ecx, dword [esp + 0x40]
jge 0x5b3df6
test esi, esi
jle 0x5b3df6
jmp 0x5b3d10
cmp ebx, dword [esp + 0x100]
jae 0x5b3dcf
cmp eax, dword [esp + 0xbc]
jae 0x5b3dcf
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
sar ebp, 0x12
imul ebp, dword [esp + 0x98]
add ebp, dword [esp + 0x90]
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
lea eax, [ebp + eax*2]
movzx eax, word [eax]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
je 0x5b3dcb
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x50], edx
mov ebp, edx
mov edx, eax
and edx, 0x7e0
and ebp, 0x7e0
imul ebp, edx
mov edx, dword [esp + 0x50]
and eax, 0xf800
and edx, 0xf800
imul edx, eax
mov eax, dword [esp + 0x50]
shr edx, 0x10
shr ebp, 0xb
and edx, 0xf800
and ebp, 0x7e0
or ebp, edx
mov edx, dword [esp + 0x54]
and eax, 0x1f
and edx, 0x1f
imul eax, edx
shr eax, 5
or ebp, eax
mov eax, dword [esp + 0x10]
mov word [eax], bp
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x14], eax
je 0x5b3df6
cmp ecx, dword [esp + 0x40]
jl 0x5b3d10
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b3ea0
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b3c64
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b3c64
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b3f22
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5b4080
cmp edi, dword [esp + 0x6c]
jge 0x5b4080
cmp ecx, dword [esp + 0x40]
jge 0x5b4080
test esi, esi
jle 0x5b4080
mov ebp, dword [esp + 0x10]
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x5b4053
cmp eax, dword [esp + 0xbc]
jae 0x5b4053
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx edx, word [eax]
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0x7e0
mov ebp, edx
and ebp, 0x7e0
imul ebx, ebp
mov ebp, eax
and ebp, 0xf800
mov dword [esp + 0x54], edx
and edx, 0xf800
imul ebp, edx
mov edx, dword [esp + 0x54]
and eax, 0x1f
and edx, 0x1f
imul eax, edx
shr ebx, 0xb
shr ebp, 0x10
and ebx, 0x7e0
and ebp, 0xf800
or ebx, ebp
mov ebp, dword [esp + 0x10]
shr eax, 5
or ebx, eax
mov eax, dword [esp + 0x14]
mov word [ebp], bx
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5b4080
cmp ecx, dword [esp + 0x40]
jl 0x5b3fa0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b412a
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], edx
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x64]
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], eax
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b3ef1
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b3ef1
cmp dword [eax + 0x28], 1
jne 0x5b478c
cmp dword [esp + 0x134], 0
je 0x5b44d1
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5b41c4
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b43d6
cmp edi, dword [esp + 0x6c]
jge 0x5b43d6
cmp ecx, dword [esp + 0x40]
jge 0x5b43d6
test esi, esi
jle 0x5b43d6
lea ecx, [ecx]
cmp ebp, dword [esp + 0x100]
jae 0x5b43a5
cmp eax, dword [esp + 0xbc]
jae 0x5b43a5
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebp, [edx + eax*4]
movzx eax, word [ebp]
mov dl, byte [ebp + 2]
cmp dl, 0xff
mov dword [esp + 0x54], eax
jne 0x5b431b
movzx edx, word [ebx]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov dword [esp + 0x50], edx
shr edx, 5
mov ebx, eax
and edx, 0x3f
mov ebp, edx
mov edx, dword [esp + 0xa4]
shr ebx, 5
and ebx, 0x3f
imul ebp, dword [edx + ebx*4]
mov ebx, dword [esp + 0xa8]
mov edx, eax
mov eax, dword [esp + 0x5c]
shr eax, 5
shr edx, 0xb
and eax, 0x7c0
imul ax, word [ebx + edx*4]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0xa0]
shr ebp, 1
and ax, 0xf800
and ebp, 0x7e0
or bp, ax
mov eax, dword [esp + 0x54]
and edx, 0x1f
and eax, 0x1f
imul edx, dword [ebx + eax*4]
shr edx, 5
or bp, dx
jmp 0x5b439a
movzx ebx, word [ebx]
movzx edx, dl
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ebx
shr ebx, 5
mov edx, eax
shr edx, 5
and edx, 0x3f
and ebx, 0x3f
mov ebp, ebx
mov ebx, dword [esp + 0xa4]
imul ebp, dword [ebx + edx*4]
mov edx, dword [esp + 0x50]
imul ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0xa8]
shr edx, 0xb
shr eax, 0xb
imul edx, dword [ebx + eax*4]
imul edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0xa0]
shr edx, 2
and edx, 0xf800
shr ebp, 9
and ebp, 0x7e0
or ebp, edx
mov edx, dword [esp + 0x50]
and edx, 0x1f
and eax, 0x1f
imul edx, dword [ebx + eax*4]
imul edx, dword [esp + 0x4c]
shr edx, 0xd
or ebp, edx
mov ebx, dword [esp + 0x10]
mov word [ebx], bp
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5b43d6
cmp ecx, dword [esp + 0x40]
jl 0x5b4240
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b4480
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b4193
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b4193
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5b4502
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b4691
cmp edi, dword [esp + 0x6c]
jge 0x5b4691
cmp ecx, dword [esp + 0x40]
jge 0x5b4691
test esi, esi
jle 0x5b4691
jmp 0x5b4580
cmp ebp, dword [esp + 0x100]
jae 0x5b4664
cmp eax, dword [esp + 0xbc]
jae 0x5b4664
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
movzx ebx, word [ebx]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*4]
movzx eax, word [edx]
movzx edx, byte [edx + 2]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ebx
shr ebx, 5
mov edx, eax
shr edx, 5
and edx, 0x3f
and ebx, 0x3f
mov ebp, ebx
mov ebx, dword [esp + 0xa4]
imul ebp, dword [ebx + edx*4]
mov edx, dword [esp + 0x50]
imul ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0xa8]
shr edx, 0xb
mov dword [esp + 0x54], eax
shr eax, 0xb
imul edx, dword [ebx + eax*4]
imul edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0xa0]
shr edx, 2
and edx, 0xf800
shr ebp, 9
and ebp, 0x7e0
or ebp, edx
mov edx, dword [esp + 0x50]
and edx, 0x1f
and eax, 0x1f
imul edx, dword [ebx + eax*4]
imul edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
shr edx, 0xd
or ebp, edx
mov word [ebx], bp
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5b4691
cmp ecx, dword [esp + 0x40]
jl 0x5b4580
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b473b
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b44d1
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b44d1
cmp dword [esp + 0x134], 0
je 0x5b4a60
lea ebx, [ebx]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5b47d1
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b495f
cmp edi, dword [esp + 0x6c]
jge 0x5b495f
cmp ecx, dword [esp + 0x40]
jge 0x5b495f
test esi, esi
jle 0x5b495f
lea ebx, [ebx]
cmp ebp, dword [esp + 0x100]
jae 0x5b4932
cmp eax, dword [esp + 0xbc]
jae 0x5b4932
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx eax, word [eax]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
je 0x5b492a
movzx edx, word [ebx]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov dword [esp + 0x50], edx
mov ebx, eax
shr edx, 5
and edx, 0x3f
shr ebx, 5
mov ebp, edx
mov edx, dword [esp + 0xa4]
and ebx, 0x3f
imul ebp, dword [edx + ebx*4]
mov ebx, dword [esp + 0xa8]
mov edx, eax
mov eax, dword [esp + 0x5c]
shr eax, 5
and eax, 0x7c0
shr edx, 0xb
imul ax, word [ebx + edx*4]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0xa0]
and ax, 0xf800
shr ebp, 1
and ebp, 0x7e0
or bp, ax
mov eax, dword [esp + 0x50]
and eax, 0x1f
and edx, 0x1f
imul eax, dword [ebx + edx*4]
mov ebx, dword [esp + 0x10]
shr eax, 5
or bp, ax
mov word [ebx], bp
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5b495f
cmp ecx, dword [esp + 0x40]
jl 0x5b4850
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b4a09
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b47a0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b47a0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5b4a91
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b4c15
cmp edi, dword [esp + 0x6c]
jge 0x5b4c15
cmp ecx, dword [esp + 0x40]
jge 0x5b4c15
test esi, esi
jle 0x5b4c15
lea ebx, [ebx]
cmp ebp, dword [esp + 0x100]
jae 0x5b4be8
cmp eax, dword [esp + 0xbc]
jae 0x5b4be8
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx edx, word [ebx]
movzx eax, word [eax]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov dword [esp + 0x50], edx
shr edx, 5
mov ebx, eax
and edx, 0x3f
mov ebp, edx
mov edx, dword [esp + 0xa4]
shr ebx, 5
mov dword [esp + 0x54], eax
and ebx, 0x3f
imul ebp, dword [edx + ebx*4]
mov ebx, dword [esp + 0xa8]
mov edx, eax
mov eax, dword [esp + 0x5c]
shr eax, 5
shr edx, 0xb
and eax, 0x7c0
imul ax, word [ebx + edx*4]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0xa0]
shr ebp, 1
and ax, 0xf800
and ebp, 0x7e0
or bp, ax
mov eax, dword [esp + 0x54]
and eax, 0x1f
and edx, 0x1f
imul edx, dword [ebx + eax*4]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
shr edx, 5
or bp, dx
mov word [ebx], bp
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5b4c15
cmp ecx, dword [esp + 0x40]
jl 0x5b4b10
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b4cbf
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b4a60
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b4a60
mov edx, dword [0x8e80e4]
and edx, 0xffffff
cmp dword [esp + 0x138], 0
je 0x5b68bd
cmp edx, 0xffffff
jne 0x5b5a98
cmp dword [eax + 0x28], 1
jne 0x5b545a
cmp dword [esp + 0x134], 0
je 0x5b5130
mov edi, edi
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5b4d82
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x9c]
add ebx, dword [esp + 0x88]
add esi, 1
add eax, ebx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5b5031
cmp edi, dword [esp + 0x6c]
jge 0x5b5031
cmp ecx, dword [esp + 0x40]
jge 0x5b5031
test esi, esi
jle 0x5b5031
lea ecx, [ecx]
cmp edx, dword [esp + 0x100]
jae 0x5b5004
cmp eax, dword [esp + 0xbc]
jae 0x5b5004
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
movzx ebp, word [ebp]
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx ebx, byte [ebx]
mov al, byte [edx + 2]
movzx ebx, byte [ebx + 0xa77168]
mov byte [esp + 0xdc], al
cmp al, 0xff
movzx eax, word [edx]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x2c], ebx
mov edx, ebp
jne 0x5b4f2f
mov ebx, ebp
shr ebx, 0xb
mov dword [esp + 0xdc], ebx
mov ebx, ebp
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, eax
shr ebx, 5
shr edx, 5
and edx, 0x3f
and ebx, 0x3f
imul ebx, edx
sar ebx, 6
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0xdc]
and ebp, 0x7e0
shl ebp, 0xb
add ebx, ebp
mov ebp, eax
shr ebp, 0xb
imul ebp, edx
sar ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
shl edx, 5
and eax, 0x1f
add ebp, edx
mov edx, dword [esp + 0x60]
imul eax, edx
sar eax, 5
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [0x8e80c0]
shl edx, 0x10
sar ebx, 0xb
add eax, edx
and ebx, 0x7e0
sar ebp, 5
sar eax, 0x10
jmp 0x5b4fea
movzx ebx, byte [esp + 0xdc]
mov dword [esp + 0x4c], ebx
mov ebx, ebp
shr ebx, 0xb
mov dword [esp + 0xdc], ebx
mov ebx, ebp
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, eax
shr ebx, 5
shr edx, 5
and ebx, 0x3f
and edx, 0x3f
imul ebx, edx
sar ebx, 6
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0xdc]
and ebp, 0x7e0
shl ebp, 0x13
add ebx, ebp
mov ebp, eax
shr ebp, 0xb
imul ebp, edx
sar ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
and eax, 0x1f
shl edx, 0xd
add ebp, edx
mov edx, dword [esp + 0x60]
imul eax, edx
sar eax, 5
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x4c]
imul eax, dword [0x8e80c0]
shl edx, 0x18
sar ebx, 0x13
add eax, edx
and ebx, 0x7e0
sar ebp, 0xd
sar eax, 0x18
mov edx, dword [esp + 0x1c]
and ebp, 0xf800
or ebx, ebp
mov ebp, dword [esp + 0x10]
or ebx, eax
mov eax, dword [esp + 0x14]
mov word [ebp], bx
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5b5031
cmp ecx, dword [esp + 0x40]
jl 0x5b4e00
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b50db
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b4d50
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b4d50
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b5161
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b535f
cmp edi, dword [esp + 0x6c]
jge 0x5b535f
cmp ecx, dword [esp + 0x40]
jge 0x5b535f
test esi, esi
jle 0x5b535f
jmp 0x5b51e0
cmp ebp, dword [esp + 0x100]
jae 0x5b5334
cmp eax, dword [esp + 0xbc]
jae 0x5b5334
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx eax, word [edx]
mov ebp, ebx
movzx ebp, byte [ebp]
movzx ebp, byte [ebp + 0xa77168]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x10]
movzx ebx, word [edx]
mov ebp, dword [esp + 0x5c]
movzx ebp, byte [ebp + 2]
mov dword [esp + 0x4c], ebp
mov ebp, ebx
shr ebp, 0xb
mov dword [esp + 0xdc], ebp
mov ebp, ebx
and ebp, 0x1f
mov dword [esp + 0x60], ebp
mov edx, ebx
mov ebp, eax
shr ebp, 5
and ebp, 0x3f
shr edx, 5
and edx, 0x3f
imul ebp, edx
sar ebp, 6
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x50], ebx
and ebx, 0x7e0
shl ebx, 0x13
add ebp, ebx
mov ebx, eax
shr ebx, 0xb
imul ebx, edx
sar ebx, 5
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and eax, 0x1f
and edx, 0xfffff800
shl edx, 0xd
add ebx, edx
mov edx, dword [esp + 0x60]
imul eax, edx
sar eax, 5
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x4c]
imul eax, dword [0x8e80c0]
sar ebp, 0x13
sar ebx, 0xd
shl edx, 0x18
add eax, edx
and ebp, 0x7e0
and ebx, 0xf800
sar eax, 0x18
or ebp, ebx
or ebp, eax
mov eax, dword [esp + 0x10]
mov word [eax], bp
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b535f
cmp ecx, dword [esp + 0x40]
jl 0x5b51e0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b5409
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b5130
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b5130
cmp dword [esp + 0x134], 0
je 0x5b5790
jmp 0x5b5470
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b54a1
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b568b
cmp edi, dword [esp + 0x6c]
jge 0x5b568b
cmp ecx, dword [esp + 0x40]
jge 0x5b568b
test esi, esi
jle 0x5b568b
jmp 0x5b5520
cmp ebp, dword [esp + 0x100]
jae 0x5b565c
cmp eax, dword [esp + 0xbc]
jae 0x5b565c
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx eax, word [edx]
cmp eax, dword [esp + 0x58]
je 0x5b565c
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov edx, dword [esp + 0x10]
movzx ebp, word [edx]
mov dword [esp + 0x2c], ebx
mov ebx, ebp
shr ebx, 0xb
mov dword [esp + 0xdc], ebx
mov ebx, ebp
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov edx, ebp
mov ebx, eax
shr ebx, 5
shr edx, 5
and ebx, 0x3f
and edx, 0x3f
imul ebx, edx
sar ebx, 6
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x50], ebp
and ebp, 0x7e0
shl ebp, 0xb
add ebx, ebp
mov ebp, eax
shr ebp, 0xb
imul ebp, edx
sar ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
and eax, 0x1f
shl edx, 5
add ebp, edx
mov edx, dword [esp + 0x60]
imul eax, edx
sar eax, 5
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [0x8e80c0]
sar ebx, 0xb
sar ebp, 5
shl edx, 0x10
and ebp, 0xf800
add eax, edx
and ebx, 0x7e0
or ebx, ebp
mov ebp, dword [esp + 0x1c]
sar eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b568b
cmp ecx, dword [esp + 0x40]
jl 0x5b5520
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b5735
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b5470
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b5470
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b57c1
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b599d
cmp edi, dword [esp + 0x6c]
jge 0x5b599d
cmp ecx, dword [esp + 0x40]
jge 0x5b599d
test esi, esi
jle 0x5b599d
jmp 0x5b5840
cmp ebp, dword [esp + 0x100]
jae 0x5b5972
cmp eax, dword [esp + 0xbc]
jae 0x5b5972
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
movzx eax, word [edx]
mov edx, dword [esp + 0x10]
movzx ebp, word [edx]
mov dword [esp + 0x2c], ebx
mov ebx, ebp
shr ebx, 0xb
mov dword [esp + 0xdc], ebx
mov ebx, ebp
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov edx, ebp
mov ebx, eax
shr ebx, 5
shr edx, 5
and ebx, 0x3f
and edx, 0x3f
imul ebx, edx
sar ebx, 6
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x50], ebp
and ebp, 0x7e0
shl ebp, 0xb
add ebx, ebp
mov ebp, eax
shr ebp, 0xb
imul ebp, edx
sar ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and eax, 0x1f
and edx, 0xfffff800
shl edx, 5
add ebp, edx
mov edx, dword [esp + 0x60]
imul eax, edx
sar eax, 5
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [0x8e80c0]
sar ebx, 0xb
sar ebp, 5
shl edx, 0x10
add eax, edx
and ebp, 0xf800
and ebx, 0x7e0
sar eax, 0x10
or ebx, ebp
mov ebp, dword [esp + 0x1c]
or ebx, eax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b599d
cmp ecx, dword [esp + 0x40]
jl 0x5b5840
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b5a47
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b5790
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b5790
cmp dword [eax + 0x28], 1
jne 0x5b6239
cmp dword [esp + 0x134], 0
je 0x5b5ef0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5b5ae2
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x9c]
add ebx, dword [esp + 0x88]
add esi, 1
add eax, ebx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5b5df0
cmp edi, dword [esp + 0x6c]
jge 0x5b5df0
cmp ecx, dword [esp + 0x40]
jge 0x5b5df0
test esi, esi
jle 0x5b5df0
lea ecx, [ecx]
cmp edx, dword [esp + 0x100]
jae 0x5b5dc3
cmp eax, dword [esp + 0xbc]
jae 0x5b5dc3
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebx, 0x12
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx ebx, byte [ebx]
mov al, byte [edx + 2]
cmp al, 0xff
movzx ebx, byte [ebx + 0xa77168]
mov byte [esp + 0xdc], al
mov dword [esp + 0x2c], ebx
jne 0x5b5cbd
movzx eax, word [edx]
mov dword [esp + 0x54], eax
movzx eax, word [ebp]
mov ebp, dword [esp + 0xa4]
mov ebx, eax
shr ebx, 0xb
mov dword [esp + 0xdc], ebx
mov ebx, eax
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x54]
shr ebx, 5
and ebx, 0x3f
mov ebx, dword [ebp + ebx*4]
mov edx, eax
shr edx, 5
and edx, 0x3f
imul ebx, edx
shr ebx, 6
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov ebp, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0xb
add ebx, edx
mov edx, dword [esp + 0x54]
shr edx, 0xb
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0xdc]
imul ebp, edx
shr ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov edx, eax
and edx, 0xfffff800
shl edx, 5
add ebp, edx
mov edx, dword [esp + 0x54]
shr ebp, 5
and ebp, 0xf800
shr ebx, 0xb
and ebx, 0x7e0
or ebx, ebp
mov ebp, dword [esp + 0xa0]
and edx, 0x1f
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0x60]
imul ebp, edx
shr ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
shl eax, 0x10
add ebp, eax
shr ebp, 0x10
jmp 0x5b5dae
movzx eax, word [ebp]
movzx edx, word [edx]
movzx ebx, byte [esp + 0xdc]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x54], edx
shr edx, 5
and edx, 0x3f
mov ebx, eax
shr ebx, 0xb
mov dword [esp + 0xdc], ebx
mov ebx, eax
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0xa4]
mov ebx, dword [ebx + edx*4]
mov ebp, eax
shr ebp, 5
and ebp, 0x3f
imul ebx, ebp
shr ebx, 6
sub ebx, ebp
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov ebp, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0x13
add ebx, edx
mov edx, dword [esp + 0x54]
shr edx, 0xb
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0xdc]
imul ebp, edx
shr ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov edx, eax
and edx, 0xfffff800
shl edx, 0xd
add ebp, edx
mov edx, dword [esp + 0x54]
shr ebp, 0xd
and ebp, 0xf800
shr ebx, 0x13
and ebx, 0x7e0
or ebx, ebp
mov ebp, dword [esp + 0xa0]
and edx, 0x1f
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0x60]
imul ebp, edx
shr ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
shl eax, 0x18
add ebp, eax
shr ebp, 0x18
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
and ebp, 0x1f
or ebx, ebp
mov ebp, dword [esp + 0x10]
mov word [ebp], bx
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5b5df0
cmp ecx, dword [esp + 0x40]
jl 0x5b5b60
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b5e9a
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b5ab0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b5ab0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b5f21
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b613e
cmp edi, dword [esp + 0x6c]
jge 0x5b613e
cmp ecx, dword [esp + 0x40]
jge 0x5b613e
test esi, esi
jle 0x5b613e
jmp 0x5b5fa0
cmp ebp, dword [esp + 0x100]
jae 0x5b6113
cmp eax, dword [esp + 0xbc]
jae 0x5b6113
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea ebp, [edx + eax*4]
movzx ebx, byte [ebx]
movzx eax, word [ebp]
movzx ebx, byte [ebx + 0xa77168]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [ebp + 2]
mov dword [esp + 0x4c], ebx
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x54], eax
movzx eax, word [edx]
mov ebx, eax
shr ebx, 0xb
mov dword [esp + 0xdc], ebx
mov ebx, eax
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x54]
shr ebx, 5
and ebx, 0x3f
mov ebx, dword [ebp + ebx*4]
mov edx, eax
shr edx, 5
and edx, 0x3f
imul ebx, edx
shr ebx, 6
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov ebp, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0x13
add ebx, edx
mov edx, dword [esp + 0x54]
shr edx, 0xb
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0xdc]
imul ebp, edx
shr ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov edx, eax
and edx, 0xfffff800
shl edx, 0xd
add ebp, edx
mov edx, dword [esp + 0x54]
shr ebp, 0xd
and ebp, 0xf800
shr ebx, 0x13
and ebx, 0x7e0
or ebx, ebp
mov ebp, dword [esp + 0xa0]
and edx, 0x1f
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0x60]
imul ebp, edx
shr ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
shl eax, 0x18
add ebp, eax
mov eax, dword [esp + 0x10]
shr ebp, 0x18
and ebp, 0x1f
or ebx, ebp
mov ebp, dword [esp + 0x1c]
mov word [eax], bx
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b613e
cmp ecx, dword [esp + 0x40]
jl 0x5b5fa0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b61e8
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b5ef0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b5ef0
cmp dword [esp + 0x134], 0
je 0x5b6590
jmp 0x5b6250
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b6281
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b6494
cmp edi, dword [esp + 0x6c]
jge 0x5b6494
cmp ecx, dword [esp + 0x40]
jge 0x5b6494
test esi, esi
jle 0x5b6494
jmp 0x5b6300
cmp ebp, dword [esp + 0x100]
jae 0x5b6465
cmp eax, dword [esp + 0xbc]
jae 0x5b6465
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx eax, word [edx]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
je 0x5b6465
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x54]
shr ebx, 5
mov ebp, eax
shr ebp, 0xb
mov dword [esp + 0xdc], ebp
and ebx, 0x3f
mov ebp, eax
and ebp, 0x1f
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0xa4]
mov ebx, dword [ebp + ebx*4]
mov edx, eax
shr edx, 5
and edx, 0x3f
imul ebx, edx
shr ebx, 6
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov ebp, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0xb
add ebx, edx
mov edx, dword [esp + 0x54]
shr edx, 0xb
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0xdc]
imul ebp, edx
shr ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov edx, eax
and edx, 0xfffff800
shl edx, 5
add ebp, edx
mov edx, dword [esp + 0x54]
shr ebp, 5
and ebp, 0xf800
shr ebx, 0xb
and ebx, 0x7e0
or ebx, ebp
mov ebp, dword [esp + 0xa0]
and edx, 0x1f
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0x60]
imul ebp, edx
shr ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
shl eax, 0x10
add ebp, eax
mov eax, dword [esp + 0x10]
shr ebp, 0x10
and ebp, 0x1f
or ebx, ebp
mov ebp, dword [esp + 0x1c]
mov word [eax], bx
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b6494
cmp ecx, dword [esp + 0x40]
jl 0x5b6300
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b653e
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b6250
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b6250
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b65c1
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b67c2
cmp edi, dword [esp + 0x6c]
jge 0x5b67c2
cmp ecx, dword [esp + 0x40]
jge 0x5b67c2
test esi, esi
jle 0x5b67c2
jmp 0x5b6640
cmp ebp, dword [esp + 0x100]
jae 0x5b6797
cmp eax, dword [esp + 0xbc]
jae 0x5b6797
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
movzx ebp, word [edx + eax*2]
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x54], ebp
shr ebp, 5
and ebp, 0x3f
mov ebx, eax
shr ebx, 0xb
mov dword [esp + 0xdc], ebx
mov ebx, eax
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0xa4]
mov ebx, dword [ebx + ebp*4]
mov edx, eax
shr edx, 5
and edx, 0x3f
imul ebx, edx
shr ebx, 6
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov ebp, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0xb
add ebx, edx
mov edx, dword [esp + 0x54]
shr edx, 0xb
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0xdc]
imul ebp, edx
shr ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov edx, eax
and edx, 0xfffff800
shl edx, 5
add ebp, edx
mov edx, dword [esp + 0x54]
shr ebp, 5
and ebp, 0xf800
shr ebx, 0xb
and ebx, 0x7e0
or ebx, ebp
mov ebp, dword [esp + 0xa0]
and edx, 0x1f
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0x60]
imul ebp, edx
shr ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
shl eax, 0x10
add ebp, eax
mov eax, dword [esp + 0x10]
shr ebp, 0x10
and ebp, 0x1f
or ebx, ebp
mov ebp, dword [esp + 0x1c]
mov word [eax], bx
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b67c2
cmp ecx, dword [esp + 0x40]
jl 0x5b6640
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b686c
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b6590
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b6590
cmp edx, 0xffffff
jne 0x5b757b
cmp dword [eax + 0x28], 1
jne 0x5b6fa7
cmp dword [esp + 0x134], 0
je 0x5b6cb1
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b6912
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5b6bb3
cmp edi, dword [esp + 0x6c]
jge 0x5b6bb3
cmp ecx, dword [esp + 0x40]
jge 0x5b6bb3
test esi, esi
jle 0x5b6bb3
cmp ebx, dword [esp + 0x100]
jae 0x5b6b84
cmp eax, dword [esp + 0xbc]
jae 0x5b6b84
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
mov dl, byte [eax + 2]
cmp dl, 0xff
mov byte [esp + 0xdc], dl
jne 0x5b6aa2
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
movzx eax, word [eax]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov ebx, edx
mov dword [esp + 0x50], edx
shr edx, 0xb
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x50]
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, eax
shr edx, 5
and edx, 0x3f
shr ebx, 5
and ebx, 0x3f
imul edx, ebx
sar edx, 6
sub edx, ebx
mov ebx, dword [esp + 0x5c]
shr ebx, 5
mov dword [esp + 0x54], eax
and ebx, 0x3f
add bx, word [ebp + edx*4]
mov edx, eax
mov eax, dword [esp + 0xdc]
shr edx, 0xb
imul edx, eax
sar edx, 5
sub edx, eax
mov ax, word [esp + 0x5c]
shr ax, 0xb
add ax, word [ebp + edx*4]
mov edx, dword [esp + 0x60]
shl ax, 0xb
shl bx, 5
or bx, ax
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, edx
sar eax, 5
sub eax, edx
mov edx, dword [esp + 0x5c]
and edx, 0x1f
add dx, word [ebp + eax*4]
or bx, dx
mov edx, dword [esp + 0x10]
mov word [edx], bx
jmp 0x5b6b80
movzx ebx, word [eax]
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
mov edx, eax
and edx, 0x7e0
mov dword [esp + 0x58], edx
movzx edx, byte [esp + 0xdc]
mov dword [esp + 0x4c], edx
mov edx, eax
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, eax
mov dword [esp + 0x54], ebx
and ebx, 0xf800
and edx, 0xf800
imul edx, ebx
mov ebx, eax
shr ebx, 0xb
shr edx, 0x1b
sub edx, ebx
imul edx, dword [esp + 0x4c]
imul edx, dword [0x8e80c0]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
and eax, 0xfffff800
shl eax, 5
add edx, eax
mov eax, dword [esp + 0x58]
and ebx, 0x7e0
imul ebx, eax
shr ebx, 0xb
sub ebx, eax
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x50]
and eax, 0xffffffe0
shl eax, 0x10
add ebx, eax
mov eax, dword [esp + 0x54]
shr edx, 5
and edx, 0xf800
shr ebx, 0x10
and eax, 0x1f
and ebx, 0x7e0
or edx, ebx
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x60]
imul eax, edx
shr eax, 5
sub eax, edx
imul eax, dword [esp + 0x4c]
imul eax, dword [0x8e80c0]
shl edx, 0x10
add eax, edx
mov edx, dword [esp + 0x58]
shr eax, 0x10
or edx, eax
mov eax, dword [esp + 0x10]
mov word [eax], dx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5b6bb3
cmp ecx, dword [esp + 0x40]
jl 0x5b6991
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b6c60
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b68e1
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b68e1
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b6ce2
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5b6eac
cmp edi, dword [esp + 0x6c]
jge 0x5b6eac
cmp ecx, dword [esp + 0x40]
jge 0x5b6eac
test esi, esi
jle 0x5b6eac
mov ebp, dword [esp + 0x10]
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x5b6e7f
cmp eax, dword [esp + 0xbc]
jae 0x5b6e7f
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebx, [edx + eax*4]
movzx eax, word [ebx]
movzx edx, word [ebp]
movzx ebx, byte [ebx + 2]
mov dword [esp + 0x4c], ebx
mov ebp, edx
and ebp, 0x7e0
mov dword [esp + 0x58], ebp
mov ebx, edx
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebp, eax
and ebp, 0xf800
mov ebx, edx
and ebx, 0xf800
imul ebx, ebp
mov ebp, edx
shr ebp, 0xb
shr ebx, 0x1b
sub ebx, ebp
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov dword [esp + 0x50], edx
and edx, 0xfffff800
mov ebp, eax
shl edx, 5
add ebx, edx
mov edx, dword [esp + 0x58]
and ebp, 0x7e0
imul ebp, edx
shr ebp, 0xb
sub ebp, edx
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xffffffe0
and eax, 0x1f
shl edx, 0x10
add ebp, edx
mov edx, dword [esp + 0x60]
imul eax, edx
shr eax, 5
sub eax, edx
imul eax, dword [esp + 0x4c]
imul eax, dword [0x8e80c0]
shr ebx, 5
shr ebp, 0x10
shl edx, 0x10
and ebx, 0xf800
and ebp, 0x7e0
add eax, edx
or ebx, ebp
mov ebp, dword [esp + 0x10]
shr eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x14]
mov word [ebp], bx
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5b6eac
cmp ecx, dword [esp + 0x40]
jl 0x5b6d60
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b6f56
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], edx
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x64]
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], eax
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b6cb1
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b6cb1
cmp dword [esp + 0x134], 0
je 0x5b72a1
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b6fe6
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5b71a3
cmp edi, dword [esp + 0x6c]
jge 0x5b71a3
cmp ecx, dword [esp + 0x40]
jge 0x5b71a3
test esi, esi
jle 0x5b71a3
jmp 0x5b7070
cmp ebx, dword [esp + 0x100]
jae 0x5b7174
cmp eax, dword [esp + 0xbc]
jae 0x5b7174
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx eax, word [eax]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
je 0x5b7170
mov edx, dword [esp + 0x10]
movzx eax, word [edx]
movzx edx, ax
mov ebx, edx
shr edx, 0xb
mov dword [esp + 0xdc], edx
movzx edx, ax
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x54]
shr edx, 5
and edx, 0x3f
shr ebx, 5
and ebx, 0x3f
imul edx, ebx
sar edx, 6
sub edx, ebx
mov ebx, eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xdc]
shr ebx, 5
and ebx, 0x3f
add bx, word [ebp + edx*4]
mov edx, dword [esp + 0x54]
shr edx, 0xb
imul edx, eax
sar edx, 5
sub edx, eax
mov ax, word [esp + 0x5c]
shr ax, 0xb
add ax, word [ebp + edx*4]
mov edx, dword [esp + 0x60]
shl ax, 0xb
shl bx, 5
or bx, ax
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, edx
sar eax, 5
sub eax, edx
mov edx, dword [esp + 0x5c]
and edx, 0x1f
add dx, word [ebp + eax*4]
or bx, dx
mov edx, dword [esp + 0x10]
mov word [edx], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5b71a3
cmp ecx, dword [esp + 0x40]
jl 0x5b7070
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b7250
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b6fb5
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b6fb5
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b72d2
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5b747d
cmp edi, dword [esp + 0x6c]
jge 0x5b747d
cmp ecx, dword [esp + 0x40]
jge 0x5b747d
test esi, esi
jle 0x5b747d
cmp ebx, dword [esp + 0x100]
jae 0x5b7452
cmp eax, dword [esp + 0xbc]
jae 0x5b7452
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
movzx eax, word [eax]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov ebx, edx
mov dword [esp + 0x50], edx
shr edx, 0xb
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x50]
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, eax
shr edx, 5
and edx, 0x3f
shr ebx, 5
and ebx, 0x3f
imul edx, ebx
sar edx, 6
sub edx, ebx
mov ebx, dword [esp + 0x5c]
shr ebx, 5
mov dword [esp + 0x54], eax
and ebx, 0x3f
add bx, word [ebp + edx*4]
mov edx, eax
mov eax, dword [esp + 0xdc]
shr edx, 0xb
imul edx, eax
sar edx, 5
sub edx, eax
mov ax, word [esp + 0x5c]
shr ax, 0xb
add ax, word [ebp + edx*4]
mov edx, dword [esp + 0x60]
shl ax, 0xb
shl bx, 5
or bx, ax
mov eax, dword [esp + 0x54]
and eax, 0x1f
imul eax, edx
sar eax, 5
sub eax, edx
mov edx, dword [esp + 0x5c]
and edx, 0x1f
add dx, word [ebp + eax*4]
mov eax, dword [esp + 0x14]
or bx, dx
mov edx, dword [esp + 0x10]
mov word [edx], bx
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5b747d
cmp ecx, dword [esp + 0x40]
jl 0x5b7351
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b752a
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b72a1
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b72a1
cmp dword [eax + 0x28], 1
jne 0x5b7cce
cmp dword [esp + 0x134], 0
je 0x5b79b0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b75c4
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5b78ab
cmp edi, dword [esp + 0x6c]
jge 0x5b78ab
cmp ecx, dword [esp + 0x40]
jge 0x5b78ab
test esi, esi
jle 0x5b78ab
cmp ebx, dword [esp + 0x100]
jae 0x5b787c
cmp eax, dword [esp + 0xbc]
jae 0x5b787c
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
mov dl, byte [eax + 2]
mov byte [esp + 0xdc], dl
cmp dl, 0xff
mov edx, dword [esp + 0x10]
jne 0x5b7778
movzx edx, word [edx]
movzx eax, word [eax]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov ebx, edx
shr ebx, 5
and ebx, 0x3f
mov dword [esp + 0xac], ebx
mov ebx, edx
shr ebx, 0xb
and edx, 0x1f
mov dword [esp + 0xdc], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x60], edx
mov edx, eax
shr edx, 5
and edx, 0x3f
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0xac]
imul ebx, edx
shr ebx, 6
sub ebx, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x54], eax
shr eax, 0xb
shr edx, 5
and edx, 0x3f
add dx, word [ebp + ebx*4]
mov ebx, dword [esp + 0xa8]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0xdc]
imul ebx, eax
shr ebx, 5
sub ebx, eax
mov ax, word [esp + 0x5c]
shr ax, 0xb
add ax, word [ebp + ebx*4]
mov ebx, dword [esp + 0xa0]
shl ax, 0xb
shl dx, 5
or dx, ax
mov eax, dword [esp + 0x54]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x60]
imul ebx, eax
shr ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + ebx*4]
or dx, ax
mov eax, dword [esp + 0x10]
mov word [eax], dx
jmp 0x5b7878
movzx ebx, word [eax]
movzx eax, word [edx]
mov edx, eax
shr edx, 5
and edx, 0x3f
mov dword [esp + 0xac], edx
movzx edx, byte [esp + 0xdc]
mov dword [esp + 0x4c], edx
mov edx, eax
shr edx, 0xb
mov dword [esp + 0xdc], edx
mov edx, eax
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x54], ebx
shr ebx, 5
and ebx, 0x3f
mov ebx, dword [edx + ebx*4]
mov edx, dword [esp + 0xac]
imul ebx, edx
shr ebx, 6
sub ebx, edx
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x50], eax
and eax, 0xffffffe0
shl eax, 0xb
add ebx, eax
mov eax, dword [esp + 0x54]
shr eax, 0xb
mov edx, dword [edx + eax*4]
mov eax, dword [esp + 0xdc]
imul edx, eax
shr edx, 5
sub edx, eax
imul edx, dword [esp + 0x4c]
imul edx, dword [0x8e80c0]
mov eax, dword [esp + 0x50]
and eax, 0xfffff800
shl eax, 5
add edx, eax
mov eax, dword [esp + 0x54]
shr edx, 5
and edx, 0xf800
shr ebx, 0xb
and eax, 0x1f
and ebx, 0x7e0
or ebx, edx
mov edx, dword [esp + 0xa0]
mov edx, dword [edx + eax*4]
mov eax, dword [esp + 0x60]
imul edx, eax
shr edx, 5
sub edx, eax
imul edx, dword [esp + 0x4c]
imul edx, dword [0x8e80c0]
mov eax, dword [esp + 0x50]
shl eax, 0x10
add edx, eax
mov eax, dword [esp + 0x10]
shr edx, 0x10
and edx, 0x1f
or ebx, edx
mov word [eax], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5b78ab
cmp ecx, dword [esp + 0x40]
jl 0x5b7643
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b7958
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b7593
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b7593
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b79e1
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5b7bd3
cmp edi, dword [esp + 0x6c]
jge 0x5b7bd3
cmp ecx, dword [esp + 0x40]
jge 0x5b7bd3
test esi, esi
jle 0x5b7bd3
mov ebp, dword [esp + 0x10]
jmp 0x5b7a60
cmp ebx, dword [esp + 0x100]
jae 0x5b7ba6
cmp eax, dword [esp + 0xbc]
jae 0x5b7ba6
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebx, [edx + eax*4]
movzx eax, word [ebp]
movzx edx, word [ebx]
movzx ebx, byte [ebx + 2]
mov dword [esp + 0x4c], ebx
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x54], edx
mov ebx, eax
shr ebx, 0xb
mov dword [esp + 0xdc], ebx
mov ebx, eax
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x54]
shr ebx, 5
and ebx, 0x3f
mov ebx, dword [ebp + ebx*4]
mov edx, eax
shr edx, 5
and edx, 0x3f
imul ebx, edx
shr ebx, 6
sub ebx, edx
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov ebp, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0xb
add ebx, edx
mov edx, dword [esp + 0x54]
shr edx, 0xb
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0xdc]
imul ebp, edx
shr ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov edx, eax
and edx, 0xfffff800
shl edx, 5
add ebp, edx
mov edx, dword [esp + 0x54]
shr ebp, 5
and ebp, 0xf800
shr ebx, 0xb
and ebx, 0x7e0
or ebx, ebp
mov ebp, dword [esp + 0xa0]
and edx, 0x1f
mov ebp, dword [ebp + edx*4]
mov edx, dword [esp + 0x60]
imul ebp, edx
shr ebp, 5
sub ebp, edx
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
shl eax, 0x10
add ebp, eax
mov eax, dword [esp + 0x14]
shr ebp, 0x10
and ebp, 0x1f
or ebx, ebp
mov ebp, dword [esp + 0x10]
mov word [ebp], bx
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5b7bd3
cmp ecx, dword [esp + 0x40]
jl 0x5b7a60
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b7c7d
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b79b0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b79b0
cmp dword [esp + 0x134], 0
je 0x5b7ff0
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b7d11
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5b7ef0
cmp edi, dword [esp + 0x6c]
jge 0x5b7ef0
cmp ecx, dword [esp + 0x40]
jge 0x5b7ef0
test esi, esi
jle 0x5b7ef0
cmp ebx, dword [esp + 0x100]
jae 0x5b7ec1
cmp eax, dword [esp + 0xbc]
jae 0x5b7ec1
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx eax, word [eax]
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
je 0x5b7ebd
mov edx, dword [esp + 0x10]
movzx eax, word [edx]
movzx ebx, ax
mov edx, ebx
shr edx, 5
and edx, 0x3f
mov dword [esp + 0xac], edx
mov edx, ebx
shr edx, 0xb
mov dword [esp + 0xdc], edx
mov edx, ebx
mov ebx, dword [esp + 0xa4]
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x54]
shr edx, 5
and edx, 0x3f
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0xac]
imul ebx, edx
shr ebx, 6
sub ebx, edx
mov edx, eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x54]
shr eax, 0xb
shr edx, 5
and edx, 0x3f
add dx, word [ebp + ebx*4]
mov ebx, dword [esp + 0xa8]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0xdc]
imul ebx, eax
shr ebx, 5
sub ebx, eax
mov ax, word [esp + 0x5c]
shr ax, 0xb
add ax, word [ebp + ebx*4]
mov ebx, dword [esp + 0xa0]
shl ax, 0xb
shl dx, 5
or dx, ax
mov eax, dword [esp + 0x54]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x60]
imul ebx, eax
shr ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + ebx*4]
or dx, ax
mov eax, dword [esp + 0x10]
mov word [eax], dx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5b7ef0
cmp ecx, dword [esp + 0x40]
jl 0x5b7d90
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b7f9d
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b7ce0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b7ce0
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b8021
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5b81f2
cmp edi, dword [esp + 0x6c]
jge 0x5b81f2
cmp ecx, dword [esp + 0x40]
jge 0x5b81f2
test esi, esi
jle 0x5b81f2
cmp ebx, dword [esp + 0x100]
jae 0x5b81c7
cmp eax, dword [esp + 0xbc]
jae 0x5b81c7
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
movzx eax, word [eax]
movzx ebx, dx
mov dword [esp + 0x5c], edx
mov edx, ebx
shr edx, 5
and edx, 0x3f
mov dword [esp + 0xac], edx
mov edx, ebx
shr edx, 0xb
mov dword [esp + 0xdc], edx
mov edx, ebx
mov ebx, dword [esp + 0xa4]
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, eax
shr edx, 5
and edx, 0x3f
mov ebx, dword [ebx + edx*4]
mov edx, dword [esp + 0xac]
imul ebx, edx
shr ebx, 6
sub ebx, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x54], eax
shr eax, 0xb
shr edx, 5
and edx, 0x3f
add dx, word [ebp + ebx*4]
mov ebx, dword [esp + 0xa8]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0xdc]
imul ebx, eax
shr ebx, 5
sub ebx, eax
mov ax, word [esp + 0x5c]
shr ax, 0xb
add ax, word [ebp + ebx*4]
mov ebx, dword [esp + 0xa0]
shl ax, 0xb
shl dx, 5
or dx, ax
mov eax, dword [esp + 0x54]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x60]
imul ebx, eax
shr ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + ebx*4]
mov ebx, dword [esp + 0x1c]
or dx, ax
mov eax, dword [esp + 0x10]
mov word [eax], dx
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5b81f2
cmp ecx, dword [esp + 0x40]
jl 0x5b80a0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b829f
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b7ff0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b7ff0
mov edx, dword [0x8e80e4]
and edx, 0xffffff
cmp dword [esp + 0x138], 0
je 0x5b9dd3
cmp edx, 0xffffff
jne 0x5b9011
cmp dword [eax + 0x28], 1
jne 0x5b8a13
cmp dword [esp + 0x134], 0
je 0x5b8710
mov edi, edi
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5b8362
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5b8615
cmp edi, dword [esp + 0x6c]
jge 0x5b8615
cmp ecx, dword [esp + 0x40]
jge 0x5b8615
test esi, esi
jle 0x5b8615
lea ecx, [ecx]
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x100]
jae 0x5b85e8
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0xbc]
jae 0x5b85e8
mov eax, edx
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
sar ebx, 0x12
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
mov dword [esp + 0x2c], ebx
mov bl, byte [edx + 2]
test bl, bl
je 0x5b85e8
cmp bl, 0xff
jne 0x5b851c
mov ax, word [edx]
movzx edx, word [ebp]
mov ebx, dword [esp + 0x2c]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov dword [esp + 0x2c], ebx
not ax
movzx eax, ax
mov ebx, edx
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, edx
and ebx, 0x7e0
mov ebp, eax
and ebp, 0x7e0
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov ebx, edx
and ebx, 0xffffffe0
shl ebx, 0x10
add ebp, ebx
mov ebx, eax
and ebx, 0xf800
mov dword [esp + 0x50], edx
and edx, 0xf800
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
shl edx, 0x10
add ebx, edx
mov edx, dword [esp + 0x60]
and eax, 0x1f
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [0x8e80c0]
shr ebp, 0x10
shr ebx, 0x10
shl edx, 0x10
and ebx, 0xf800
and ebp, 0x7e0
add eax, edx
or ebp, ebx
shr eax, 0x10
or ebp, eax
mov dword [esp + 0x58], ebp
mov ebx, ebp
jmp 0x5b85e0
mov dx, word [edx]
movzx ebp, word [ebp]
not dx
movzx eax, dx
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx]
movzx edx, byte [edx + 0xa77168]
mov dword [esp + 0x2c], edx
movzx edx, bl
mov dword [esp + 0x4c], edx
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x60], edx
mov ebx, eax
shr ebx, 5
mov edx, ebp
shr edx, 5
and edx, 0x3f
and ebx, 0x3f
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov edx, ebp
and edx, 0xffffffe0
shl edx, 0x13
add ebx, edx
mov edx, eax
shr edx, 0xb
mov dword [esp + 0x50], ebp
shr ebp, 0xb
sub edx, ebp
imul edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x4c]
imul edx, dword [0x8e80c0]
mov ebp, edx
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
shl edx, 0xd
and eax, 0x1f
add ebp, edx
mov edx, dword [esp + 0x60]
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x4c]
imul eax, dword [0x8e80c0]
shr ebx, 0x13
shr ebp, 0xd
shl edx, 0x18
and ebx, 0x7e0
and ebp, 0xf800
add eax, edx
or ebx, ebp
shr eax, 0x18
or ebx, eax
mov ebp, dword [esp + 0x10]
mov word [ebp], bx
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
add dword [esp + 0x1c], eax
add dword [esp + 0x14], edx
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x10], ebp
je 0x5b8615
cmp ecx, dword [esp + 0x40]
jl 0x5b83e0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b86bf
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b8330
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b8330
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b8741
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b8918
cmp edi, dword [esp + 0x6c]
jge 0x5b8918
cmp ecx, dword [esp + 0x40]
jge 0x5b8918
test esi, esi
jle 0x5b8918
jmp 0x5b87c0
cmp ebp, dword [esp + 0x100]
jae 0x5b88ed
cmp eax, dword [esp + 0xbc]
jae 0x5b88ed
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea ebp, [edx + eax*4]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov ax, word [ebp]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [ebp + 2]
mov dword [esp + 0x4c], ebx
not ax
movzx eax, ax
mov ebx, edx
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, eax
shr ebx, 5
mov ebp, edx
shr ebp, 5
and ebp, 0x3f
and ebx, 0x3f
sub ebx, ebp
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov ebp, edx
and ebp, 0xffffffe0
shl ebp, 0x13
add ebx, ebp
mov ebp, eax
shr ebp, 0xb
mov dword [esp + 0x50], edx
shr edx, 0xb
sub ebp, edx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
and eax, 0x1f
shl edx, 0xd
add ebp, edx
mov edx, dword [esp + 0x60]
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x4c]
imul eax, dword [0x8e80c0]
shr ebx, 0x13
shr ebp, 0xd
shl edx, 0x18
add eax, edx
and ebp, 0xf800
and ebx, 0x7e0
shr eax, 0x18
or ebx, ebp
mov ebp, dword [esp + 0x1c]
or ebx, eax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b8918
cmp ecx, dword [esp + 0x40]
jl 0x5b87c0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b89c2
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b8710
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b8710
cmp dword [esp + 0x134], 0
je 0x5b8d21
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b8a52
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b8c26
cmp edi, dword [esp + 0x6c]
jge 0x5b8c26
cmp ecx, dword [esp + 0x40]
jge 0x5b8c26
test esi, esi
jle 0x5b8c26
jmp 0x5b8ad0
cmp ebp, dword [esp + 0x100]
jae 0x5b8bf7
cmp eax, dword [esp + 0xbc]
jae 0x5b8bf7
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
sar ebx, 0x12
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*2]
add ebx, eax
movzx eax, word [edx]
add ebx, dword [esp + 0xac]
movzx edx, ax
cmp edx, dword [esp + 0x58]
je 0x5b8bf7
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x2c], ebx
not eax
movzx eax, ax
mov ebx, edx
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebp, eax
mov ebx, edx
and ebx, 0x7e0
and ebp, 0x7e0
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov ebx, edx
and ebx, 0xffffffe0
shl ebx, 0x10
add ebp, ebx
mov ebx, eax
mov dword [esp + 0x50], edx
and ebx, 0xf800
and edx, 0xf800
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
shl edx, 0x10
and eax, 0x1f
add ebx, edx
mov edx, dword [esp + 0x60]
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [0x8e80c0]
shr ebp, 0x10
shr ebx, 0x10
shl edx, 0x10
and ebp, 0x7e0
add eax, edx
and ebx, 0xf800
or ebp, ebx
shr eax, 0x10
or ebp, eax
mov eax, dword [esp + 0x10]
mov word [eax], bp
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b8c26
cmp ecx, dword [esp + 0x40]
jl 0x5b8ad0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b8cd0
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b8a21
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b8a21
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b8d52
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebx, edx
imul edx, dword [esp + 0x9c]
imul ebx, dword [esp + 0x80]
add ebx, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, ebx
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5b8f16
cmp edi, dword [esp + 0x6c]
jge 0x5b8f16
cmp ecx, dword [esp + 0x40]
jge 0x5b8f16
test esi, esi
jle 0x5b8f16
jmp 0x5b8dd0
cmp ebp, dword [esp + 0x100]
jae 0x5b8eeb
cmp eax, dword [esp + 0xbc]
jae 0x5b8eeb
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
sar ebx, 0x12
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov ax, word [edx]
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x2c], ebx
not ax
movzx eax, ax
mov ebx, edx
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebp, eax
mov ebx, edx
and ebx, 0x7e0
and ebp, 0x7e0
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov ebx, edx
and ebx, 0xffffffe0
shl ebx, 0x10
add ebp, ebx
mov ebx, eax
mov dword [esp + 0x50], edx
and ebx, 0xf800
and edx, 0xf800
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xfffff800
and eax, 0x1f
shl edx, 0x10
add ebx, edx
mov edx, dword [esp + 0x60]
sub eax, edx
imul eax, dword [esp + 0x2c]
imul eax, dword [0x8e80c0]
shr ebp, 0x10
shr ebx, 0x10
shl edx, 0x10
add eax, edx
and ebp, 0x7e0
and ebx, 0xf800
shr eax, 0x10
or ebp, ebx
or ebp, eax
mov eax, dword [esp + 0x10]
mov word [eax], bp
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
je 0x5b8f16
cmp ecx, dword [esp + 0x40]
jl 0x5b8dd0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b8fc0
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b8d21
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b8d21
cmp dword [eax + 0x28], 1
jne 0x5b977e
cmp dword [esp + 0x134], 0
je 0x5b9440
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5b9061
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebp
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x5b9343
cmp edi, dword [esp + 0x6c]
jge 0x5b9343
cmp ecx, dword [esp + 0x40]
jge 0x5b9343
test esi, esi
jle 0x5b9343
lea esp, [esp]
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x100]
jae 0x5b9316
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0xbc]
jae 0x5b9316
mov eax, edx
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
sar ebp, 0x12
and edx, 0x3ffff
add edx, eax
mov eax, ebp
imul ebp, dword [esp + 0xb8]
imul eax, dword [esp + 0x98]
add eax, dword [esp + 0x90]
sar edx, 0x12
add ebp, edx
add ebp, dword [esp + 0xac]
lea eax, [eax + edx*4]
mov dl, byte [eax + 2]
test dl, dl
je 0x5b9316
cmp dl, 0xff
jne 0x5b9228
mov dx, word [eax]
movzx eax, word [ebx]
movzx ebx, byte [ebp]
movzx ebx, byte [ebx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], ebx
not dx
movzx edx, dx
mov dword [esp + 0x54], edx
shr edx, 5
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
and edx, 0x3f
mov ebp, dword [ebp + edx*4]
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov ebx, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0xb
add ebp, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
shr eax, 0xb
shr edx, 0xb
mov ebx, dword [ebx + edx*4]
sub ebx, eax
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 5
add ebx, eax
mov eax, dword [esp + 0x54]
shr ebx, 5
and ebx, 0xf800
shr ebp, 0xb
and ebp, 0x7e0
or ebp, ebx
mov ebx, dword [esp + 0xa0]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x50]
and edx, 0x1f
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
jmp 0x5b930a
mov ax, word [eax]
not ax
movzx eax, ax
mov dword [esp + 0x54], eax
movzx eax, word [ebx]
movzx ebx, byte [ebp]
movzx ebx, byte [ebx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], ebx
movzx edx, dl
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x54]
shr edx, 5
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
and edx, 0x3f
mov ebp, dword [ebp + edx*4]
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov ebx, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0x13
add ebp, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
shr eax, 0xb
shr edx, 0xb
mov ebx, dword [ebx + edx*4]
sub ebx, eax
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 0xd
add ebx, eax
mov eax, dword [esp + 0x54]
shr ebx, 0xd
and ebx, 0xf800
shr ebp, 0x13
and ebp, 0x7e0
or ebp, ebx
mov ebx, dword [esp + 0xa0]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
and edx, 0x1f
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x50]
shl eax, 0x18
add ebx, eax
shr ebx, 0x18
and ebx, 0x1f
or ebp, ebx
mov ebx, dword [esp + 0x10]
mov word [ebx], bp
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
add dword [esp + 0x1c], edx
add dword [esp + 0x14], eax
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x10], ebx
je 0x5b9343
cmp ecx, dword [esp + 0x40]
jl 0x5b90e0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b93ed
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b9030
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b9030
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5b9472
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov eax, edx
imul edx, dword [esp + 0x9c]
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5b9683
cmp edi, dword [esp + 0x6c]
jge 0x5b9683
cmp ecx, dword [esp + 0x40]
jge 0x5b9683
test esi, esi
jle 0x5b9683
jmp 0x5b94f0
cmp ebx, dword [esp + 0x100]
jae 0x5b9656
cmp eax, dword [esp + 0xbc]
jae 0x5b9656
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*4]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov ax, word [edx]
movzx edx, byte [edx + 2]
mov dword [esp + 0x2c], ebx
not ax
movzx eax, ax
mov dword [esp + 0x54], eax
movzx eax, word [ebp]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x54]
shr edx, 5
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
and edx, 0x3f
mov edx, dword [ebp + edx*4]
sub edx, ebx
imul edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x4c]
imul edx, dword [0x8e80c0]
mov ebp, dword [esp + 0xa8]
mov ebx, eax
and ebx, 0xffffffe0
shl ebx, 0x13
add edx, ebx
mov ebx, dword [esp + 0x54]
shr ebx, 0xb
mov ebx, dword [ebp + ebx*4]
mov dword [esp + 0x50], eax
shr eax, 0xb
sub ebx, eax
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
shr edx, 0x13
and edx, 0x7e0
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 0xd
add ebx, eax
mov eax, dword [esp + 0x58]
shr ebx, 0xd
and ebx, 0xf800
or eax, ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x54]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
and edx, 0x1f
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov eax, dword [esp + 0x50]
shl eax, 0x18
add ebx, eax
mov eax, dword [esp + 0x58]
shr ebx, 0x18
and ebx, 0x1f
mov ebp, dword [esp + 0x10]
or eax, ebx
mov ebx, dword [esp + 0x1c]
mov word [ebp], ax
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5b9683
cmp ecx, dword [esp + 0x40]
jl 0x5b94f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b972d
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b9440
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b9440
cmp dword [esp + 0x134], 0
je 0x5b9ab1
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5b97c1
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
mov dword [esp + 0x2c], edx
mov edx, eax
imul eax, dword [esp + 0x48]
imul edx, dword [esp + 0x44]
add edx, ebp
mov ebp, dword [esp + 0x2c]
imul ebp, dword [esp + 0x9c]
add ebp, dword [esp + 0x88]
add esi, 1
add eax, ebp
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jl 0x5b99b6
cmp edi, dword [esp + 0x6c]
jge 0x5b99b6
cmp ecx, dword [esp + 0x40]
jge 0x5b99b6
test esi, esi
jle 0x5b99b6
lea esp, [esp]
cmp edx, dword [esp + 0x100]
jae 0x5b9985
cmp eax, dword [esp + 0xbc]
jae 0x5b9985
mov eax, dword [esp + 0x14]
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3ffff
add eax, edx
sar ebp, 0x12
mov edx, ebp
imul ebp, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*2]
add ebp, eax
movzx eax, word [edx]
add ebp, dword [esp + 0xac]
movzx edx, ax
cmp edx, dword [esp + 0x58]
je 0x5b9981
not eax
movzx edx, ax
movzx eax, word [ebx]
movzx ebx, byte [ebp]
movzx ebx, byte [ebx + 0xa77168]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x54], edx
shr edx, 5
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
and edx, 0x3f
mov ebp, dword [ebp + edx*4]
sub ebp, ebx
imul ebp, dword [esp + 0x2c]
imul ebp, dword [0x8e80c0]
mov ebx, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0xb
add ebp, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
shr eax, 0xb
shr edx, 0xb
mov ebx, dword [ebx + edx*4]
sub ebx, eax
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 5
add ebx, eax
mov eax, dword [esp + 0x54]
shr ebx, 5
and ebx, 0xf800
shr ebp, 0xb
and ebp, 0x7e0
or ebp, ebx
mov ebx, dword [esp + 0xa0]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x50]
and edx, 0x1f
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
shl eax, 0x10
add ebx, eax
shr ebx, 0x10
and ebx, 0x1f
or ebp, ebx
mov ebx, dword [esp + 0x10]
mov word [ebx], bp
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5b99b6
cmp ecx, dword [esp + 0x40]
jl 0x5b9840
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b9a60
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b9790
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b9790
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5b9ae3
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x10], ebp
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov eax, edx
imul edx, dword [esp + 0x9c]
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5b9cd8
cmp edi, dword [esp + 0x6c]
jge 0x5b9cd8
cmp ecx, dword [esp + 0x40]
jge 0x5b9cd8
test esi, esi
jle 0x5b9cd8
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x5b9cab
cmp eax, dword [esp + 0xbc]
jae 0x5b9cab
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sar ebx, 0x12
cdq
and edx, 0x3ffff
add eax, edx
mov edx, ebx
imul ebx, dword [esp + 0xb8]
imul edx, dword [esp + 0x98]
add edx, dword [esp + 0x90]
sar eax, 0x12
add ebx, eax
add ebx, dword [esp + 0xac]
lea edx, [edx + eax*2]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0xa77168]
mov ax, word [edx]
mov dword [esp + 0x2c], ebx
not ax
movzx edx, ax
movzx eax, word [ebp]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x54], edx
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
shr edx, 5
and edx, 0x3f
mov edx, dword [ebp + edx*4]
sub edx, ebx
imul edx, dword [esp + 0x2c]
imul edx, dword [0x8e80c0]
mov ebp, dword [esp + 0xa8]
mov ebx, eax
and ebx, 0xffffffe0
shl ebx, 0xb
add edx, ebx
mov ebx, dword [esp + 0x54]
shr ebx, 0xb
mov ebx, dword [ebp + ebx*4]
mov dword [esp + 0x50], eax
shr eax, 0xb
sub ebx, eax
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
shr edx, 0xb
and edx, 0x7e0
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 5
add ebx, eax
mov eax, dword [esp + 0x58]
shr ebx, 5
and ebx, 0xf800
or eax, ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x54]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x50]
and edx, 0x1f
sub ebx, edx
imul ebx, dword [esp + 0x2c]
imul ebx, dword [0x8e80c0]
mov ebp, dword [esp + 0x10]
shl eax, 0x10
add ebx, eax
mov eax, dword [esp + 0x58]
shr ebx, 0x10
and ebx, 0x1f
or eax, ebx
mov ebx, dword [esp + 0x1c]
mov word [ebp], ax
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5b9cd8
cmp ecx, dword [esp + 0x40]
jl 0x5b9b60
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5b9d82
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b9ab1
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b9ab1
cmp edx, 0xffffff
jne 0x5baa28
cmp dword [eax + 0x28], 1
jne 0x5ba46e
cmp dword [esp + 0x134], 0
je 0x5ba194
jmp 0x5b9e00
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5b9e31
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5ba096
cmp edi, dword [esp + 0x6c]
jge 0x5ba096
cmp ecx, dword [esp + 0x40]
jge 0x5ba096
test esi, esi
jle 0x5ba096
cmp ebx, dword [esp + 0x100]
jae 0x5ba067
cmp eax, dword [esp + 0xbc]
jae 0x5ba067
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
mov dl, byte [eax + 2]
test dl, dl
je 0x5ba063
cmp dl, 0xff
jne 0x5b9fa9
mov dx, word [eax]
not dx
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov dword [esp + 0x50], edx
shr edx, 5
mov ebx, eax
shr ebx, 5
and edx, 0x3f
and ebx, 0x3f
sub ebx, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
and edx, 0x3f
add dx, word [ebp + ebx*4]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x54], eax
shr eax, 0xb
shr ebx, 0xb
sub eax, ebx
movzx ebx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x50]
shl dx, 5
shl bx, 0xb
or dx, bx
mov word [esp + 0xdc], dx
mov edx, dword [esp + 0x54]
movzx ebx, word [esp + 0xdc]
and eax, 0x1f
and edx, 0x1f
sub edx, eax
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + edx*4]
or bx, ax
jmp 0x5ba05c
mov ax, word [eax]
not ax
movzx edx, dl
movzx ebx, ax
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
mov dword [esp + 0x4c], edx
mov edx, eax
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, eax
and edx, 0xf800
mov dword [esp + 0x54], ebx
and ebx, 0xf800
sub ebx, edx
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov edx, eax
and edx, 0xfffff800
shl edx, 0x10
add ebx, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
and eax, 0x7e0
and edx, 0x7e0
sub edx, eax
imul edx, dword [esp + 0x4c]
imul edx, dword [0x8e80c0]
mov eax, dword [esp + 0x50]
and eax, 0xffffffe0
shl eax, 0x10
add edx, eax
mov eax, dword [esp + 0x54]
and eax, 0x1f
sub eax, dword [esp + 0x60]
shr edx, 0x10
imul eax, dword [esp + 0x4c]
imul eax, dword [0x8e80c0]
shr ebx, 0x10
and edx, 0x7e0
and ebx, 0xf800
or ebx, edx
mov edx, dword [esp + 0x60]
shl edx, 0x10
add eax, edx
shr eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5ba096
cmp ecx, dword [esp + 0x40]
jl 0x5b9eb0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ba143
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5b9e00
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5b9e00
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5ba1c5
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov ebp, edx
imul edx, dword [esp + 0x9c]
imul ebp, dword [esp + 0x80]
add ebp, dword [esp + 0x94]
add edx, dword [esp + 0x88]
mov ebx, eax
imul eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x44]
add ebx, ebp
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5ba373
cmp edi, dword [esp + 0x6c]
jge 0x5ba373
cmp ecx, dword [esp + 0x40]
jge 0x5ba373
test esi, esi
jle 0x5ba373
mov ebp, dword [esp + 0x10]
lea esp, [esp]
cmp ebx, dword [esp + 0x100]
jae 0x5ba346
cmp eax, dword [esp + 0xbc]
jae 0x5ba346
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea ebx, [edx + eax*4]
mov dx, word [ebx]
movzx ebx, byte [ebx + 2]
mov dword [esp + 0x4c], ebx
not dx
movzx eax, dx
movzx edx, word [ebp]
mov ebx, edx
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, eax
and ebx, 0xf800
mov ebp, edx
and ebp, 0xf800
sub ebx, ebp
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov ebp, edx
and ebp, 0xfffff800
shl ebp, 0x10
add ebx, ebp
mov ebp, eax
and ebp, 0x7e0
mov dword [esp + 0x50], edx
and edx, 0x7e0
sub ebp, edx
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
and edx, 0xffffffe0
shl edx, 0x10
add ebp, edx
mov edx, dword [esp + 0x60]
and eax, 0x1f
sub eax, edx
imul eax, dword [esp + 0x4c]
imul eax, dword [0x8e80c0]
shr ebx, 0x10
shr ebp, 0x10
shl edx, 0x10
and ebx, 0xf800
and ebp, 0x7e0
add eax, edx
or ebx, ebp
mov ebp, dword [esp + 0x10]
shr eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x14]
mov word [ebp], bx
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebp, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
je 0x5ba373
cmp ecx, dword [esp + 0x40]
jl 0x5ba240
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ba41d
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5ba194
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5ba194
cmp dword [esp + 0x134], 0
je 0x5ba754
lea esp, [esp]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5ba4b1
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5ba656
cmp edi, dword [esp + 0x6c]
jge 0x5ba656
cmp ecx, dword [esp + 0x40]
jge 0x5ba656
test esi, esi
jle 0x5ba656
cmp ebx, dword [esp + 0x100]
jae 0x5ba627
cmp eax, dword [esp + 0xbc]
jae 0x5ba627
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx eax, word [eax]
movzx edx, ax
cmp edx, dword [esp + 0x58]
je 0x5ba623
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x5c], edx
not eax
movzx edx, dx
movzx eax, ax
mov dword [esp + 0x50], edx
mov ebx, eax
shr edx, 5
shr ebx, 5
and edx, 0x3f
and ebx, 0x3f
sub ebx, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
and edx, 0x3f
add dx, word [ebp + ebx*4]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x54], eax
shr eax, 0xb
shr ebx, 0xb
sub eax, ebx
movzx ebx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x50]
shl dx, 5
shl bx, 0xb
or dx, bx
mov word [esp + 0xdc], dx
mov edx, dword [esp + 0x54]
movzx ebx, word [esp + 0xdc]
and eax, 0x1f
and edx, 0x1f
sub edx, eax
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + edx*4]
or bx, ax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5ba656
cmp ecx, dword [esp + 0x40]
jl 0x5ba530
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ba703
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5ba480
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5ba480
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5ba785
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5ba92a
cmp edi, dword [esp + 0x6c]
jge 0x5ba92a
cmp ecx, dword [esp + 0x40]
jge 0x5ba92a
test esi, esi
jle 0x5ba92a
jmp 0x5ba810
cmp ebx, dword [esp + 0x100]
jae 0x5ba8ff
cmp eax, dword [esp + 0xbc]
jae 0x5ba8ff
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
mov dx, word [eax]
not dx
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x5c], edx
movzx edx, dx
mov dword [esp + 0x50], edx
mov ebx, eax
shr ebx, 5
shr edx, 5
and edx, 0x3f
and ebx, 0x3f
sub ebx, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
and edx, 0x3f
add dx, word [ebp + ebx*4]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x54], eax
shr eax, 0xb
shr ebx, 0xb
sub eax, ebx
movzx ebx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x50]
shl dx, 5
shl bx, 0xb
or dx, bx
mov word [esp + 0xdc], dx
mov edx, dword [esp + 0x54]
movzx ebx, word [esp + 0xdc]
and eax, 0x1f
and edx, 0x1f
sub edx, eax
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + edx*4]
or bx, ax
mov eax, dword [esp + 0x10]
mov word [eax], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5ba92a
cmp ecx, dword [esp + 0x40]
jl 0x5ba810
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5ba9d7
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5ba754
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5ba754
cmp dword [eax + 0x28], 1
jne 0x5bb10a
cmp dword [esp + 0x134], 0
je 0x5bae10
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5baa71
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5bad10
cmp edi, dword [esp + 0x6c]
jge 0x5bad10
cmp ecx, dword [esp + 0x40]
jge 0x5bad10
test esi, esi
jle 0x5bad10
cmp ebx, dword [esp + 0x100]
jae 0x5bace1
cmp eax, dword [esp + 0xbc]
jae 0x5bace1
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*4]
mov dl, byte [eax + 2]
test dl, dl
je 0x5bacdd
cmp dl, 0xff
mov ebx, dword [esp + 0xa4]
jne 0x5bac0c
mov dx, word [eax]
not dx
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x54], eax
shr eax, 5
movzx edx, dx
and eax, 0x3f
mov eax, dword [ebx + eax*4]
mov dword [esp + 0x50], edx
mov ebx, edx
shr edx, 5
and edx, 0x3f
sub eax, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
and edx, 0x3f
add dx, word [ebp + eax*4]
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0xa8]
shr eax, 0xb
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0xdc]
shr ebx, 0xb
sub eax, ebx
mov bx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x54]
shl bx, 0xb
shl dx, 5
or dx, bx
mov ebx, dword [esp + 0x50]
and ebx, 0x1f
and eax, 0x1f
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + ebx*4]
or dx, ax
mov eax, dword [esp + 0x10]
mov word [eax], dx
jmp 0x5bacdd
mov ax, word [eax]
not ax
movzx ebp, ax
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
mov dword [esp + 0x54], ebp
shr ebp, 5
movzx edx, dl
and ebp, 0x3f
mov ebx, dword [ebx + ebp*4]
mov dword [esp + 0x4c], edx
mov edx, eax
shr edx, 5
and edx, 0x3f
sub ebx, edx
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov ebp, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0xb
add ebx, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
shr eax, 0xb
shr edx, 0xb
mov ebp, dword [ebp + edx*4]
sub ebp, eax
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 5
add ebp, eax
mov eax, dword [esp + 0x54]
shr ebp, 5
and ebp, 0xf800
shr ebx, 0xb
and ebx, 0x7e0
or ebx, ebp
mov ebp, dword [esp + 0xa0]
and eax, 0x1f
mov ebp, dword [ebp + eax*4]
mov eax, dword [esp + 0x50]
and edx, 0x1f
sub ebp, edx
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov edx, dword [esp + 0x10]
shl eax, 0x10
add ebp, eax
shr ebp, 0x10
and ebp, 0x1f
or ebx, ebp
mov ebp, dword [esp + 0xdc]
mov word [edx], bx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5bad10
cmp ecx, dword [esp + 0x40]
jl 0x5baaf0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5badbd
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5baa40
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5baa40
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebx
jge 0x5bae41
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebx, [ebx + edx*2]
mov dword [esp + 0x10], ebx
mov ecx, eax
mov edx, edi
sub edx, dword [esp + 0x8c]
mov eax, ecx
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], edx
imul edx, dword [esp + 0x80]
add edx, dword [esp + 0x94]
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x44]
add ebp, edx
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
add esi, 1
add eax, edx
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
jl 0x5bb00f
cmp edi, dword [esp + 0x6c]
jge 0x5bb00f
cmp ecx, dword [esp + 0x40]
jge 0x5bb00f
test esi, esi
jle 0x5bb00f
lea ebx, [ebx]
cmp ebp, dword [esp + 0x100]
jae 0x5bafe2
cmp eax, dword [esp + 0xbc]
jae 0x5bafe2
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebp
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea edx, [edx + eax*4]
mov ax, word [edx]
movzx edx, byte [edx + 2]
not ax
movzx ebp, ax
movzx eax, word [ebx]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x4c], edx
shr ebp, 5
mov edx, eax
and ebp, 0x3f
mov ebp, dword [ebx + ebp*4]
shr edx, 5
and edx, 0x3f
sub ebp, edx
imul ebp, dword [esp + 0x4c]
imul ebp, dword [0x8e80c0]
mov ebx, dword [esp + 0xa8]
mov edx, eax
and edx, 0xffffffe0
shl edx, 0xb
add ebp, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
shr eax, 0xb
shr edx, 0xb
mov ebx, dword [ebx + edx*4]
sub ebx, eax
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0xfffff800
shl eax, 5
add ebx, eax
mov eax, dword [esp + 0x54]
shr ebx, 5
and ebx, 0xf800
shr ebp, 0xb
and ebp, 0x7e0
or ebp, ebx
mov ebx, dword [esp + 0xa0]
and eax, 0x1f
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x50]
and edx, 0x1f
sub ebx, edx
imul ebx, dword [esp + 0x4c]
imul ebx, dword [0x8e80c0]
shl eax, 0x10
add ebx, eax
mov eax, dword [esp + 0x14]
shr ebx, 0x10
and ebx, 0x1f
or ebp, ebx
mov ebx, dword [esp + 0x10]
mov word [ebx], bp
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add ebx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
je 0x5bb00f
cmp ecx, dword [esp + 0x40]
jl 0x5baec0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5bb0b9
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5bae10
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5bae10
cmp dword [esp + 0x134], 0
je 0x5bb410
jmp 0x5bb120
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5bb151
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5bb312
cmp edi, dword [esp + 0x6c]
jge 0x5bb312
cmp ecx, dword [esp + 0x40]
jge 0x5bb312
test esi, esi
jle 0x5bb312
cmp ebx, dword [esp + 0x100]
jae 0x5bb2e3
cmp eax, dword [esp + 0xbc]
jae 0x5bb2e3
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x60], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x60]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
movzx eax, word [eax]
movzx edx, ax
cmp edx, dword [esp + 0x58]
je 0x5bb2df
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov ebx, dword [esp + 0xa4]
not eax
movzx eax, ax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x54], eax
shr eax, 5
movzx edx, dx
and eax, 0x3f
mov eax, dword [ebx + eax*4]
mov dword [esp + 0x50], edx
mov ebx, edx
shr edx, 5
and edx, 0x3f
sub eax, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
and edx, 0x3f
add dx, word [ebp + eax*4]
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0xa8]
shr eax, 0xb
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0xdc]
shr ebx, 0xb
sub eax, ebx
mov bx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x54]
shl bx, 0xb
shl dx, 5
or dx, bx
mov ebx, dword [esp + 0x50]
and ebx, 0x1f
and eax, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + ebx*4]
or dx, ax
mov eax, dword [esp + 0x10]
mov word [eax], dx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5bb312
cmp ecx, dword [esp + 0x40]
jl 0x5bb1d0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5bb3bf
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5bb120
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5bb120
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5bb441
mov ebx, ecx
sub ebx, eax
add esi, ebx
mov ebx, eax
sub ebx, ecx
lea ecx, [edx + ebx*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x8c]
mov ebx, ecx
sub ebx, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x9c]
add edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebx
imul ebx, dword [esp + 0x44]
add ebx, eax
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x48]
add eax, edx
add esi, 1
cmp edi, dword [esp + 0x68]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jl 0x5bb5f6
cmp edi, dword [esp + 0x6c]
jge 0x5bb5f6
cmp ecx, dword [esp + 0x40]
jge 0x5bb5f6
test esi, esi
jle 0x5bb5f6
cmp ebx, dword [esp + 0x100]
jae 0x5bb5cb
cmp eax, dword [esp + 0xbc]
jae 0x5bb5cb
cdq
and edx, 0x3ffff
add eax, edx
sar eax, 0x12
imul eax, dword [esp + 0x98]
mov dword [esp + 0x58], eax
mov eax, ebx
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x90]
sar eax, 0x12
lea eax, [edx + eax*2]
mov dx, word [eax]
mov ebx, dword [esp + 0xa4]
not dx
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], edx
shr eax, 5
movzx edx, dx
and eax, 0x3f
mov eax, dword [ebx + eax*4]
mov dword [esp + 0x50], edx
mov ebx, edx
shr edx, 5
and edx, 0x3f
sub eax, edx
mov edx, dword [esp + 0x5c]
shr edx, 5
shr ebx, 0xb
and edx, 0x3f
add dx, word [ebp + eax*4]
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0xa8]
shr eax, 0xb
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0xdc]
sub eax, ebx
mov bx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + eax*4]
mov eax, dword [esp + 0x54]
shl bx, 0xb
shl dx, 5
or dx, bx
mov ebx, dword [esp + 0x50]
and ebx, 0x1f
and eax, 0x1f
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + eax*4]
sub ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + ebx*4]
mov ebx, dword [esp + 0x1c]
or dx, ax
mov eax, dword [esp + 0x10]
mov word [eax], dx
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add dword [esp + 0x10], 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
je 0x5bb5f6
cmp ecx, dword [esp + 0x40]
jl 0x5bb4c0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5bb6a3
cmp dword [esp + 0x30], 1
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5bb410
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5bb410
mov eax, dword [esp + 0x4c]
cmp dword [eax + 0x1c], 0
mov eax, dword [esp + 0x13c]
jne 0x5bb752
mov edx, dword [esp + 0xa8]
mov ebx, eax
sar eax, 0xb
mov edx, dword [edx + eax*4]
mov eax, dword [esp + 0xa4]
sar ebx, 5
and ebx, 0x3f
shl edx, 6
or edx, dword [eax + ebx*4]
mov eax, dword [esp + 0x13c]
mov ebx, dword [esp + 0xa0]
shl edx, 5
and eax, 0x1f
or edx, dword [ebx + eax*4]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x110], edx
jmp 0x5bb7a1
mov dword [esp + 0x110], eax
movzx edx, al
mov eax, dword [esp + 0xa0]
movzx edx, byte [eax + edx*4]
movzx eax, byte [esp + 0x111]
mov byte [esp + 0x110], dl
mov edx, dword [esp + 0xa4]
mov al, byte [edx + eax*4]
movzx edx, byte [esp + 0x112]
mov byte [esp + 0x111], al
mov eax, dword [esp + 0xa8]
movzx edx, byte [eax + edx*4]
mov byte [esp + 0x112], dl
mov eax, dword [esp + 0x128]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
sub eax, 0
mov edx, dword [0x8e80c0]
je 0x5bc472
sub eax, 1
jne case.0x5bc480.5
mov eax, dword [0x8e80bc]
cmp eax, 0xb
ja case.0x5bc480.5
jmp dword [eax*4 + 0x5bd2ec]
cmp edx, 0xff
jne 0x5bb967
jmp case.0x5bb7d4.0
mov edx, edi
imul edx, dword [esp + 0x74]
add edx, dword [esp + 0x78]
lea eax, [edx + ecx*4]
mov edx, dword [esp + 0x70]
cmp ecx, edx
jge 0x5bb819
mov ebx, ecx
sub ebx, edx
add esi, ebx
mov ebx, edx
sub ebx, ecx
lea eax, [eax + ebx*4]
mov ecx, edx
add esi, 1
cmp edi, dword [esp + 0x68]
jl 0x5bb86c
cmp edi, dword [esp + 0x6c]
jge 0x5bb86c
cmp ecx, dword [esp + 0x40]
jge 0x5bb86c
test esi, esi
jle 0x5bb86c
mov edx, dword [esp + 0x40]
jmp 0x5bb850
mov ebx, dword [esp + 0x110]
mov dword [eax], ebx
add eax, 4
add ecx, 1
sub esi, 1
je 0x5bb86c
cmp ecx, edx
jl 0x5bb850
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5bb916
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne case.0x5bb7d4.0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp case.0x5bb7d4.0
test edx, edx
je case.0x5bc480.5
nop
mov edx, dword [esp + 0x70]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
cmp ecx, edx
lea eax, [eax + ecx*4]
jge 0x5bb999
mov ebx, ecx
sub ebx, edx
add esi, ebx
mov ebx, edx
sub ebx, ecx
lea eax, [eax + ebx*4]
mov ecx, edx
add esi, 1
cmp edi, dword [esp + 0x68]
jl 0x5bba41
cmp edi, dword [esp + 0x6c]
jge 0x5bba41
cmp ecx, dword [esp + 0x40]
jge 0x5bba41
test esi, esi
jle 0x5bba41
mov edx, dword [esp + 0x40]
jmp 0x5bb9d0
movzx ebp, byte [eax]
movzx ebx, byte [esp + 0x110]
sub ebx, ebp
imul ebx, dword [0x8e80c0]
shl ebp, 8
add ebx, ebp
sar ebx, 8
mov byte [eax], bl
movzx ebp, byte [eax + 1]
movzx ebx, byte [esp + 0x111]
sub ebx, ebp
imul ebx, dword [0x8e80c0]
shl ebp, 8
add ebx, ebp
sar ebx, 8
mov byte [eax + 1], bl
movzx ebp, byte [eax + 2]
movzx ebx, byte [esp + 0x112]
sub ebx, ebp
imul ebx, dword [0x8e80c0]
shl ebp, 8
add ebx, ebp
sar ebx, 8
mov byte [eax + 2], bl
add eax, 4
add ecx, 1
sub esi, 1
je 0x5bba41
cmp ecx, edx
jl 0x5bb9d0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5bbaeb
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5bb970
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5bb970
test edx, edx
je case.0x5bc480.5
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5bbb76
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov dword [esp + 0x10], ebp
mov ecx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
jl 0x5bbc2e
cmp edi, dword [esp + 0x6c]
jge 0x5bbc2e
cmp ecx, dword [esp + 0x40]
jge 0x5bbc2e
test esi, esi
jle 0x5bbc2e
nop
movzx eax, byte [esp + 0x110]
movzx edx, byte [ebx + eax*4]
movzx eax, byte [esp + 0x111]
mov ebp, dword [ebp]
mov byte [esp + 0x50], dl
movzx edx, byte [ebx + eax*4]
movzx eax, byte [esp + 0x112]
mov byte [esp + 0x51], dl
movzx edx, byte [ebx + eax*4]
mov byte [esp + 0x52], dl
mov edx, dword [esp + 0x50]
mov dword [esp + 0x5c], ebp
and ebp, 0xfefeff
mov eax, edx
or edx, dword [esp + 0x5c]
and eax, 0xfefeff
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x10]
and edx, 0x10100
or eax, edx
or eax, dword [esp + 0x60]
add ebp, 4
mov dword [ebp - 4], eax
add ecx, 1
sub esi, 1
mov dword [esp + 0x10], ebp
je 0x5bbc2e
cmp ecx, dword [esp + 0x40]
jl 0x5bbba0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5bbcdb
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5bbb44
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5bbb44
test edx, edx
je case.0x5bc480.5
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], ebp
jge 0x5bbd66
mov edx, ecx
sub edx, eax
add esi, edx
mov edx, eax
sub edx, ecx
lea ebp, [ebp + edx*4]
mov dword [esp + 0x10], ebp
mov ecx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
jl 0x5bbe04
cmp edi, dword [esp + 0x6c]
jge 0x5bbe04
cmp ecx, dword [esp + 0x40]
jge 0x5bbe04
test esi, esi
jle 0x5bbe04
nop
movzx eax, byte [esp + 0x110]
movzx edx, byte [ebx + eax*4]
movzx eax, byte [esp + 0x111]
mov byte [esp + 0x50], dl
movzx edx, byte [ebx + eax*4]
movzx eax, byte [esp + 0x112]
mov byte [esp + 0x51], dl
movzx edx, byte [ebx + eax*4]
mov byte [esp + 0x52], dl
mov edx, dword [ebp]
mov eax, dword [esp + 0x50]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
mov ebp, dword [esp + 0x10]
and eax, edx
mov dword [ebp], eax
add ebp, 4
add ecx, 1
sub esi, 1
mov dword [esp + 0x10], ebp
je 0x5bbe04
cmp ecx, dword [esp + 0x40]
jl 0x5bbd90
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5bbeb1
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5bbd34
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5bbd34
mov edx, dword [esp + 0x70]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
cmp ecx, edx
lea eax, [eax + ecx*4]
jge 0x5bbf2b
mov ebx, ecx
sub ebx, edx
add esi, ebx
mov ebx, edx
sub ebx, ecx
lea eax, [eax + ebx*4]
mov ecx, edx
add esi, 1
cmp edi, dword [esp + 0x68]
jl 0x5bbfb0
cmp edi, dword [esp + 0x6c]
jge 0x5bbfb0
cmp ecx, dword [esp + 0x40]
jge 0x5bbfb0
test esi, esi
jle 0x5bbfb0
mov ebp, dword [esp + 0x40]
jmp 0x5bbf60
movzx ebx, byte [eax]
movzx edx, byte [esp + 0x110]
imul edx, ebx
sar edx, 8
mov byte [eax], dl
movzx edx, byte [eax + 1]
movzx ebx, byte [esp + 0x111]
imul edx, ebx
sar edx, 8
mov byte [eax + 1], dl
movzx edx, byte [eax + 2]
movzx ebx, byte [esp + 0x112]
imul edx, ebx
sar edx, 8
mov byte [eax + 2], dl
add eax, 4
add ecx, 1
sub esi, 1
je 0x5bbfb0
cmp ecx, ebp
jl 0x5bbf60
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5bc05a
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne case.0x5bb7d4.4
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp case.0x5bb7d4.4
mov edx, dword [esp + 0x70]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
cmp ecx, edx
lea eax, [eax + ecx*4]
jge 0x5bc0d9
mov ebx, ecx
sub ebx, edx
add esi, ebx
mov ebx, edx
sub ebx, ecx
lea eax, [eax + ebx*4]
mov ecx, edx
add esi, 1
cmp edi, dword [esp + 0x68]
jl 0x5bc1a0
cmp edi, dword [esp + 0x6c]
jge 0x5bc1a0
cmp ecx, dword [esp + 0x40]
jge 0x5bc1a0
test esi, esi
jle 0x5bc1a0
mov edx, dword [esp + 0x40]
jmp 0x5bc110
movzx ebp, byte [eax]
movzx ebx, byte [esp + 0x110]
imul ebx, ebp
sar ebx, 8
movzx ebx, bl
sub ebx, ebp
imul ebx, dword [0x8e80c0]
shl ebp, 8
add ebx, ebp
sar ebx, 8
mov byte [eax], bl
movzx ebp, byte [eax + 1]
movzx ebx, byte [esp + 0x111]
imul ebx, ebp
sar ebx, 8
movzx ebx, bl
sub ebx, ebp
imul ebx, dword [0x8e80c0]
shl ebp, 8
add ebx, ebp
sar ebx, 8
mov byte [eax + 1], bl
movzx ebp, byte [eax + 2]
movzx ebx, byte [esp + 0x112]
imul ebx, ebp
sar ebx, 8
movzx ebx, bl
sub ebx, ebp
imul ebx, dword [0x8e80c0]
shl ebp, 8
add ebx, ebp
sar ebx, 8
mov byte [eax + 2], bl
add eax, 4
add ecx, 1
sub esi, 1
je 0x5bc1a0
cmp ecx, edx
jl 0x5bc110
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5bc24a
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne case.0x5bb7d4.11
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp case.0x5bb7d4.11
mov edx, dword [esp + 0x70]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
cmp ecx, edx
lea eax, [eax + ecx*4]
jge 0x5bc2c9
mov ebx, ecx
sub ebx, edx
add esi, ebx
mov ebx, edx
sub ebx, ecx
lea eax, [eax + ebx*4]
mov ecx, edx
add esi, 1
cmp edi, dword [esp + 0x68]
jl 0x5bc377
cmp edi, dword [esp + 0x6c]
jge 0x5bc377
cmp ecx, dword [esp + 0x40]
jge 0x5bc377
test esi, esi
jle 0x5bc377
mov dl, byte [esp + 0x110]
movzx ebp, byte [eax]
not dl
movzx edx, dl
sub edx, ebp
imul edx, dword [0x8e80c0]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [eax], dl
movzx edx, byte [esp + 0x111]
movzx ebp, byte [eax + 1]
not dl
movzx edx, dl
sub edx, ebp
imul edx, dword [0x8e80c0]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [eax + 1], dl
movzx edx, byte [esp + 0x112]
movzx ebp, byte [eax + 2]
not dl
movzx edx, dl
sub edx, ebp
imul edx, dword [0x8e80c0]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [eax + 2], dl
add eax, 4
add ecx, 1
sub esi, 1
je 0x5bc377
cmp ecx, dword [esp + 0x40]
jl 0x5bc2f2
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5bc421
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne case.0x5bb7d4.10
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp case.0x5bb7d4.10
mov eax, dword [0x8e80bc]
cmp eax, 0xb
ja case.0x5bc480.5
jmp dword [eax*4 + 0x5bd31c]
cmp edx, 0xff
jne 0x5bc609
mov edx, dword [esp + 0x70]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
cmp ecx, edx
lea eax, [eax + ecx*2]
jge 0x5bc4bc
mov ebx, ecx
sub ebx, edx
add esi, ebx
mov ebx, edx
sub ebx, ecx
lea eax, [eax + ebx*2]
mov ecx, edx
add esi, 1
cmp edi, dword [esp + 0x68]
jl 0x5bc50e
cmp edi, dword [esp + 0x6c]
jge 0x5bc50e
mov edx, dword [esp + 0x40]
cmp ecx, edx
jge 0x5bc50e
test esi, esi
jle 0x5bc50e
jmp 0x5bc4f0
mov bx, word [esp + 0x110]
mov word [eax], bx
add eax, 2
add ecx, 1
sub esi, 1
je 0x5bc50e
cmp ecx, edx
jl 0x5bc4f0
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5bc5b8
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne case.0x5bc480.0
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp case.0x5bc480.0
test edx, edx
je case.0x5bc480.5
mov edx, dword [esp + 0x70]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
cmp ecx, edx
lea eax, [eax + ecx*2]
mov dword [esp + 0x10], eax
jge 0x5bc642
mov ebx, ecx
sub ebx, edx
add esi, ebx
mov ebx, edx
sub ebx, ecx
lea eax, [eax + ebx*2]
mov dword [esp + 0x10], eax
mov ecx, edx
add esi, 1
cmp edi, dword [esp + 0x68]
jl 0x5bc721
cmp edi, dword [esp + 0x6c]
jge 0x5bc721
cmp ecx, dword [esp + 0x40]
jge 0x5bc721
test esi, esi
jle 0x5bc721
jmp 0x5bc670
movzx eax, word [eax]
movzx edx, word [esp + 0x110]
mov dword [esp + 0x5c], eax
movzx eax, ax
mov dword [esp + 0x50], eax
shr eax, 5
and eax, 0x3f
mov ebx, edx
shr ebx, 5
and ebx, 0x3f
sub ebx, eax
mov eax, dword [esp + 0x5c]
shr eax, 5
and eax, 0x3f
add ax, word [ebp + ebx*4]
mov ebx, dword [esp + 0x50]
shr ebx, 0xb
mov dword [esp + 0x58], edx
shr edx, 0xb
sub edx, ebx
movzx ebx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + edx*4]
mov edx, dword [esp + 0x58]
shl ax, 5
shl bx, 0xb
or ax, bx
mov word [esp + 0xdc], ax
mov eax, dword [esp + 0x50]
movzx ebx, word [esp + 0xdc]
and eax, 0x1f
and edx, 0x1f
sub edx, eax
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + edx*4]
add ecx, 1
or bx, ax
mov eax, dword [esp + 0x10]
mov word [eax], bx
add eax, 2
sub esi, 1
mov dword [esp + 0x10], eax
je 0x5bc721
cmp ecx, dword [esp + 0x40]
jl 0x5bc670
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5bc7ce
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne 0x5bc611
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5bc611
test edx, edx
je case.0x5bc480.5
jmp 0x5bc830
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5bc861
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
jl 0x5bc91e
cmp edi, dword [esp + 0x6c]
jge 0x5bc91e
cmp ecx, dword [esp + 0x40]
jge 0x5bc91e
test esi, esi
jle 0x5bc91e
lea ebx, [ebx]
movzx eax, word [esp + 0x110]
mov edx, eax
shr edx, 0xb
mov dx, word [ebx + edx*4]
mov ebp, eax
shl dx, 6
shr ebp, 5
and ebp, 0x3f
add dx, word [ebx + ebp*4]
and eax, 0x1f
shl dx, 5
add dx, word [ebx + eax*4]
mov eax, dword [esp + 0x10]
movzx ebp, dx
movzx edx, word [eax]
movzx eax, dx
and eax, 0xf7def7df
mov dword [esp + 0x5c], ebp
or edx, dword [esp + 0x5c]
and ebp, 0xf7def7df
add eax, ebp
mov dword [esp + 0x60], eax
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
and edx, 0x820
sub eax, ebp
or eax, edx
or eax, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov word [edx], ax
add edx, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x10], edx
je 0x5bc91e
cmp ecx, dword [esp + 0x40]
jl 0x5bc890
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5bc9cb
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5bc830
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5bc830
test edx, edx
je case.0x5bc480.5
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x10], edx
jge 0x5bca55
mov ebp, ecx
sub ebp, eax
add esi, ebp
mov ebp, eax
sub ebp, ecx
lea ecx, [edx + ebp*2]
mov dword [esp + 0x10], ecx
mov ecx, eax
add esi, 1
cmp edi, dword [esp + 0x68]
jl 0x5bcaf3
cmp edi, dword [esp + 0x6c]
jge 0x5bcaf3
cmp ecx, dword [esp + 0x40]
jge 0x5bcaf3
test esi, esi
jle 0x5bcaf3
mov edi, edi
movzx eax, word [esp + 0x110]
mov edx, eax
shr edx, 0xb
mov dx, word [ebx + edx*4]
mov ebp, eax
shl dx, 6
shr ebp, 5
and ebp, 0x3f
add dx, word [ebx + ebp*4]
and eax, 0x1f
shl dx, 5
add dx, word [ebx + eax*4]
add ecx, 1
movzx eax, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and eax, 0xf7def7df
or edx, 0x8210820
sub edx, eax
mov eax, edx
and eax, 0x8210820
mov ebp, eax
shr ebp, 5
sub eax, ebp
and eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
add edx, 2
sub esi, 1
mov dword [esp + 0x10], edx
je 0x5bcaf3
cmp ecx, dword [esp + 0x40]
jl 0x5bca80
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x28]
sar ebp, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebp
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5bcba0
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebp, ecx
mov dword [esp + 0x28], edx
mov esi, ebp
cmp dword [esp + 0x18], 0
jne 0x5bca24
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp 0x5bca24
mov edx, dword [esp + 0x70]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
cmp ecx, edx
lea eax, [eax + ecx*2]
mov dword [esp + 0x10], eax
jge 0x5bcc22
mov ebx, ecx
sub ebx, edx
add esi, ebx
mov ebx, edx
sub ebx, ecx
lea eax, [eax + ebx*2]
mov dword [esp + 0x10], eax
mov ecx, edx
add esi, 1
cmp edi, dword [esp + 0x68]
jl 0x5bccc9
cmp edi, dword [esp + 0x6c]
jge 0x5bccc9
cmp ecx, dword [esp + 0x40]
jge 0x5bccc9
test esi, esi
jle 0x5bccc9
jmp 0x5bcc50
movzx eax, word [eax]
movzx edx, word [esp + 0x110]
mov ebx, eax
and ebx, 0x7e0
mov ebp, edx
and ebp, 0x7e0
imul ebx, ebp
mov ebp, eax
mov dword [esp + 0x58], edx
and ebp, 0xf800
and edx, 0xf800
imul ebp, edx
mov edx, dword [esp + 0x58]
and eax, 0x1f
and edx, 0x1f
imul eax, edx
shr ebx, 0xb
shr ebp, 0x10
and ebx, 0x7e0
and ebp, 0xf800
shr eax, 5
or ebx, ebp
or ebx, eax
mov eax, dword [esp + 0x10]
mov word [eax], bx
add eax, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x10], eax
je 0x5bccc9
cmp ecx, dword [esp + 0x40]
jl 0x5bcc50
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov edx, 1
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, edx
sub esi, ecx
add edi, edx
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5bcd73
cmp dword [esp + 0x30], edx
je case.0x5bc480.5
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne case.0x5bc480.4
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp case.0x5bc480.4
mov edx, dword [esp + 0x70]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
cmp ecx, edx
lea eax, [eax + ecx*2]
mov dword [esp + 0x10], eax
jge 0x5bcdf5
mov ebx, ecx
sub ebx, edx
add esi, ebx
mov ebx, edx
sub ebx, ecx
lea eax, [eax + ebx*2]
mov dword [esp + 0x10], eax
mov ecx, edx
add esi, 1
cmp edi, dword [esp + 0x68]
jl 0x5bceec
cmp edi, dword [esp + 0x6c]
jge 0x5bceec
cmp ecx, dword [esp + 0x40]
jge 0x5bceec
test esi, esi
jle 0x5bceec
mov edi, edi
movzx eax, word [eax]
movzx edx, word [esp + 0x110]
mov dword [esp + 0x58], edx
movzx edx, ax
mov dword [esp + 0x5c], eax
mov eax, edx
mov ebx, edx
and edx, 0x1f
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x58]
shr eax, 5
and eax, 0x3f
shr edx, 5
and edx, 0x3f
imul edx, eax
sar edx, 6
sub edx, eax
mov eax, dword [esp + 0x5c]
shr eax, 5
and eax, 0x3f
add ax, word [ebp + edx*4]
mov edx, dword [esp + 0x58]
shr edx, 0xb
shr ebx, 0xb
imul edx, ebx
sar edx, 5
sub edx, ebx
mov bx, word [esp + 0x5c]
shl ax, 5
shr bx, 0xb
add bx, word [ebp + edx*4]
mov edx, dword [esp + 0x60]
shl bx, 0xb
or ax, bx
mov word [esp + 0xdc], ax
mov eax, dword [esp + 0x58]
and eax, 0x1f
imul eax, edx
sar eax, 5
sub eax, edx
mov edx, dword [esp + 0x5c]
and edx, 0x1f
add dx, word [ebp + eax*4]
mov ax, word [esp + 0xdc]
or ax, dx
mov dx, ax
mov eax, dword [esp + 0x10]
mov word [eax], dx
add eax, 2
add ecx, 1
sub esi, 1
mov dword [esp + 0x10], eax
je 0x5bceec
cmp ecx, dword [esp + 0x40]
jl 0x5bce20
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5bcf99
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne case.0x5bc480.11
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp case.0x5bc480.11
mov edx, dword [esp + 0x70]
mov eax, edi
imul eax, dword [esp + 0x74]
add eax, dword [esp + 0x78]
cmp ecx, edx
lea eax, [eax + ecx*2]
mov dword [esp + 0x10], eax
jge 0x5bd021
mov ebx, ecx
sub ebx, edx
add esi, ebx
mov ebx, edx
sub ebx, ecx
lea eax, [eax + ebx*2]
mov dword [esp + 0x10], eax
mov ecx, edx
add esi, 1
cmp edi, dword [esp + 0x68]
jl 0x5bd105
cmp edi, dword [esp + 0x6c]
jge 0x5bd105
cmp ecx, dword [esp + 0x40]
jge 0x5bd105
test esi, esi
jle 0x5bd105
lea ebx, [ebx]
movzx eax, word [eax]
mov edx, dword [esp + 0x110]
mov dword [esp + 0x5c], eax
movzx eax, ax
mov dword [esp + 0x50], eax
shr eax, 5
not edx
movzx edx, dx
and eax, 0x3f
mov ebx, edx
shr ebx, 5
and ebx, 0x3f
sub ebx, eax
mov eax, dword [esp + 0x5c]
shr eax, 5
and eax, 0x3f
add ax, word [ebp + ebx*4]
mov ebx, dword [esp + 0x50]
shr ebx, 0xb
mov dword [esp + 0x58], edx
shr edx, 0xb
sub edx, ebx
movzx ebx, word [esp + 0x5c]
shr bx, 0xb
add bx, word [ebp + edx*4]
mov edx, dword [esp + 0x58]
shl ax, 5
shl bx, 0xb
or ax, bx
mov word [esp + 0xdc], ax
mov eax, dword [esp + 0x50]
movzx ebx, word [esp + 0xdc]
and eax, 0x1f
and edx, 0x1f
sub edx, eax
mov eax, dword [esp + 0x5c]
and eax, 0x1f
add ax, word [ebp + edx*4]
add ecx, 1
or bx, ax
mov eax, dword [esp + 0x10]
mov word [eax], bx
add eax, 2
sub esi, 1
mov dword [esp + 0x10], eax
je 0x5bd105
cmp ecx, dword [esp + 0x40]
jl 0x5bd050
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov ecx, eax
mov eax, esi
cdq
and edx, 0x3ffff
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x28]
sar ebx, 0x12
mov dword [esp + 0x20], esi
sar ecx, 0x12
mov esi, ebx
sub eax, 1
sub esi, ecx
add edi, 1
test eax, eax
mov dword [esp + 0x28], eax
jne 0x5bd1b2
mov eax, 1
cmp dword [esp + 0x30], eax
je case.0x5bc480.5
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x24], eax
cdq
and edx, 0x3ffff
add eax, edx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
cdq
and edx, 0x3ffff
add eax, edx
mov edx, dword [esp + 0x64]
mov edi, eax
sar ecx, 0x12
sar edi, 0x12
sub ebx, ecx
mov dword [esp + 0x28], edx
mov esi, ebx
cmp dword [esp + 0x18], 0
jne case.0x5bc480.10
mov eax, 1
cmp dword [esp + 0x34], eax
je case.0x5bc480.5
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cdq
and edx, 0x3ffff
add eax, edx
mov esi, eax
sar esi, 0x12
sub esi, ecx
jmp case.0x5bc480.10
fstp st(1)
fstp st(2)
fstp st(2)
pop edi
fstp st(0)
pop ebp
fstp st(0)
pop ebx
pop esi
add esp, 0x114
ret
fstp st(0)
fstp st(1)
fstp st(1)
fstp st(0)
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x114
ret