Function at 0x4fe1e8
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff2ec
push ebx
push esi
push edi
mov ebx, dword [ebp + 0x14]
mov byte [ebp - 0x39], 0
cmp dword [ebp + 0x2c], 1
jne 0x4fec51
fld dword [ebx + 8]
fcomp dword [0x563208]
fnstsw ax
sahf
setb dl
and edx, 1
mov dword [ebp - 0xce4], edx
mov dword [ebp - 0x1d0], edx
fld dword [ebx + 0x24]
fcomp dword [0x563208]
fnstsw ax
sahf
setb cl
and ecx, 1
mov dword [ebp - 0xce0], ecx
add dword [ebp - 0x1d0], ecx
fld dword [ebx + 0x40]
fcomp dword [0x563208]
fnstsw ax
sahf
setb dl
and edx, 1
mov dword [ebp - 0xcdc], edx
add dword [ebp - 0x1d0], edx
fld dword [ebx + 8]
fcomp dword [0x56320c]
fnstsw ax
sahf
seta cl
and ecx, 1
mov dword [ebp - 0xcd8], ecx
add dword [ebp - 0x1d0], ecx
fld dword [ebx + 0x24]
fcomp dword [0x56320c]
fnstsw ax
sahf
seta dl
and edx, 1
mov dword [ebp - 0xcd4], edx
add dword [ebp - 0x1d0], edx
fld dword [ebx + 0x40]
fcomp dword [0x56320c]
fnstsw ax
sahf
seta cl
and ecx, 1
mov dword [ebp - 0xcd0], ecx
add dword [ebp - 0x1d0], ecx
cmp dword [ebp - 0x1d0], 3
jge 0x563201
cmp dword [ebp - 0x1d0], 0
je 0x4fec51
mov dword [ebp - 0x1a8], 3
mov dword [ebp - 0x1ac], 3
mov dword [ebp - 0x1b0], 1
lea eax, [ebp - 0xc74]
mov esi, ebx
mov edi, eax
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0x1c]
lea edi, [ebp - 0xc58]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0x38]
lea edi, [ebp - 0xc3c]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
fld dword [0x56320c]
fdiv dword [ebp - 0xc68]
fstp dword [ebp - 0xc68]
lea eax, [ebp - 0xc74]
fld dword [ebp - 0xc68]
fmul dword [eax]
fstp dword [eax]
fld dword [ebp - 0xc68]
fmul dword [ebp - 0xc70]
fstp dword [ebp - 0xc70]
fld dword [ebp - 0xc68]
fmul dword [ebp - 0xc6c]
fstp dword [ebp - 0xc6c]
fld dword [0x56320c]
fdiv dword [ebp - 0xc4c]
fstp dword [ebp - 0xc4c]
lea edx, [ebp - 0xc58]
fld dword [ebp - 0xc4c]
fmul dword [edx]
fstp dword [edx]
fld dword [ebp - 0xc4c]
fmul dword [ebp - 0xc54]
fstp dword [ebp - 0xc54]
fld dword [ebp - 0xc4c]
fmul dword [ebp - 0xc50]
fstp dword [ebp - 0xc50]
fld dword [0x56320c]
fdiv dword [ebp - 0xc30]
fstp dword [ebp - 0xc30]
lea ecx, [ebp - 0xc3c]
xor eax, eax
fld dword [ebp - 0xc30]
fmul dword [ecx]
fstp dword [ecx]
fld dword [ebp - 0xc30]
fmul dword [ebp - 0xc38]
fstp dword [ebp - 0xc38]
fld dword [ebp - 0xc30]
fmul dword [ebp - 0xc34]
fstp dword [ebp - 0xc34]
mov dword [ebp - 0x1c4], eax
mov edx, dword [ebp - 0x1b0]
lea eax, [ebp - 0xc74]
mov ecx, edx
lea edx, [ecx + edx*2]
shl edx, 4
add edx, ecx
shl edx, 2
add edx, eax
lea eax, [ebp - 0xc74]
mov dword [ebp - 0x1b8], edx
xor dword [ebp - 0x1b0], 1
mov edx, dword [ebp - 0x1b0]
mov ecx, edx
lea edx, [ecx + edx*2]
shl edx, 4
add edx, ecx
shl edx, 2
add edx, eax
mov dword [ebp - 0x1b4], edx
mov edx, dword [ebp - 0x1a8]
mov eax, dword [ebp - 0x1b4]
mov ecx, edx
shl edx, 3
sub edx, ecx
mov ecx, dword [ebp - 0x1b4]
mov esi, ecx
mov ecx, 7
lea edi, [eax + edx*4]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x1ac]
xor edx, edx
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x1ac], edx
mov ecx, dword [ebp - 0x1c4]
sub ecx, 1
jb 0x4fe494
je 0x4fe7c6
jmp 0x4feac3
mov eax, dword [ebp - 0x1b4]
mov edx, dword [ebp - 0x1b4]
fld dword [eax + 8]
fcomp dword [edx + 0xc]
fnstsw ax
sahf
seta dl
and edx, 1
xor ecx, ecx
mov dword [ebp - 0xce4], edx
mov dword [ebp - 0x1c8], ecx
mov eax, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x1b8]
mov edx, eax
shl eax, 3
sub eax, edx
lea edx, [ebp - 0xce0]
lea eax, [ecx + eax*4]
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x278], edx
mov ecx, dword [ebp - 0x1c8]
cmp ecx, dword [ebp - 0x1a8]
jge 0x4feac3
mov eax, dword [ebp - 0x1b4]
mov edx, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x278]
fld dword [eax + 0x24]
fcomp dword [edx + 0x28]
fnstsw ax
sahf
seta dl
and edx, 1
mov dword [ecx], edx
mov eax, dword [ebp - 0x278]
cmp dword [eax - 4], 1
jne 0x4fe535
mov edx, dword [ebp - 0x278]
cmp dword [edx], 1
je 0x4fe79b
mov ecx, dword [ebp - 0x278]
cmp dword [ecx - 4], 0
jne 0x4fe575
mov eax, dword [ebp - 0x278]
cmp dword [eax], 0
jne 0x4fe575
mov edx, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x27c]
mov esi, edx
mov edi, ecx
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
inc dword [ebp - 0x1ac]
add dword [ebp - 0x27c], 0x1c
jmp 0x4fe79b
mov eax, dword [ebp - 0x278]
cmp dword [eax - 4], 0
jne 0x4fe5bc
mov edx, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x27c]
mov esi, edx
mov edi, ecx
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
inc dword [ebp - 0x1ac]
add dword [ebp - 0x27c], 0x1c
mov ebx, dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x1b4]
add eax, 0x1c
mov dword [ebp - 0x1cc], eax
jmp 0x4fe5d1
mov ebx, dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x1b4]
mov dword [ebp - 0x1cc], eax
add ebx, 0x1c
fld dword [ebx + 8]
fdiv dword [ebx + 0xc]
fsubr dword [0x56320c]
mov edx, dword [ebp - 0x1cc]
mov ecx, dword [ebp - 0x1cc]
fld dword [edx + 8]
fdiv dword [ecx + 0xc]
fld dword [ebx + 8]
fdiv dword [ebx + 0xc]
fsubp st(1)
fdivp st(1)
fstp dword [ebp - 0x1bc]
fld dword [ebp - 0x1bc]
fmul dword [0x563210]
add esp, 0xfffffffc
fstp dword [esp]
call fcn.0045eb90
pop ecx
and eax, 0xff
mov dword [ebp - 0x1c0], eax
mov edx, dword [ebp - 0x1cc]
mov ecx, dword [ebp - 0x27c]
fld dword [edx]
fsub dword [ebx]
fmul dword [ebp - 0x1bc]
fadd dword [ebx]
fstp dword [ecx]
mov eax, dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x27c]
fld dword [eax + 4]
fsub dword [ebx + 4]
fmul dword [ebp - 0x1bc]
fadd dword [ebx + 4]
fstp dword [edx + 4]
mov ecx, dword [ebp - 0x1cc]
mov eax, dword [ebp - 0x27c]
fld dword [ecx + 8]
fsub dword [ebx + 8]
fmul dword [ebp - 0x1bc]
fadd dword [ebx + 8]
fstp dword [eax + 8]
mov edx, dword [ebp - 0x1cc]
mov ecx, dword [ebp - 0x27c]
fld dword [edx + 0x14]
fsub dword [ebx + 0x14]
fmul dword [ebp - 0x1bc]
fadd dword [ebx + 0x14]
fstp dword [ecx + 0x14]
mov eax, dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x27c]
fld dword [eax + 0x18]
fsub dword [ebx + 0x18]
fmul dword [ebp - 0x1bc]
fadd dword [ebx + 0x18]
fstp dword [edx + 0x18]
mov ecx, dword [ebp - 0x1cc]
mov eax, dword [ebp - 0x27c]
fld dword [ecx + 0xc]
fsub dword [ebx + 0xc]
xor ecx, ecx
fmul dword [ebp - 0x1bc]
fadd dword [ebx + 0xc]
fstp dword [eax + 0xc]
mov edx, dword [ebp - 0x1cc]
xor eax, eax
mov al, byte [ebx + 0x10]
mov cl, byte [edx + 0x10]
sub ecx, eax
xor edx, edx
imul ecx, dword [ebp - 0x1c0]
mov dl, byte [ebx + 0x10]
mov eax, dword [ebp - 0x27c]
shl edx, 8
add ecx, edx
sar ecx, 8
mov byte [eax + 0x10], cl
xor eax, eax
mov edx, dword [ebp - 0x1cc]
xor ecx, ecx
mov al, byte [ebx + 0x11]
mov cl, byte [edx + 0x10]
sub ecx, eax
xor edx, edx
imul ecx, dword [ebp - 0x1c0]
mov dl, byte [ebx + 0x11]
mov eax, dword [ebp - 0x27c]
shl edx, 8
add ecx, edx
sar ecx, 8
mov byte [eax + 0x11], cl
xor eax, eax
mov edx, dword [ebp - 0x1cc]
xor ecx, ecx
mov al, byte [ebx + 0x12]
mov cl, byte [edx + 0x10]
sub ecx, eax
xor edx, edx
imul ecx, dword [ebp - 0x1c0]
mov dl, byte [ebx + 0x12]
mov eax, dword [ebp - 0x27c]
shl edx, 8
add ecx, edx
sar ecx, 8
mov byte [eax + 0x12], cl
xor eax, eax
mov edx, dword [ebp - 0x1cc]
xor ecx, ecx
mov al, byte [ebx + 0x13]
mov cl, byte [edx + 0x10]
sub ecx, eax
xor edx, edx
imul ecx, dword [ebp - 0x1c0]
mov dl, byte [ebx + 0x13]
mov eax, dword [ebp - 0x27c]
shl edx, 8
add ecx, edx
sar ecx, 8
mov byte [eax + 0x13], cl
inc dword [ebp - 0x1ac]
add dword [ebp - 0x27c], 0x1c
add dword [ebp - 0x278], 4
inc dword [ebp - 0x1c8]
add dword [ebp - 0x1b4], 0x1c
mov edx, dword [ebp - 0x1c8]
cmp edx, dword [ebp - 0x1a8]
jl 0x4fe4f7
jmp 0x4feac3
mov ecx, dword [ebp - 0x1b4]
fld dword [ecx + 8]
fcomp dword [0x563208]
fnstsw ax
sahf
setb dl
and edx, 1
xor ecx, ecx
mov dword [ebp - 0xce4], edx
mov dword [ebp - 0x1c8], ecx
mov eax, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x1b8]
mov edx, eax
shl eax, 3
sub eax, edx
lea edx, [ebp - 0xce0]
lea eax, [ecx + eax*4]
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x27c], edx
mov ecx, dword [ebp - 0x1c8]
cmp ecx, dword [ebp - 0x1a8]
jge 0x4feac3
mov eax, dword [ebp - 0x1b4]
fld dword [eax + 0x24]
fcomp dword [0x563208]
fnstsw ax
sahf
setb dl
and edx, 1
mov ecx, dword [ebp - 0x27c]
mov dword [ecx], edx
mov eax, dword [ebp - 0x27c]
cmp dword [eax - 4], 1
jne 0x4fe861
mov edx, dword [ebp - 0x27c]
cmp dword [edx], 1
je 0x4fea9d
mov ecx, dword [ebp - 0x27c]
cmp dword [ecx - 4], 0
jne 0x4fe8a1
mov eax, dword [ebp - 0x27c]
cmp dword [eax], 0
jne 0x4fe8a1
mov edx, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x278]
mov esi, edx
mov edi, ecx
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
inc dword [ebp - 0x1ac]
add dword [ebp - 0x278], 0x1c
jmp 0x4fea9d
mov eax, dword [ebp - 0x27c]
cmp dword [eax - 4], 0
jne 0x4fe8e8
mov edx, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x278]
mov esi, edx
mov edi, ecx
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
inc dword [ebp - 0x1ac]
add dword [ebp - 0x278], 0x1c
mov ebx, dword [ebp - 0x1b4]
add ebx, 0x1c
mov eax, dword [ebp - 0x1b4]
mov dword [ebp - 0x1cc], eax
jmp 0x4fe8fd
mov ebx, dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x1b4]
add eax, 0x1c
mov dword [ebp - 0x1cc], eax
fld dword [ebx + 8]
mov edx, dword [ebp - 0x1cc]
fchs
fld dword [edx + 8]
fsub dword [ebx + 8]
fdivp st(1)
fstp dword [ebp - 0x1bc]
fld dword [ebp - 0x1bc]
fmul dword [0x563210]
add esp, 0xfffffffc
fstp dword [esp]
call fcn.0045eb90
pop ecx
xor ecx, ecx
mov cl, al
mov dword [ebp - 0x1c0], ecx
mov eax, dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x278]
fld dword [eax]
fsub dword [ebx]
fmul dword [ebp - 0x1bc]
fadd dword [ebx]
fstp dword [edx]
mov ecx, dword [ebp - 0x1cc]
mov eax, dword [ebp - 0x278]
fld dword [ecx + 4]
fsub dword [ebx + 4]
xor ecx, ecx
fmul dword [ebp - 0x1bc]
fadd dword [ebx + 4]
fstp dword [eax + 4]
mov edx, dword [ebp - 0x278]
mov dword [edx + 8], ecx
mov eax, dword [ebp - 0x1cc]
mov edx, dword [ebp - 0x278]
fld dword [eax + 0x14]
fsub dword [ebx + 0x14]
fmul dword [ebp - 0x1bc]
fadd dword [ebx + 0x14]
fstp dword [edx + 0x14]
mov ecx, dword [ebp - 0x1cc]
mov eax, dword [ebp - 0x278]
fld dword [ecx + 0x18]
fsub dword [ebx + 0x18]
fmul dword [ebp - 0x1bc]
fadd dword [ebx + 0x18]
fstp dword [eax + 0x18]
mov edx, dword [ebp - 0x1cc]
mov ecx, dword [ebp - 0x278]
fld dword [edx + 0xc]
fsub dword [ebx + 0xc]
xor edx, edx
fmul dword [ebp - 0x1bc]
fadd dword [ebx + 0xc]
fstp dword [ecx + 0xc]
mov eax, dword [ebp - 0x1cc]
xor ecx, ecx
mov cl, byte [ebx + 0x10]
mov dl, byte [eax + 0x10]
sub edx, ecx
xor eax, eax
imul edx, dword [ebp - 0x1c0]
mov al, byte [ebx + 0x10]
mov ecx, dword [ebp - 0x278]
shl eax, 8
add edx, eax
xor eax, eax
sar edx, 8
mov byte [ecx + 0x10], dl
xor ecx, ecx
mov edx, dword [ebp - 0x1cc]
mov cl, byte [ebx + 0x11]
shl ecx, 8
mov al, byte [edx + 0x11]
xor edx, edx
mov dl, byte [ebx + 0x11]
sub eax, edx
imul dword [ebp - 0x1c0]
add eax, ecx
mov edx, dword [ebp - 0x278]
sar eax, 8
xor ecx, ecx
mov byte [edx + 0x11], al
xor edx, edx
mov eax, dword [ebp - 0x1cc]
mov dl, byte [ebx + 0x12]
shl edx, 8
mov cl, byte [eax + 0x12]
xor eax, eax
mov al, byte [ebx + 0x12]
sub ecx, eax
mov eax, dword [ebp - 0x278]
imul ecx, dword [ebp - 0x1c0]
add ecx, edx
sar ecx, 8
mov byte [eax + 0x12], cl
xor eax, eax
mov edx, dword [ebp - 0x1cc]
xor ecx, ecx
mov al, byte [ebx + 0x13]
mov cl, byte [edx + 0x13]
sub ecx, eax
xor edx, edx
imul ecx, dword [ebp - 0x1c0]
mov dl, byte [ebx + 0x13]
mov eax, dword [ebp - 0x278]
shl edx, 8
add ecx, edx
sar ecx, 8
mov byte [eax + 0x13], cl
inc dword [ebp - 0x1ac]
add dword [ebp - 0x278], 0x1c
add dword [ebp - 0x27c], 4
inc dword [ebp - 0x1c8]
add dword [ebp - 0x1b4], 0x1c
mov edx, dword [ebp - 0x1c8]
cmp edx, dword [ebp - 0x1a8]
jl 0x4fe826
inc dword [ebp - 0x1c4]
cmp dword [ebp - 0x1c4], 2
jl 0x4fe3fc
xor ecx, ecx
mov dword [ebp - 0x1c8], ecx
mov eax, dword [ebp - 0x1b8]
lea edx, [eax + 0xc]
mov dword [ebp - 0x278], edx
mov ecx, dword [ebp - 0x1c8]
cmp ecx, dword [ebp - 0x1ac]
jge 0x4feb68
fld dword [0x56320c]
mov eax, dword [ebp - 0x278]
mov edx, dword [ebp - 0x278]
fdiv dword [eax]
fstp dword [edx]
mov ecx, dword [ebp - 0x278]
mov eax, dword [ebp - 0x278]
fld dword [ecx]
fmul dword [eax - 0xc]
fstp dword [eax - 0xc]
mov edx, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x278]
fld dword [edx]
fmul dword [ecx - 8]
fstp dword [ecx - 8]
mov eax, dword [ebp - 0x278]
mov edx, dword [ebp - 0x278]
fld dword [eax]
fmul dword [edx - 4]
fstp dword [edx - 4]
inc dword [ebp - 0x1c8]
add dword [ebp - 0x278], 0x1c
mov ecx, dword [ebp - 0x1c8]
cmp ecx, dword [ebp - 0x1ac]
jl 0x4feafb
push 1
push 1
push 0
mov eax, dword [ebp + 0x24]
push eax
mov edx, dword [ebp + 0x1c]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
mov eax, dword [ebp - 0x1b8]
push eax
mov edx, dword [ebp + 0x10]
push edx
mov ecx, dword [ebp + 0xc]
push ecx
mov eax, dword [ebp + 8]
push eax
call fcn.004fe1e8
mov dword [ebp - 0x1c8], 3
mov edx, dword [ebp - 0x1b8]
add esp, 0x28
lea ecx, [edx + 0x54]
mov dword [ebp - 0x278], ecx
mov eax, dword [ebp - 0x1c8]
cmp eax, dword [ebp - 0x1ac]
jge 0x563201
mov edx, dword [ebp - 0x278]
lea edi, [ebp - 0xcc8]
mov esi, edx
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x1b8]
lea edi, [ebp - 0xcac]
mov esi, eax
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x278]
lea edi, [ebp - 0xc90]
mov ecx, 7
lea esi, [eax - 0x1c]
rep movsd dword es:[edi], dword [esi]
push 1
push 1
push 0
mov eax, dword [ebp + 0x24]
push eax
lea eax, [ebp - 0xcc8]
mov edx, dword [ebp + 0x1c]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
push eax
mov edx, dword [ebp + 0x10]
push edx
mov ecx, dword [ebp + 0xc]
push ecx
mov eax, dword [ebp + 8]
push eax
call fcn.004fe1e8
add esp, 0x28
inc dword [ebp - 0x1c8]
add dword [ebp - 0x278], 0x1c
mov edx, dword [ebp - 0x1c8]
cmp edx, dword [ebp - 0x1ac]
jl 0x4febc0
jmp 0x563201
cmp dword [ebp + 0xc], 0
je 0x4fec7b
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 4]
jne 0x563201
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov eax, dword [ecx + 8]
cmp eax, dword [edx + 8]
jne 0x563201
cmp dword [ebp + 0x10], 0
jne 0x4fece1
mov byte [ebp - 0x39], 1
push 0x84c
push 0
lea ecx, [ebp - 0xac8]
push ecx
call fcn.0045ea68
add esp, 0xc
push 0
push 0
push 0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x1c]
push edx
push 0
push 0xffffffffffffffff
push 8
push 8
lea ecx, [ebp - 0xac8]
push ecx
call fcn.004794c8
add esp, 0x24
push 0xffffffffffffffff
push 8
push 8
push 0
push 0
lea eax, [ebp - 0xac8]
push eax
call fcn.005634e8
add esp, 0x18
lea edx, [ebp - 0xac8]
mov dword [ebp + 0x10], edx
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
mov eax, dword [ecx + 0x1c]
cmp eax, dword [edx + 0x1c]
jne 0x563201
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x20], 1
je 0x563201
mov eax, dword [ebp + 8]
cmp dword [eax + 0x28], 1
je 0x563201
xor edx, edx
mov dword [ebp - 0x1e0], edx
mov dword [ebp - 0x1dc], edx
fld dword [ebx]
fcomp dword [ebx + 0x1c]
fnstsw ax
sahf
jbe 0x4fed82
fld dword [ebx + 0x1c]
fcomp dword [ebx + 0x38]
fnstsw ax
sahf
jbe 0x4fed4d
lea edx, [ebx + 0x38]
lea ecx, [ebx + 0x1c]
mov dword [ebp - 0xae0], edx
mov dword [ebp - 0xadc], ecx
mov dword [ebp - 0xad8], ebx
jmp 0x4feddd
lea eax, [ebx + 0x1c]
mov dword [ebp - 0xae0], eax
fld dword [ebx + 0x38]
fcomp dword [ebx]
fnstsw ax
sahf
jbe 0x4fed71
mov dword [ebp - 0xadc], ebx
lea edx, [ebx + 0x38]
mov dword [ebp - 0xad8], edx
jmp 0x4feddd
lea ecx, [ebx + 0x38]
mov dword [ebp - 0xadc], ecx
mov dword [ebp - 0xad8], ebx
jmp 0x4feddd
fld dword [ebx]
fcomp dword [ebx + 0x38]
fnstsw ax
sahf
jbe 0x4feda6
lea edx, [ebx + 0x38]
lea ecx, [ebx + 0x1c]
mov dword [ebp - 0xae0], edx
mov dword [ebp - 0xadc], ebx
mov dword [ebp - 0xad8], ecx
jmp 0x4feddd
mov dword [ebp - 0xae0], ebx
fld dword [ebx + 0x38]
fcomp dword [ebx + 0x1c]
fnstsw ax
sahf
jbe 0x4fedcb
lea edx, [ebx + 0x1c]
mov dword [ebp - 0xadc], edx
lea ecx, [ebx + 0x38]
mov dword [ebp - 0xad8], ecx
jmp 0x4feddd
lea eax, [ebx + 0x38]
lea edx, [ebx + 0x1c]
mov dword [ebp - 0xadc], eax
mov dword [ebp - 0xad8], edx
fld dword [ebx + 4]
fcomp dword [ebx + 0x20]
fnstsw ax
sahf
jbe 0x4fee46
fld dword [ebx + 0x20]
fcomp dword [ebx + 0x3c]
fnstsw ax
sahf
jbe 0x4fee10
lea edx, [ebx + 0x38]
lea ecx, [ebx + 0x1c]
mov dword [ebp - 0xad4], edx
mov dword [ebp - 0xad0], ecx
mov dword [ebp - 0xacc], ebx
jmp 0x4feea2
lea eax, [ebx + 0x1c]
mov dword [ebp - 0xad4], eax
fld dword [ebx + 0x3c]
fcomp dword [ebx + 4]
fnstsw ax
sahf
jbe 0x4fee35
mov dword [ebp - 0xad0], ebx
lea edx, [ebx + 0x38]
mov dword [ebp - 0xacc], edx
jmp 0x4feea2
lea ecx, [ebx + 0x38]
mov dword [ebp - 0xad0], ecx
mov dword [ebp - 0xacc], ebx
jmp 0x4feea2
fld dword [ebx + 4]
fcomp dword [ebx + 0x3c]
fnstsw ax
sahf
jbe 0x4fee6b
lea edx, [ebx + 0x38]
lea ecx, [ebx + 0x1c]
mov dword [ebp - 0xad4], edx
mov dword [ebp - 0xad0], ebx
mov dword [ebp - 0xacc], ecx
jmp 0x4feea2
mov dword [ebp - 0xad4], ebx
fld dword [ebx + 0x3c]
fcomp dword [ebx + 0x20]
fnstsw ax
sahf
jbe 0x4fee90
lea edx, [ebx + 0x1c]
mov dword [ebp - 0xad0], edx
lea ecx, [ebx + 0x38]
mov dword [ebp - 0xacc], ecx
jmp 0x4feea2
lea eax, [ebx + 0x38]
lea edx, [ebx + 0x1c]
mov dword [ebp - 0xad0], eax
mov dword [ebp - 0xacc], edx
fld dword [ebx + 8]
fcomp dword [ebx + 0x24]
fnstsw ax
sahf
jbe 0x4fef0b
fld dword [ebx + 0x24]
fcomp dword [ebx + 0x40]
fnstsw ax
sahf
jbe 0x4feed5
lea edx, [ebx + 0x38]
lea ecx, [ebx + 0x1c]
mov dword [ebp - 0xaec], edx
mov dword [ebp - 0xae8], ecx
mov dword [ebp - 0xae4], ebx
jmp 0x4fef67
lea eax, [ebx + 0x1c]
mov dword [ebp - 0xaec], eax
fld dword [ebx + 0x40]
fcomp dword [ebx + 8]
fnstsw ax
sahf
jbe 0x4feefa
mov dword [ebp - 0xae8], ebx
add ebx, 0x38
mov dword [ebp - 0xae4], ebx
jmp 0x4fef67
lea eax, [ebx + 0x38]
mov dword [ebp - 0xae8], eax
mov dword [ebp - 0xae4], ebx
jmp 0x4fef67
fld dword [ebx + 8]
fcomp dword [ebx + 0x40]
fnstsw ax
sahf
jbe 0x4fef30
lea edx, [ebx + 0x38]
mov dword [ebp - 0xaec], edx
mov dword [ebp - 0xae8], ebx
add ebx, 0x1c
mov dword [ebp - 0xae4], ebx
jmp 0x4fef67
mov dword [ebp - 0xaec], ebx
fld dword [ebx + 0x40]
fcomp dword [ebx + 0x24]
fnstsw ax
sahf
jbe 0x4fef55
lea edx, [ebx + 0x1c]
mov dword [ebp - 0xae8], edx
add ebx, 0x38
mov dword [ebp - 0xae4], ebx
jmp 0x4fef67
lea eax, [ebx + 0x38]
add ebx, 0x1c
mov dword [ebp - 0xae8], eax
mov dword [ebp - 0xae4], ebx
fild dword [0x662b44]
mov eax, dword [ebp - 0xad8]
fcomp dword [eax]
fnstsw ax
sahf
ja case.default.0x545cee
fild dword [0x662b4c]
mov edx, dword [ebp - 0xae0]
fcomp dword [edx]
fnstsw ax
sahf
jbe case.default.0x545cee
fild dword [0x662b48]
mov edx, dword [ebp - 0xacc]
fcomp dword [edx + 4]
fnstsw ax
sahf
ja case.default.0x545cee
fild dword [0x662b50]
mov edx, dword [ebp - 0xad4]
fcomp dword [edx + 4]
fnstsw ax
sahf
jbe case.default.0x545cee
mov edx, dword [ebp - 0xae4]
fld dword [edx + 8]
fcomp dword [0x563208]
fnstsw ax
sahf
jb case.default.0x545cee
mov edx, dword [ebp - 0xaec]
fld dword [edx + 8]
fcomp dword [0x56320c]
fnstsw ax
sahf
jae case.default.0x545cee
mov edx, dword [ebp - 0xacc]
mov ecx, dword [ebp - 0xad4]
fld dword [edx + 4]
fsub dword [ecx + 4]
fcomp dword [0x563214]
fnstsw ax
sahf
jb case.default.0x545cee
mov edx, dword [ebp - 0xad8]
mov ecx, dword [ebp - 0xae0]
fld dword [edx]
fsub dword [ecx]
fcomp dword [0x563214]
fnstsw ax
sahf
jb case.default.0x545cee
mov edx, dword [ebp - 0xad8]
mov ecx, dword [ebp - 0xae0]
fld dword [edx]
fsub dword [ecx]
fstp dword [ebp - 0x1e8]
mov eax, dword [ebp - 0xad8]
mov edx, dword [ebp - 0xae0]
fld dword [eax + 4]
fsub dword [edx + 4]
fstp dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0xadc]
mov eax, dword [ebp - 0xae0]
fld dword [ecx]
fsub dword [eax]
fstp dword [ebp - 0x1f0]
mov edx, dword [ebp - 0xadc]
mov ecx, dword [ebp - 0xae0]
fld dword [edx + 4]
fsub dword [ecx + 4]
fstp dword [ebp - 0x1f4]
mov eax, dword [ebp - 0xad8]
mov edx, dword [ebp - 0xad8]
mov ecx, dword [ebp - 0xae0]
fld dword [eax + 0x14]
fmul dword [edx + 0xc]
mov eax, dword [ebp - 0xae0]
fld dword [ecx + 0x14]
fmul dword [eax + 0xc]
fsubp st(1)
fstp dword [ebp - 0x1f8]
mov edx, dword [ebp - 0xadc]
mov ecx, dword [ebp - 0xadc]
mov eax, dword [ebp - 0xae0]
fld dword [edx + 0x14]
fmul dword [ecx + 0xc]
mov edx, dword [ebp - 0xae0]
fld dword [eax + 0x14]
fmul dword [edx + 0xc]
fsubp st(1)
fstp dword [ebp - 0x1fc]
mov ecx, dword [ebp - 0xad8]
mov eax, dword [ebp - 0xad8]
mov edx, dword [ebp - 0xae0]
fld dword [ecx + 0x18]
fmul dword [eax + 0xc]
mov ecx, dword [ebp - 0xae0]
fld dword [edx + 0x18]
fmul dword [ecx + 0xc]
fsubp st(1)
fstp dword [ebp - 0x200]
mov eax, dword [ebp - 0xadc]
mov edx, dword [ebp - 0xadc]
mov ecx, dword [ebp - 0xae0]
fld dword [eax + 0x18]
fmul dword [edx + 0xc]
mov eax, dword [ebp - 0xae0]
fld dword [ecx + 0x18]
fmul dword [eax + 0xc]
fsubp st(1)
fstp dword [ebp - 0x204]
mov edx, dword [ebp - 0xad8]
mov ecx, dword [ebp - 0xae0]
fld dword [edx + 0xc]
fsub dword [ecx + 0xc]
fstp dword [ebp - 0x208]
mov eax, dword [ebp - 0xadc]
mov edx, dword [ebp - 0xae0]
fld dword [eax + 0xc]
fsub dword [edx + 0xc]
fstp dword [ebp - 0x20c]
mov ecx, dword [ebp - 0xad8]
mov eax, dword [ebp - 0xae0]
fld dword [ecx + 8]
fsub dword [eax + 8]
fstp dword [ebp - 0x210]
mov edx, dword [ebp - 0xadc]
mov ecx, dword [ebp - 0xae0]
fld dword [edx + 8]
fsub dword [ecx + 8]
xor edx, edx
fstp dword [ebp - 0x214]
mov eax, dword [ebp - 0xad8]
mov ecx, dword [ebp - 0xae0]
mov dl, byte [eax + 0x12]
xor eax, eax
mov al, byte [ecx + 0x12]
xor ecx, ecx
sub edx, eax
mov dword [ebp - 0xce8], edx
fild dword [ebp - 0xce8]
fstp dword [ebp - 0x218]
mov edx, dword [ebp - 0xadc]
mov eax, dword [ebp - 0xae0]
mov cl, byte [edx + 0x12]
xor edx, edx
mov dl, byte [eax + 0x12]
xor eax, eax
sub ecx, edx
mov dword [ebp - 0xcec], ecx
fild dword [ebp - 0xcec]
fstp dword [ebp - 0x21c]
mov ecx, dword [ebp - 0xad8]
mov edx, dword [ebp - 0xae0]
mov al, byte [ecx + 0x11]
xor ecx, ecx
mov cl, byte [edx + 0x11]
xor edx, edx
sub eax, ecx
mov dword [ebp - 0xcf0], eax
fild dword [ebp - 0xcf0]
fstp dword [ebp - 0x220]
mov eax, dword [ebp - 0xadc]
mov ecx, dword [ebp - 0xae0]
mov dl, byte [eax + 0x11]
xor eax, eax
mov al, byte [ecx + 0x11]
xor ecx, ecx
sub edx, eax
mov dword [ebp - 0xcf4], edx
fild dword [ebp - 0xcf4]
fstp dword [ebp - 0x224]
mov edx, dword [ebp - 0xad8]
mov eax, dword [ebp - 0xae0]
mov cl, byte [edx + 0x10]
xor edx, edx
mov dl, byte [eax + 0x10]
xor eax, eax
sub ecx, edx
mov dword [ebp - 0xcf8], ecx
fild dword [ebp - 0xcf8]
fstp dword [ebp - 0x228]
mov ecx, dword [ebp - 0xadc]
mov edx, dword [ebp - 0xae0]
mov al, byte [ecx + 0x10]
xor ecx, ecx
mov cl, byte [edx + 0x10]
xor edx, edx
sub eax, ecx
mov dword [ebp - 0xcfc], eax
fild dword [ebp - 0xcfc]
fstp dword [ebp - 0x22c]
mov eax, dword [ebp - 0xad8]
mov ecx, dword [ebp - 0xae0]
mov dl, byte [eax + 0x13]
xor eax, eax
mov al, byte [ecx + 0x13]
xor ecx, ecx
sub edx, eax
mov dword [ebp - 0xd00], edx
fild dword [ebp - 0xd00]
fstp dword [ebp - 0x230]
mov edx, dword [ebp - 0xadc]
mov eax, dword [ebp - 0xae0]
mov cl, byte [edx + 0x13]
xor edx, edx
mov dl, byte [eax + 0x13]
sub ecx, edx
mov dword [ebp - 0xd04], ecx
fild dword [ebp - 0xd04]
fstp dword [ebp - 0x234]
fld dword [ebp - 0x1f0]
fmul dword [ebp - 0x1ec]
fld dword [ebp - 0x1e8]
fmul dword [ebp - 0x1f4]
fsubp st(1)
fstp dword [ebp - 0x1e4]
fld dword [ebp - 0x1e4]
fcomp dword [0x563208]
fnstsw ax
sahf
je case.default.0x545cee
fld dword [0x56320c]
fdiv dword [ebp - 0x1e4]
fstp dword [ebp - 0x1e4]
fld dword [ebp - 0x1fc]
fmul dword [ebp - 0x1ec]
fld dword [ebp - 0x1f8]
fmul dword [ebp - 0x1f4]
fsubp st(1)
fmul dword [ebp - 0x1e4]
fstp dword [ebp - 0x50]
fld dword [ebp - 0x1f8]
fmul dword [ebp - 0x1f0]
fld dword [ebp - 0x1fc]
fmul dword [ebp - 0x1e8]
fsubp st(1)
fmul dword [ebp - 0x1e4]
fstp dword [ebp - 0x54]
fld dword [ebp - 0x204]
fmul dword [ebp - 0x1ec]
fld dword [ebp - 0x200]
fmul dword [ebp - 0x1f4]
fsubp st(1)
fmul dword [ebp - 0x1e4]
fstp dword [ebp - 0x58]
fld dword [ebp - 0x200]
fmul dword [ebp - 0x1f0]
fld dword [ebp - 0x204]
fmul dword [ebp - 0x1e8]
fsubp st(1)
fmul dword [ebp - 0x1e4]
fstp dword [ebp - 0x5c]
fld dword [ebp - 0x20c]
fmul dword [ebp - 0x1ec]
fld dword [ebp - 0x208]
fmul dword [ebp - 0x1f4]
fsubp st(1)
fmul dword [ebp - 0x1e4]
fstp dword [ebp - 0x68]
fld dword [ebp - 0x208]
fmul dword [ebp - 0x1f0]
fld dword [ebp - 0x20c]
fmul dword [ebp - 0x1e8]
fsubp st(1)
fmul dword [ebp - 0x1e4]
fstp dword [ebp - 0x6c]
fld dword [ebp - 0x214]
fmul dword [ebp - 0x1ec]
fld dword [ebp - 0x210]
fmul dword [ebp - 0x1f4]
fsubp st(1)
fmul dword [ebp - 0x1e4]
fstp dword [ebp - 0x74]
fld dword [ebp - 0x210]
fmul dword [ebp - 0x1f0]
fld dword [ebp - 0x214]
fmul dword [ebp - 0x1e8]
fsubp st(1)
fmul dword [ebp - 0x1e4]
fstp dword [ebp - 0x78]
fld dword [ebp - 0x21c]
fmul dword [ebp - 0x1ec]
fld dword [ebp - 0x218]
fmul dword [ebp - 0x1f4]
fsubp st(1)
fmul dword [ebp - 0x1e4]
fstp dword [ebp - 0x80]
fld dword [ebp - 0x218]
fmul dword [ebp - 0x1f0]
fld dword [ebp - 0x21c]
fmul dword [ebp - 0x1e8]
fsubp st(1)
fmul dword [ebp - 0x1e4]
fstp dword [ebp - 0x84]
fld dword [ebp - 0x224]
fmul dword [ebp - 0x1ec]
fld dword [ebp - 0x220]
fmul dword [ebp - 0x1f4]
fsubp st(1)
fmul dword [ebp - 0x1e4]
fstp dword [ebp - 0x88]
fld dword [ebp - 0x220]
fmul dword [ebp - 0x1f0]
fld dword [ebp - 0x224]
fmul dword [ebp - 0x1e8]
fsubp st(1)
fmul dword [ebp - 0x1e4]
fstp dword [ebp - 0x8c]
fld dword [ebp - 0x22c]
fmul dword [ebp - 0x1ec]
fld dword [ebp - 0x228]
fmul dword [ebp - 0x1f4]
fsubp st(1)
fmul dword [ebp - 0x1e4]
fstp dword [ebp - 0x90]
fld dword [ebp - 0x228]
fmul dword [ebp - 0x1f0]
fld dword [ebp - 0x22c]
fmul dword [ebp - 0x1e8]
fsubp st(1)
fmul dword [ebp - 0x1e4]
fstp dword [ebp - 0x94]
fld dword [ebp - 0x234]
fmul dword [ebp - 0x1ec]
fld dword [ebp - 0x230]
fmul dword [ebp - 0x1f4]
fsubp st(1)
fmul dword [ebp - 0x1e4]
fstp dword [ebp - 0x98]
fld dword [ebp - 0x230]
fmul dword [ebp - 0x1f0]
fld dword [ebp - 0x234]
fmul dword [ebp - 0x1e8]
fsubp st(1)
fmul dword [ebp - 0x1e4]
fstp dword [ebp - 0x9c]
mov edx, dword [ebp - 0xae0]
mov ecx, dword [edx]
mov dword [ebp - 0xb0], ecx
mov eax, dword [ebp - 0xae0]
mov edx, dword [eax + 4]
mov dword [ebp - 0xb4], edx
mov ecx, dword [ebp - 0xae0]
mov eax, dword [ebp - 0xae0]
fld dword [ecx + 0x14]
fmul dword [eax + 0xc]
fld dword [ebp - 0x50]
fmul dword [ebp - 0xb0]
fsubp st(1)
fld dword [ebp - 0x54]
fmul dword [ebp - 0xb4]
fsubp st(1)
fstp dword [ebp - 0x60]
mov edx, dword [ebp - 0xae0]
mov ecx, dword [ebp - 0xae0]
fld dword [edx + 0x18]
fmul dword [ecx + 0xc]
fld dword [ebp - 0x58]
fmul dword [ebp - 0xb0]
fsubp st(1)
fld dword [ebp - 0x5c]
fmul dword [ebp - 0xb4]
fsubp st(1)
fstp dword [ebp - 0x64]
fld dword [ebp - 0x68]
fmul dword [ebp - 0xb0]
mov eax, dword [ebp - 0xae0]
fsubr dword [eax + 0xc]
xor eax, eax
fld dword [ebp - 0x6c]
fmul dword [ebp - 0xb4]
fsubp st(1)
fstp dword [ebp - 0x70]
fld dword [ebp - 0x74]
fmul dword [ebp - 0xb0]
mov edx, dword [ebp - 0xae0]
fsubr dword [edx + 8]
fld dword [ebp - 0x78]
fmul dword [ebp - 0xb4]
fsubp st(1)
fstp dword [ebp - 0x7c]
mov ecx, dword [ebp - 0xae0]
mov al, byte [ecx + 0x12]
xor ecx, ecx
mov dword [ebp - 0xd08], eax
fild dword [ebp - 0xd08]
fld dword [ebp - 0x80]
fmul dword [ebp - 0xb0]
fsubp st(1)
fld dword [ebp - 0x84]
fmul dword [ebp - 0xb4]
fsubp st(1)
fstp dword [ebp - 0xa0]
mov edx, dword [ebp - 0xae0]
mov cl, byte [edx + 0x11]
xor edx, edx
mov dword [ebp - 0xd0c], ecx
fild dword [ebp - 0xd0c]
fld dword [ebp - 0x88]
fmul dword [ebp - 0xb0]
fsubp st(1)
fld dword [ebp - 0x8c]
fmul dword [ebp - 0xb4]
fsubp st(1)
fstp dword [ebp - 0xa4]
mov eax, dword [ebp - 0xae0]
mov dl, byte [eax + 0x10]
xor eax, eax
mov dword [ebp - 0xd10], edx
fild dword [ebp - 0xd10]
fld dword [ebp - 0x90]
fmul dword [ebp - 0xb0]
fsubp st(1)
fld dword [ebp - 0x94]
fmul dword [ebp - 0xb4]
fsubp st(1)
fstp dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xae0]
mov al, byte [ecx + 0x13]
mov dword [ebp - 0xd14], eax
fild dword [ebp - 0xd14]
fld dword [ebp - 0x98]
fmul dword [ebp - 0xb0]
fsubp st(1)
fld dword [ebp - 0x9c]
fmul dword [ebp - 0xb4]
fsubp st(1)
fstp dword [ebp - 0xac]
mov edx, dword [ebp - 0xad4]
push dword [edx + 4]
call fcn.0045eb90
mov ebx, eax
mov eax, dword [ebp - 0xad0]
pop ecx
push dword [eax + 4]
call fcn.0045eb90
pop ecx
cmp ebx, eax
jne 0x4ff81a
mov ecx, 1
mov dword [ebp - 0x1e0], ecx
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0xad4]
mov edx, dword [ebp - 0xad0]
fld dword [eax]
fcomp dword [edx]
fnstsw ax
sahf
jbe 0x4ff779
mov edx, dword [ebp - 0xad0]
mov dword [ebp - 0x1d4], edx
mov ecx, dword [ebp - 0xad4]
mov dword [ebp - 0x1d8], ecx
jmp 0x4ff791
mov eax, dword [ebp - 0xad4]
mov dword [ebp - 0x1d4], eax
mov edx, dword [ebp - 0xad0]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0x1d4]
mov eax, dword [ecx]
mov dword [ebp - 0xb8], eax
mov edx, dword [ebp - 0x1d4]
mov ecx, dword [edx + 4]
mov dword [ebp - 0xc0], ecx
mov eax, dword [ebp - 0x1d8]
mov edx, dword [eax]
mov dword [ebp - 0xc8], edx
mov ecx, dword [ebp - 0x1d8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0xd0], eax
mov edx, dword [ebp - 0xacc]
fld dword [edx]
fsub dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xacc]
fld dword [ecx + 4]
fsub dword [ebp - 0xc0]
fdivp st(1)
fstp dword [ebp - 0xd8]
mov eax, dword [ebp - 0xacc]
fld dword [eax]
fsub dword [ebp - 0xc8]
mov edx, dword [ebp - 0xacc]
fld dword [edx + 4]
fsub dword [ebp - 0xd0]
fdivp st(1)
fstp dword [ebp - 0xe0]
jmp 0x4ffafe
mov ecx, dword [ebp - 0xad0]
push dword [ecx + 4]
call fcn.0045eb90
mov ebx, eax
mov eax, dword [ebp - 0xacc]
pop ecx
push dword [eax + 4]
call fcn.0045eb90
pop ecx
cmp ebx, eax
jne 0x4ff912
mov ecx, 1
mov dword [ebp - 0x1e0], ecx
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0xad4]
fld dword [eax]
fst dword [ebp - 0xc8]
fstp dword [ebp - 0xb8]
mov edx, dword [ebp - 0xad4]
fld dword [edx + 4]
fst dword [ebp - 0xd0]
fstp dword [ebp - 0xc0]
mov eax, dword [ebp - 0xad0]
mov edx, dword [ebp - 0xacc]
fld dword [eax]
fcomp dword [edx]
fnstsw ax
sahf
jbe 0x4ff8ab
mov edx, dword [ebp - 0xacc]
mov dword [ebp - 0x1d4], edx
mov ecx, dword [ebp - 0xad0]
mov dword [ebp - 0x1d8], ecx
jmp 0x4ff8c3
mov eax, dword [ebp - 0xad0]
mov dword [ebp - 0x1d4], eax
mov edx, dword [ebp - 0xacc]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0x1d4]
fld dword [ecx]
fsub dword [ebp - 0xb8]
mov eax, dword [ebp - 0x1d4]
fld dword [eax + 4]
fsub dword [ebp - 0xc0]
fdivp st(1)
fstp dword [ebp - 0xd8]
mov edx, dword [ebp - 0x1d8]
fld dword [edx]
fsub dword [ebp - 0xc8]
mov ecx, dword [ebp - 0x1d8]
fld dword [ecx + 4]
fsub dword [ebp - 0xd0]
fdivp st(1)
fstp dword [ebp - 0xe0]
jmp 0x4ffafe
mov eax, dword [ebp - 0xad0]
mov edx, dword [ebp - 0xad4]
mov ecx, dword [ebp - 0xad0]
fld dword [eax]
fsub dword [edx]
mov eax, dword [ebp - 0xad4]
mov edx, dword [ebp - 0xacc]
fld dword [ecx + 4]
fsub dword [eax + 4]
mov ecx, dword [ebp - 0xad4]
mov eax, dword [ebp - 0xacc]
fdivp st(1)
fld dword [edx]
fsub dword [ecx]
mov edx, dword [ebp - 0xad4]
fld dword [eax + 4]
fsub dword [edx + 4]
fdivp st(1)
fcompp
fnstsw ax
sahf
jbe 0x4ffa31
xor edx, edx
mov dword [ebp - 0x1dc], edx
mov dword [ebp - 0x1e0], 1
mov ecx, dword [ebp - 0xad4]
fld dword [ecx]
fst dword [ebp - 0xc8]
fstp dword [ebp - 0xbc]
mov eax, dword [ebp - 0xad4]
fld dword [eax + 4]
fst dword [ebp - 0xd0]
fstp dword [ebp - 0xc4]
mov edx, dword [ebp - 0xad0]
fld dword [edx]
fsub dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xad0]
fld dword [ecx + 4]
fsub dword [ebp - 0xc4]
fdivp st(1)
fstp dword [ebp - 0xdc]
mov eax, dword [ebp - 0xacc]
fld dword [eax]
fsub dword [ebp - 0xc8]
mov edx, dword [ebp - 0xacc]
fld dword [edx + 4]
fsub dword [ebp - 0xd0]
fdivp st(1)
fstp dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xad0]
mov eax, dword [ecx]
mov dword [ebp - 0xb8], eax
mov edx, dword [ebp - 0xad0]
mov ecx, dword [edx + 4]
mov dword [ebp - 0xc0], ecx
mov eax, dword [ebp - 0xacc]
fld dword [eax]
fsub dword [ebp - 0xb8]
mov edx, dword [ebp - 0xacc]
fld dword [edx + 4]
fsub dword [ebp - 0xc0]
fdivp st(1)
fstp dword [ebp - 0xd8]
jmp 0x4ffafe
mov dword [ebp - 0x1dc], 1
xor ecx, ecx
mov dword [ebp - 0x1e0], ecx
mov eax, dword [ebp - 0xad4]
fld dword [eax]
fst dword [ebp - 0xcc]
fstp dword [ebp - 0xb8]
mov edx, dword [ebp - 0xad4]
fld dword [edx + 4]
fst dword [ebp - 0xd4]
fstp dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xad0]
fld dword [ecx]
fsub dword [ebp - 0xcc]
mov eax, dword [ebp - 0xad0]
fld dword [eax + 4]
fsub dword [ebp - 0xd4]
fdivp st(1)
fstp dword [ebp - 0xe4]
mov edx, dword [ebp - 0xacc]
fld dword [edx]
fsub dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xacc]
fld dword [ecx + 4]
fsub dword [ebp - 0xc0]
fdivp st(1)
fstp dword [ebp - 0xd8]
mov eax, dword [ebp - 0xad0]
fld dword [eax]
fadd dword [0x56320c]
fstp dword [ebp - 0xc8]
mov edx, dword [ebp - 0xad0]
mov ecx, dword [edx + 4]
mov dword [ebp - 0xd0], ecx
mov eax, dword [ebp - 0xacc]
fld dword [eax]
fsub dword [ebp - 0xc8]
mov edx, dword [ebp - 0xacc]
fld dword [edx + 4]
fsub dword [ebp - 0xd0]
fdivp st(1)
fstp dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xad4]
fld dword [ecx + 4]
fmul dword [0x563218]
add esp, 0xfffffffc
fstp dword [esp]
call fcn.0045eb90
pop ecx
add eax, 0x20000
test eax, eax
jns 0x4ffb27
add eax, 0x3ffff
sar eax, 0x12
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xacc]
fld dword [eax + 4]
fmul dword [0x563218]
add esp, 0xfffffffc
fstp dword [esp]
call fcn.0045eb90
pop ecx
mov dword [ebp - 0x24c], eax
mov edx, dword [0x662b48]
cmp edx, dword [ebp - 0xe8]
jle 0x4ffb6b
mov ecx, dword [0x662b48]
mov dword [ebp - 0xe8], ecx
mov eax, dword [0x662b50]
shl eax, 0x12
cmp eax, dword [ebp - 0x24c]
jge 0x4ffb8a
mov edx, dword [0x662b50]
shl edx, 0x12
mov dword [ebp - 0x24c], edx
mov ecx, dword [ebp - 0xe8]
shl ecx, 0x12
add ecx, 0x20000
mov dword [ebp - 0x238], ecx
fild dword [ebp - 0xe8]
fadd dword [0x56321c]
mov eax, dword [ebp - 0x1dc]
fsub dword [ebp + eax*4 - 0xc4]
mov edx, dword [ebp - 0x1dc]
fmul dword [ebp + edx*4 - 0xdc]
mov ecx, dword [ebp - 0x1dc]
fadd dword [ebp + ecx*4 - 0xbc]
fmul dword [0x563218]
add esp, 0xfffffffc
fstp dword [esp]
call fcn.0045eb90
pop ecx
mov dword [ebp - 0x23c], eax
fild dword [ebp - 0xe8]
fadd dword [0x56321c]
mov eax, dword [ebp - 0x1dc]
fsub dword [ebp + eax*4 - 0xc4]
mov edx, dword [ebp - 0x1e0]
fmul dword [ebp + edx*4 - 0xe4]
mov ecx, dword [ebp - 0x1e0]
fadd dword [ebp + ecx*4 - 0xcc]
fmul dword [0x563218]
add esp, 0xfffffffc
fstp dword [esp]
call fcn.0045eb90
pop ecx
mov dword [ebp - 0x240], eax
mov eax, dword [ebp - 0x1dc]
fld dword [ebp + eax*4 - 0xdc]
fmul dword [0x563218]
add esp, 0xfffffffc
fstp dword [esp]
call fcn.0045eb90
pop ecx
mov dword [ebp - 0x244], eax
mov edx, dword [ebp - 0x1e0]
fld dword [ebp + edx*4 - 0xe4]
fmul dword [0x563218]
add esp, 0xfffffffc
fstp dword [esp]
call fcn.0045eb90
pop ecx
mov dword [ebp - 0x248], eax
cmp dword [ebp - 0x1dc], 0
jne 0x4ffca2
fld dword [ebp - 0xc0]
fmul dword [0x563218]
add esp, 0xfffffffc
fstp dword [esp]
call fcn.0045eb90
pop ecx
jmp 0x4ffca7
mov eax, 0x40000000
mov dword [ebp - 0x250], eax
cmp dword [ebp - 0x1e0], 0
jne 0x4ffcd0
fld dword [ebp - 0xd0]
fmul dword [0x563218]
add esp, 0xfffffffc
fstp dword [esp]
call fcn.0045eb90
pop ecx
jmp 0x4ffcd5
mov eax, 0x40000000
mov dword [ebp - 0x254], eax
xor edx, edx
mov dword [ebp - 0xec], edx
mov dword [ebp - 0x278], 0x637c54
mov ecx, dword [ebp - 0x24c]
cmp ecx, dword [ebp - 0x238]
jle 0x4ffef0
mov eax, dword [ebp - 0x23c]
add eax, 0x20000
test eax, eax
jns 0x4ffd13
add eax, 0x3ffff
sar eax, 0x12
mov edx, dword [ebp - 0x278]
mov word [edx], ax
mov ecx, dword [ebp - 0x240]
add ecx, 0xfffe0000
test ecx, ecx
jns 0x4ffd35
add ecx, 0x3ffff
mov eax, dword [ebp - 0x278]
mov edx, dword [ebp - 0x278]
sar ecx, 0x12
sub cx, word [eax]
inc ecx
mov word [edx + 2], cx
mov ecx, dword [ebp - 0x278]
movsx eax, word [ecx]
cmp eax, dword [0x662b44]
jge 0x4ffd87
mov cx, word [0x662b44]
mov edx, dword [ebp - 0x278]
mov eax, dword [ebp - 0x278]
sub cx, word [edx]
sub word [eax + 2], cx
mov cx, word [0x662b44]
mov edx, dword [ebp - 0x278]
mov word [edx], cx
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x278]
movsx edx, word [eax]
movsx eax, word [ecx + 2]
add edx, eax
cmp edx, dword [0x662b4c]
jle 0x4ffdbe
mov cx, word [0x662b4c]
mov edx, dword [ebp - 0x278]
mov eax, dword [ebp - 0x278]
sub cx, word [edx]
mov word [eax + 2], cx
mov edx, dword [ebp - 0x278]
cmp word [edx + 2], 0
jg 0x4ffdd7
mov ecx, dword [ebp - 0x278]
mov word [ecx + 2], 0
inc dword [ebp - 0xec]
add dword [ebp - 0x278], 4
mov eax, dword [ebp - 0x248]
add dword [ebp - 0x240], eax
mov edx, dword [ebp - 0x244]
add dword [ebp - 0x23c], edx
add dword [ebp - 0x238], 0x40000
mov ecx, dword [ebp - 0x250]
cmp ecx, dword [ebp - 0x238]
jg 0x4ffe72
fild dword [ebp - 0x238]
fmul dword [0x563220]
fsub dword [ebp - 0xc0]
fmul dword [ebp - 0xd8]
fadd dword [ebp - 0xb8]
fmul dword [0x563218]
add esp, 0xfffffffc
fstp dword [esp]
call fcn.0045eb90
pop ecx
mov dword [ebp - 0x23c], eax
fld dword [ebp - 0xd8]
fmul dword [0x563218]
add esp, 0xfffffffc
fstp dword [esp]
call fcn.0045eb90
pop ecx
mov dword [ebp - 0x244], eax
mov dword [ebp - 0x250], 0x40000000
mov eax, dword [ebp - 0x254]
cmp eax, dword [ebp - 0x238]
jg 0x4ffede
fild dword [ebp - 0x238]
fmul dword [0x563220]
fsub dword [ebp - 0xd0]
fmul dword [ebp - 0xe0]
fadd dword [ebp - 0xc8]
fmul dword [0x563218]
add esp, 0xfffffffc
fstp dword [esp]
call fcn.0045eb90
pop ecx
mov dword [ebp - 0x240], eax
fld dword [ebp - 0xe0]
fmul dword [0x563218]
add esp, 0xfffffffc
fstp dword [esp]
call fcn.0045eb90
pop ecx
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x254], 0x40000000
mov edx, dword [ebp - 0x24c]
cmp edx, dword [ebp - 0x238]
jg 0x4ffcff
cmp dword [ebp + 0x10], 0
je 0x4fff0e
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x840]
mov dword [ebp - 0x258], eax
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x840]
mov dword [ebp - 0x25c], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x2c], eax
cmp dword [ebp + 0xc], 0
je 0x4fff44
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x840]
mov dword [ebp - 0x260], ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x34], edx
cmp dword [ebp + 0x1c], 0
je 0x4fff62
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ecx + 0x840]
mov dword [ebp - 0x1a4], eax
mov edx, dword [ebp + 0x1c]
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 0x38]
mov dword [ebp - 0x264], edx
mov edx, dword [0x662b88]
mov ecx, dword [ebp + 0x10]
shl edx, 0xa
add edx, 0x82fb38
mov eax, dword [ecx + 0x18]
mov ecx, dword [0x662b88]
mov dword [ebp - 0x38], eax
shl ecx, 0xb
mov dword [ebp - 4], edx
add ecx, 0x86ff38
xor eax, eax
mov dword [ebp - 8], ecx
mov al, byte [0x662b9a]
xor edx, edx
xor ecx, ecx
mov dl, byte [0x662b99]
mov cl, byte [0x662b98]
shl eax, 0xa
shl edx, 0xa
add eax, 0x82fb38
shl ecx, 0xa
mov dword [ebp - 0x1c], eax
add edx, 0x82fb38
add ecx, 0x82fb38
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x24], ecx
mov eax, dword [0x662b4c]
mov edx, dword [0x662b44]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], edx
mov ecx, dword [0x662b50]
mov eax, dword [0x662b48]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x4c], eax
fld dword [ebp - 0x68]
fmul dword [0x563224]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x100], eax
fld dword [ebp - 0x6c]
fmul dword [0x563224]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x104], eax
fld dword [ebp - 0x70]
fmul dword [0x563224]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x108], eax
fld dword [ebp - 0x50]
fmul dword [0x563224]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x118], eax
fld dword [ebp - 0x54]
fmul dword [0x563224]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x11c], eax
fld dword [ebp - 0x60]
fmul dword [0x563224]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x120], eax
fld dword [ebp - 0x58]
fmul dword [0x563224]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x12c], eax
fld dword [ebp - 0x5c]
fmul dword [0x563224]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x130], eax
fld dword [ebp - 0x64]
fmul dword [0x563224]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x134], eax
fld dword [ebp - 0x74]
fmul dword [0x563228]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x140], eax
fld dword [ebp - 0x78]
fmul dword [0x563228]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x144], eax
fld dword [ebp - 0x7c]
fmul dword [0x563228]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x148], eax
fld dword [ebp - 0x80]
fmul dword [0x56322c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x154], eax
fld dword [ebp - 0x84]
fmul dword [0x56322c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x158], eax
fld dword [ebp - 0xa0]
fmul dword [0x56322c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x15c], eax
fld dword [ebp - 0x88]
fmul dword [0x56322c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x168], eax
fld dword [ebp - 0x8c]
fmul dword [0x56322c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x16c], eax
fld dword [ebp - 0xa4]
fmul dword [0x56322c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x170], eax
fld dword [ebp - 0x90]
fmul dword [0x56322c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x17c], eax
fld dword [ebp - 0x94]
fmul dword [0x56322c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x180], eax
fld dword [ebp - 0xa8]
fmul dword [0x56322c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x184], eax
fld dword [ebp - 0x98]
fmul dword [0x56322c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x190], eax
fld dword [ebp - 0x9c]
fmul dword [0x56322c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x194], eax
fld dword [ebp - 0xac]
fmul dword [0x56322c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0045ebb8
add esp, 8
mov dword [ebp - 0x198], eax
mov edx, dword [ebp - 0x104]
imul edx, dword [ebp - 0xe8]
add edx, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x104]
sar ecx, 1
jns 0x5002f1
adc ecx, 0
add edx, ecx
mov dword [ebp - 0x10c], edx
mov eax, dword [ebp - 0x11c]
imul dword [ebp - 0xe8]
add eax, dword [ebp - 0x120]
mov edx, dword [ebp - 0x11c]
sar edx, 1
jns 0x500318
adc edx, 0
add eax, edx
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0x130]
imul ecx, dword [ebp - 0xe8]
add ecx, dword [ebp - 0x134]
mov eax, dword [ebp - 0x130]
sar eax, 1
jns 0x500340
adc eax, 0
add ecx, eax
mov dword [ebp - 0x128], ecx
mov edx, dword [ebp - 0x144]
imul edx, dword [ebp - 0xe8]
add edx, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x144]
sar ecx, 1
jns 0x500368
adc ecx, 0
add edx, ecx
mov dword [ebp - 0x13c], edx
mov eax, dword [ebp - 0x158]
imul dword [ebp - 0xe8]
add eax, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x158]
sar edx, 1
jns 0x50038f
adc edx, 0
add eax, edx
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0x16c]
imul ecx, dword [ebp - 0xe8]
add ecx, dword [ebp - 0x170]
mov eax, dword [ebp - 0x16c]
sar eax, 1
jns 0x5003b7
adc eax, 0
add ecx, eax
mov dword [ebp - 0x164], ecx
mov edx, dword [ebp - 0x180]
imul edx, dword [ebp - 0xe8]
add edx, dword [ebp - 0x184]
mov ecx, dword [ebp - 0x180]
sar ecx, 1
jns 0x5003df
adc ecx, 0
add edx, ecx
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x194]
imul dword [ebp - 0xe8]
add eax, dword [ebp - 0x198]
mov edx, dword [ebp - 0x194]
sar edx, 1
jns 0x500406
adc edx, 0
add eax, edx
mov dword [ebp - 0x18c], eax
mov ecx, dword [ebp - 0xe8]
imul ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x260]
mov dword [ebp - 0x1a0], ecx
mov eax, dword [ebp - 0xe8]
imul dword [ebp - 0x2c]
add eax, dword [ebp - 0x25c]
mov dword [ebp - 0x19c], eax
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 4]
mov dword [ebp - 0xf4], ecx
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 8]
mov dword [ebp - 0xf8], edx
cmp dword [ebp + 0x28], 0
jne 0x540217
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x1c]
sub eax, 1
jb 0x500471
je 0x5208ac
jmp case.default.0x545cee
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x20], 1
jne 0x50ab71
mov ecx, dword [0x662b84]
cmp ecx, 4
ja case.default.0x545cee
jmp dword [ecx*4 + 0x500494]
cmp dword [ebp + 0x1c], 0
je 0x501639
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x500d63
cmp dword [ebp + 0x18], 0
je 0x500923
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x500894
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x500525
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x500549
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50056d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x500591
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5005b5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5005d9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5005fd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x500621
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x500894
test ecx, ecx
jle 0x500894
cmp dword [ebp + 0xc], 0
je 0x500698
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50081d
cmp dword [ebp + 0x20], 0
je 0x500698
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50081d
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x50081d
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
shl edx, 8
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
mov ebx, dword [ebp - 0x26c]
and edx, 0xf800
movzx ebx, word [ebx]
and ebx, 0xf800
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x10]
and ebx, 0xf80000
add edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 8
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x26c]
and ebx, 0x7e0
movzx esi, word [esi]
and esi, 0x7e0
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x10]
movzx eax, byte [eax + 0x8efb38]
and esi, 0x7e000
add ebx, esi
mov esi, dword [ebp - 0x264]
shr ebx, 8
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x26c]
and ebx, 0x1f
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x10]
and eax, 0x1f00
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 8
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x500662
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5004eb
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x500cd4
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x500977
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50099b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5009bf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5009e3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x500a07
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x500a2b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x500a4f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x500a73
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x500cd4
test ecx, ecx
jle 0x500cd4
cmp dword [ebp + 0xc], 0
je 0x500aea
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x500c5d
cmp dword [ebp + 0x20], 0
je 0x500aea
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x500c5d
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
add eax, edx
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
shl edx, 8
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
mov ebx, dword [ebp - 0x26c]
and edx, 0xf800
movzx ebx, word [ebx]
and ebx, 0xf800
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x10]
and ebx, 0xf80000
add edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 8
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x26c]
and ebx, 0x7e0
movzx esi, word [esi]
and esi, 0x7e0
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x10]
movzx eax, byte [eax + 0x8efb38]
and esi, 0x7e000
add ebx, esi
mov esi, dword [ebp - 0x264]
shr ebx, 8
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x26c]
and ebx, 0x1f
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x10]
and eax, 0x1f00
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 8
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x500ab4
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50093d
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x5011dc
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50114d
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x500dc1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x500de5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x500e09
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x500e2d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x500e51
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x500e75
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x500e99
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x500ebd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50114d
test ecx, ecx
jle 0x50114d
cmp dword [ebp + 0xc], 0
je 0x500f34
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5010d6
cmp dword [ebp + 0x20], 0
je 0x500f34
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5010d6
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x5010d6
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
sar ebx, 3
add dx, bx
mov ebx, dword [ebp - 0x270]
shl edx, 3
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x20]
sar ebx, 5
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 3
add ebx, esi
mov esi, dword [ebp - 0x264]
shr ebx, 3
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x24]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 8
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 8
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x500efe
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x500d87
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5015aa
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x501230
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x501254
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x501278
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50129c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5012c0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5012e4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x501308
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50132c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5015aa
test ecx, ecx
jle 0x5015aa
cmp dword [ebp + 0xc], 0
je 0x5013a3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x501533
cmp dword [ebp + 0x20], 0
je 0x5013a3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x501533
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
sar ebx, 3
add dx, bx
mov ebx, dword [ebp - 0x270]
shl edx, 3
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x20]
sar ebx, 5
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 3
add ebx, esi
mov esi, dword [ebp - 0x264]
shr ebx, 3
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x24]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 8
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 8
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50136d
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5011f6
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x501d17
cmp dword [ebp + 0x18], 0
je 0x5019bf
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x501930
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x5016ac
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5016d0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5016f4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x501718
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50173c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x501760
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x501784
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5017a8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x501930
test ecx, ecx
jle 0x501930
cmp dword [ebp + 0xc], 0
je 0x50181f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5018b9
cmp dword [ebp + 0x20], 0
je 0x50181f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5018b9
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x5018b9
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
mov dx, word [eax + edx*2]
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5017e9
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x501672
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x501c88
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x501a13
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x501a37
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x501a5b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x501a7f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x501aa3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x501ac7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x501aeb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x501b0f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x501c88
test ecx, ecx
jle 0x501c88
cmp dword [ebp + 0xc], 0
je 0x501b86
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x501c11
cmp dword [ebp + 0x20], 0
je 0x501b86
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x501c11
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
mov dx, word [eax + edx*2]
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x501b50
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5019d9
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x5020de
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50204f
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x501d75
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x501d99
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x501dbd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x501de1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x501e05
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x501e29
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x501e4d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x501e71
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50204f
test ecx, ecx
jle 0x50204f
cmp dword [ebp + 0xc], 0
je 0x501ee8
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x501fd8
cmp dword [ebp + 0x20], 0
je 0x501ee8
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x501fd8
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x501fd8
mov eax, dword [ebp - 0x270]
xor edx, edx
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x20]
sar eax, 5
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x264]
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x24]
and eax, 0x1f
or dx, word [ebx + eax*4]
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x501eb2
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x501d3b
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5023fd
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x502132
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x502156
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50217a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50219e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5021c2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5021e6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50220a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50222e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5023fd
test ecx, ecx
jle 0x5023fd
cmp dword [ebp + 0xc], 0
je 0x5022a5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x502386
cmp dword [ebp + 0x20], 0
je 0x5022a5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x502386
imul edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x20]
sar eax, 5
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x264]
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x24]
and eax, 0x1f
or dx, word [ebx + eax*4]
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50226f
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5020f8
jmp case.default.0x545cee
cmp dword [0x662b88], 0xff
je case.0x50048d.0
cmp dword [0x662b88], 0
je case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x5036a8
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x502da2
cmp dword [ebp + 0x18], 0
je 0x502943
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x5028b4
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x502526
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50254a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50256e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x502592
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5025b6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5025da
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5025fe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x502622
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5028b4
test ecx, ecx
jle 0x5028b4
cmp dword [ebp + 0xc], 0
je 0x502699
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50283d
cmp dword [ebp + 0x20], 0
je 0x502699
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50283d
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x50283d
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
mov ebx, dword [ebp - 0x26c]
and edx, 0xf800
movzx ebx, word [ebx]
and ebx, 0xf800
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0x10
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x26c]
and ebx, 0x7e0
movzx esi, word [esi]
and esi, 0x7e0
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
imul ebx, dword [0x662b88]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0x10
add ebx, esi
mov esi, dword [ebp - 0x264]
sar ebx, 0x10
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x26c]
and ebx, 0x1f
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
imul ebx, dword [0x662b88]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 0x10
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x502663
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5024ec
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x502d13
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x502997
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5029bb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5029df
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x502a03
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x502a27
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x502a4b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x502a6f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x502a93
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x502d13
test ecx, ecx
jle 0x502d13
cmp dword [ebp + 0xc], 0
je 0x502b0a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x502c9c
cmp dword [ebp + 0x20], 0
je 0x502b0a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x502c9c
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
mov ebx, dword [ebp - 0x26c]
and edx, 0xf800
movzx ebx, word [ebx]
and ebx, 0xf800
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0x10
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x26c]
and ebx, 0x7e0
movzx esi, word [esi]
and esi, 0x7e0
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
imul ebx, dword [0x662b88]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0x10
add ebx, esi
mov esi, dword [ebp - 0x264]
sar ebx, 0x10
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x26c]
and ebx, 0x1f
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
imul ebx, dword [0x662b88]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 0x10
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x502ad4
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50295d
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x503233
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5031a4
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x502e00
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x502e24
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x502e48
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x502e6c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x502e90
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x502eb4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x502ed8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x502efc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5031a4
test ecx, ecx
jle 0x5031a4
cmp dword [ebp + 0xc], 0
je 0x502f73
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50312d
cmp dword [ebp + 0x20], 0
je 0x502f73
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50312d
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x50312d
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 5
add edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 5
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x20]
sar ebx, 5
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
imul ebx, dword [0x662b88]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0xb
add ebx, esi
mov esi, dword [ebp - 0x264]
shr ebx, 0xb
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x24]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
imul ebx, dword [0x662b88]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 0x10
and bx, 0x1f
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x502f3d
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x502dc6
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x503619
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x503287
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5032ab
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5032cf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5032f3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x503317
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50333b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50335f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x503383
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x503619
test ecx, ecx
jle 0x503619
cmp dword [ebp + 0xc], 0
je 0x5033fa
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5035a2
cmp dword [ebp + 0x20], 0
je 0x5033fa
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5035a2
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 5
add edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 5
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x20]
sar ebx, 5
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
imul ebx, dword [0x662b88]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0xb
add ebx, esi
mov esi, dword [ebp - 0x264]
shr ebx, 0xb
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x24]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
imul ebx, dword [0x662b88]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 0x10
and bx, 0x1f
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5033c4
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50324d
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x503f04
cmp dword [ebp + 0x18], 0
je 0x503aef
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x503a60
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x50371b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50373f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x503763
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x503787
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5037ab
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5037cf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5037f3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x503817
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x503a60
test ecx, ecx
jle 0x503a60
cmp dword [ebp + 0xc], 0
je 0x50388e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5039e9
cmp dword [ebp + 0x20], 0
je 0x50388e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5039e9
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x5039e9
mov eax, dword [ebp - 0x270]
xor edx, edx
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
mov eax, dword [ebp - 0x26c]
sar edx, 0xb
movzx eax, word [eax]
sar eax, 0xb
sub edx, eax
mov eax, dword [ebp - 8]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
add dx, ax
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x26c]
and eax, 0x7e0
sar eax, 5
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
add ax, bx
mov ebx, dword [ebp - 0x264]
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x26c]
and eax, 0x1f
movzx ebx, word [ebx]
and ebx, 0x1f
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
add ax, bx
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x503858
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5036e1
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x503e75
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x503b43
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x503b67
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x503b8b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x503baf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x503bd3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x503bf7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x503c1b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x503c3f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x503e75
test ecx, ecx
jle 0x503e75
cmp dword [ebp + 0xc], 0
je 0x503cb6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x503dfe
cmp dword [ebp + 0x20], 0
je 0x503cb6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x503dfe
imul edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
mov eax, dword [ebp - 0x26c]
sar edx, 0xb
movzx eax, word [eax]
sar eax, 0xb
sub edx, eax
mov eax, dword [ebp - 8]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
add dx, ax
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x26c]
and eax, 0x7e0
sar eax, 5
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
add ax, bx
mov ebx, dword [ebp - 0x264]
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x26c]
and eax, 0x1f
movzx ebx, word [ebx]
and ebx, 0x1f
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
add ax, bx
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x503c80
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x503b09
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x504348
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5042b9
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x503f62
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x503f86
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x503faa
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x503fce
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x503ff2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x504016
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50403a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50405e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5042b9
test ecx, ecx
jle 0x5042b9
cmp dword [ebp + 0xc], 0
je 0x5040d5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x504242
cmp dword [ebp + 0x20], 0
je 0x5040d5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x504242
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x504242
mov eax, dword [ebp - 0x270]
xor edx, edx
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
sub edx, eax
mov eax, dword [ebp - 8]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
add dx, ax
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x20]
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
add ax, bx
mov ebx, dword [ebp - 0x264]
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x24]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
add ax, bx
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50409f
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x503f28
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5046e0
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50439c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5043c0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5043e4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x504408
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50442c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x504450
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x504474
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x504498
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5046e0
test ecx, ecx
jle 0x5046e0
cmp dword [ebp + 0xc], 0
je 0x50450f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x504669
cmp dword [ebp + 0x20], 0
je 0x50450f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x504669
imul edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
sub edx, eax
mov eax, dword [ebp - 8]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
add dx, ax
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x20]
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
add ax, bx
mov ebx, dword [ebp - 0x264]
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x24]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
add ax, bx
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5044d9
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x504362
jmp case.default.0x545cee
cmp dword [0x662b88], 0
je case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x5058fb
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x505039
cmp dword [ebp + 0x18], 0
je 0x504bf8
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x504b69
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x5047f9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50481d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x504841
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x504865
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x504889
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5048ad
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5048d1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5048f5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x504b69
test ecx, ecx
jle 0x504b69
cmp dword [ebp + 0xc], 0
je 0x50496c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x504af2
cmp dword [ebp + 0x20], 0
je 0x50496c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x504af2
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x504af2
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
xor ebx, ebx
and edx, 0xf800
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
sar edx, 0x13
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
movzx esi, byte [eax]
and ebx, 0x7e0
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
sar ebx, 0xd
mov esi, dword [ebp - 4]
movzx eax, byte [eax]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x264]
shl ebx, 5
movzx eax, byte [eax + 0x8efb38]
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x1f
imul ebx, eax
sar ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x504936
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5047bf
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x504faa
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x504c4c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x504c70
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x504c94
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x504cb8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x504cdc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x504d00
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x504d24
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x504d48
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x504faa
test ecx, ecx
jle 0x504faa
cmp dword [ebp + 0xc], 0
je 0x504dbf
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x504f33
cmp dword [ebp + 0x20], 0
je 0x504dbf
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x504f33
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
xor ebx, ebx
and edx, 0xf800
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
sar edx, 0x13
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
movzx esi, byte [eax]
and ebx, 0x7e0
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
sar ebx, 0xd
mov esi, dword [ebp - 4]
movzx eax, byte [eax]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x264]
shl ebx, 5
movzx eax, byte [eax + 0x8efb38]
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x1f
imul ebx, eax
sar ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x504d89
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x504c12
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x5054a8
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x505419
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x505097
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5050bb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5050df
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x505103
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x505127
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50514b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50516f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x505193
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x505419
test ecx, ecx
jle 0x505419
cmp dword [ebp + 0xc], 0
je 0x50520a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5053a2
cmp dword [ebp + 0x20], 0
je 0x50520a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5053a2
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x5053a2
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
shr edx, 8
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x20]
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
shr ebx, 8
mov esi, dword [ebp - 4]
movzx eax, byte [eax + 0x8efb38]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x264]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x24]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
shr ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5051d4
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50505d
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50586c
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5054fc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x505520
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x505544
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x505568
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50558c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5055b0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5055d4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5055f8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50586c
test ecx, ecx
jle 0x50586c
cmp dword [ebp + 0xc], 0
je 0x50566f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5057f5
cmp dword [ebp + 0x20], 0
je 0x50566f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5057f5
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
shr edx, 8
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x20]
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
shr ebx, 8
mov esi, dword [ebp - 4]
movzx eax, byte [eax + 0x8efb38]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x264]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x24]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
shr ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x505639
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5054c2
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x50612f
cmp dword [ebp + 0x18], 0
je 0x505d2e
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x505c9f
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x50596e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x505992
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5059b6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5059da
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5059fe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x505a22
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x505a46
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x505a6a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x505c9f
test ecx, ecx
jle 0x505c9f
cmp dword [ebp + 0xc], 0
je 0x505ae1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x505c28
cmp dword [ebp + 0x20], 0
je 0x505ae1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x505c28
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x505c28
mov eax, dword [ebp - 0x270]
xor edx, edx
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 4]
sar eax, 5
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x264]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 4]
and eax, 0x1f
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x505aab
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x505934
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5060a0
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x505d82
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x505da6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x505dca
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x505dee
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x505e12
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x505e36
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x505e5a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x505e7e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5060a0
test ecx, ecx
jle 0x5060a0
cmp dword [ebp + 0xc], 0
je 0x505ef5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x506029
cmp dword [ebp + 0x20], 0
je 0x505ef5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x506029
imul edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 4]
sar eax, 5
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x264]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 4]
and eax, 0x1f
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x505ebf
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x505d48
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x50655f
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5064d0
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50618d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5061b1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5061d5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5061f9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50621d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x506241
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x506265
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x506289
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5064d0
test ecx, ecx
jle 0x5064d0
cmp dword [ebp + 0xc], 0
je 0x506300
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x506459
cmp dword [ebp + 0x20], 0
je 0x506300
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x506459
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x506459
mov eax, dword [ebp - 0x270]
xor edx, edx
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x20]
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x264]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x24]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5062ca
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x506153
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5068e3
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5065b3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5065d7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5065fb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50661f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x506643
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x506667
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50668b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5066af
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5068e3
test ecx, ecx
jle 0x5068e3
cmp dword [ebp + 0xc], 0
je 0x506726
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50686c
cmp dword [ebp + 0x20], 0
je 0x506726
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50686c
imul edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x20]
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x264]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x24]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5066f0
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x506579
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x507aa5
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x507209
cmp dword [ebp + 0x18], 0
je 0x506ddb
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x506d4c
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x5069ef
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x506a13
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x506a37
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x506a5b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x506a7f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x506aa3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x506ac7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x506aeb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x506d4c
test ecx, ecx
jle 0x506d4c
cmp dword [ebp + 0xc], 0
je 0x506b62
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x506cd5
cmp dword [ebp + 0x20], 0
je 0x506b62
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x506cd5
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x506cd5
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
xor ebx, ebx
and edx, 0xf800
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
sar edx, 0x13
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
movzx esi, byte [eax]
and ebx, 0x7e0
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
sar ebx, 0xd
mov esi, dword [ebp - 4]
movzx eax, byte [eax]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x264]
shl ebx, 5
movzx eax, byte [eax + 0x8efb38]
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x1f
imul ebx, eax
sar ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x506b2c
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5069b5
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50717a
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x506e2f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x506e53
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x506e77
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x506e9b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x506ebf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x506ee3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x506f07
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x506f2b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50717a
test ecx, ecx
jle 0x50717a
cmp dword [ebp + 0xc], 0
je 0x506fa2
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x507103
cmp dword [ebp + 0x20], 0
je 0x506fa2
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x507103
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
xor ebx, ebx
and edx, 0xf800
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
sar edx, 0x13
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
movzx esi, byte [eax]
and ebx, 0x7e0
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
sar ebx, 0xd
mov esi, dword [ebp - 4]
movzx eax, byte [eax]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x264]
shl ebx, 5
movzx eax, byte [eax + 0x8efb38]
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x1f
imul ebx, eax
sar ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x506f6c
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x506df5
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x507665
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5075d6
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x507267
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50728b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5072af
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5072d3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5072f7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50731b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50733f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x507363
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5075d6
test ecx, ecx
jle 0x5075d6
cmp dword [ebp + 0xc], 0
je 0x5073da
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50755f
cmp dword [ebp + 0x20], 0
je 0x5073da
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50755f
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x50755f
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
shr edx, 8
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x20]
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
shr ebx, 8
mov esi, dword [ebp - 4]
movzx eax, byte [eax + 0x8efb38]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x264]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x24]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
shr ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5073a4
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50722d
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x507a16
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5076b9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5076dd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x507701
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x507725
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x507749
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50776d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x507791
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5077b5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x507a16
test ecx, ecx
jle 0x507a16
cmp dword [ebp + 0xc], 0
je 0x50782c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50799f
cmp dword [ebp + 0x20], 0
je 0x50782c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50799f
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
shr edx, 8
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x20]
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
shr ebx, 8
mov esi, dword [ebp - 4]
movzx eax, byte [eax + 0x8efb38]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x264]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x24]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
shr ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5077f6
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50767f
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x5082af
cmp dword [ebp + 0x18], 0
je 0x507ec3
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x507e34
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x507b18
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x507b3c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x507b60
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x507b84
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x507ba8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x507bcc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x507bf0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x507c14
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x507e34
test ecx, ecx
jle 0x507e34
cmp dword [ebp + 0xc], 0
je 0x507c8b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x507dbd
cmp dword [ebp + 0x20], 0
je 0x507c8b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x507dbd
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x507dbd
mov eax, dword [ebp - 0x270]
xor edx, edx
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 4]
sar eax, 5
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x264]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 4]
and eax, 0x1f
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x507c55
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x507ade
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x508220
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x507f17
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x507f3b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x507f5f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x507f83
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x507fa7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x507fcb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x507fef
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x508013
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x508220
test ecx, ecx
jle 0x508220
cmp dword [ebp + 0xc], 0
je 0x50808a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5081a9
cmp dword [ebp + 0x20], 0
je 0x50808a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5081a9
imul edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 4]
sar eax, 5
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x264]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 4]
and eax, 0x1f
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x508054
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x507edd
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x5086ca
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x50863b
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x50830d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x508331
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x508355
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x508379
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50839d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5083c1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5083e5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x508409
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50863b
test ecx, ecx
jle 0x50863b
cmp dword [ebp + 0xc], 0
je 0x508480
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5085c4
cmp dword [ebp + 0x20], 0
je 0x508480
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5085c4
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x5085c4
mov eax, dword [ebp - 0x270]
xor edx, edx
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x20]
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x264]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x24]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50844a
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x5082d3
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x508a39
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x50871e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x508742
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x508766
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50878a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5087ae
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5087d2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5087f6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50881a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x508a39
test ecx, ecx
jle 0x508a39
cmp dword [ebp + 0xc], 0
je 0x508891
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5089c2
cmp dword [ebp + 0x20], 0
je 0x508891
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5089c2
imul edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x20]
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x264]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x24]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50885b
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x5086e4
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x509b96
mov edx, dword [0x662b98]
and edx, 0xffffff
cmp edx, 0xffffff
jne 0x50932e
cmp dword [ebp + 0x18], 0
je 0x508f1a
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x508e8b
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x508b48
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x508b6c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x508b90
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x508bb4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x508bd8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x508bfc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x508c20
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x508c44
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x508e8b
test ecx, ecx
jle 0x508e8b
cmp dword [ebp + 0xc], 0
je 0x508cbb
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x508e14
cmp dword [ebp + 0x20], 0
je 0x508cbb
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x508e14
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x508e14
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
xor ebx, ebx
mov bl, byte [eax]
sar edx, 0xb
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 2
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
movzx esi, byte [eax]
and ebx, 0x7e0
movzx esi, byte [esi + 0x8efb38]
sar ebx, 5
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax]
movzx esi, word [esi]
and esi, 0x7e0
movzx eax, byte [eax + 0x8efb38]
sar esi, 5
imul ebx, esi
sar ebx, 9
mov esi, dword [ebp - 0x264]
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x1f
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
sar ebx, 0xd
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x508c85
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x508b0e
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50929f
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x508f6e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x508f92
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x508fb6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x508fda
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x508ffe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x509022
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x509046
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50906a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50929f
test ecx, ecx
jle 0x50929f
cmp dword [ebp + 0xc], 0
je 0x5090e1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x509228
cmp dword [ebp + 0x20], 0
je 0x5090e1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x509228
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
xor ebx, ebx
mov bl, byte [eax]
sar edx, 0xb
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 2
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
movzx esi, byte [eax]
and ebx, 0x7e0
movzx esi, byte [esi + 0x8efb38]
sar ebx, 5
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax]
movzx esi, word [esi]
and esi, 0x7e0
movzx eax, byte [eax + 0x8efb38]
sar esi, 5
imul ebx, esi
sar ebx, 9
mov esi, dword [ebp - 0x264]
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x1f
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
sar ebx, 0xd
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5090ab
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x508f34
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x509770
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5096e1
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50938c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5093b0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5093d4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5093f8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50941c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x509440
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x509464
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x509488
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5096e1
test ecx, ecx
jle 0x5096e1
cmp dword [ebp + 0xc], 0
je 0x5094ff
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50966a
cmp dword [ebp + 0x20], 0
je 0x5094ff
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50966a
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x50966a
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 2
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x20]
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
shr ebx, 9
mov esi, dword [ebp - 0x264]
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x24]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
shr ebx, 0xd
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5094c9
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x509352
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x509b07
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5097c4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5097e8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50980c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x509830
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x509854
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x509878
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50989c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5098c0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x509b07
test ecx, ecx
jle 0x509b07
cmp dword [ebp + 0xc], 0
je 0x509937
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x509a90
cmp dword [ebp + 0x20], 0
je 0x509937
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x509a90
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 2
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x20]
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
shr ebx, 9
mov esi, dword [ebp - 0x264]
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
mov esi, dword [ebp - 0x24]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
shr ebx, 0xd
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x509901
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50978a
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x50a37c
cmp dword [ebp + 0x18], 0
je 0x509fa2
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x509f13
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x509c09
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x509c2d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x509c51
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x509c75
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x509c99
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x509cbd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x509ce1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x509d05
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x509f13
test ecx, ecx
jle 0x509f13
cmp dword [ebp + 0xc], 0
je 0x509d7c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x509e9c
cmp dword [ebp + 0x20], 0
je 0x509d7c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x509e9c
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x509e9c
mov eax, dword [ebp - 0x270]
xor edx, edx
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
mov eax, dword [ebp - 0x26c]
and edx, 0xf800
movzx eax, word [eax]
and eax, 0xf800
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 0x10
movzx eax, byte [eax]
and dx, 0xf800
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x26c]
and eax, 0x7e0
movzx ebx, word [ebx]
and ebx, 0x7e0
imul eax, ebx
sar eax, 0xb
mov ebx, dword [ebp - 0x264]
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x26c]
and eax, 0x1f
movzx ebx, word [ebx]
and ebx, 0x1f
imul eax, ebx
sar eax, 5
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x509d46
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x509bcf
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50a2ed
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x509ff6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50a01a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50a03e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50a062
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50a086
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50a0aa
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50a0ce
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50a0f2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50a2ed
test ecx, ecx
jle 0x50a2ed
cmp dword [ebp + 0xc], 0
je 0x50a169
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50a276
cmp dword [ebp + 0x20], 0
je 0x50a169
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50a276
imul edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
mov eax, dword [ebp - 0x26c]
and edx, 0xf800
movzx eax, word [eax]
and eax, 0xf800
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 0x10
movzx eax, byte [eax]
and dx, 0xf800
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x26c]
and eax, 0x7e0
movzx ebx, word [ebx]
and ebx, 0x7e0
imul eax, ebx
sar eax, 0xb
mov ebx, dword [ebp - 0x264]
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x26c]
and eax, 0x1f
movzx ebx, word [ebx]
and ebx, 0x1f
imul eax, ebx
sar eax, 5
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50a133
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x509fbc
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x50a785
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50a6f6
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50a3da
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50a3fe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50a422
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50a446
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50a46a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50a48e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50a4b2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50a4d6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50a6f6
test ecx, ecx
jle 0x50a6f6
cmp dword [ebp + 0xc], 0
je 0x50a54d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50a67f
cmp dword [ebp + 0x20], 0
je 0x50a54d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50a67f
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x50a67f
mov eax, dword [ebp - 0x270]
xor edx, edx
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
imul edx, eax
mov eax, dword [ebp - 0x270]
shl edx, 6
movzx eax, byte [eax]
and dx, 0xf800
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x20]
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul eax, ebx
shr eax, 1
mov ebx, dword [ebp - 0x264]
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x24]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
imul eax, ebx
shr eax, 5
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50a517
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50a3a0
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50aae2
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50a7d9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50a7fd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50a821
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50a845
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50a869
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50a88d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50a8b1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50a8d5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50aae2
test ecx, ecx
jle 0x50aae2
cmp dword [ebp + 0xc], 0
je 0x50a94c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50aa6b
cmp dword [ebp + 0x20], 0
je 0x50a94c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50aa6b
imul edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
imul edx, eax
mov eax, dword [ebp - 0x270]
shl edx, 6
movzx eax, byte [eax]
and dx, 0xf800
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x20]
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul eax, ebx
shr eax, 1
mov ebx, dword [ebp - 0x264]
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
mov ebx, dword [ebp - 0x24]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
imul eax, ebx
shr eax, 5
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50a916
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50a79f
jmp case.default.0x545cee
mov eax, dword [0x662b84]
cmp eax, 4
ja case.default.0x545cee
jmp dword [eax*4 + 0x50ab86]
cmp dword [ebp + 0x1c], 0
je 0x50d061
mov edx, dword [0x662b98]
and edx, 0xffffff
cmp edx, 0xffffff
jne 0x50bdc7
mov ecx, dword [ebp + 0x10]
cmp dword [ecx + 0x28], 1
jne 0x50b563
cmp dword [ebp + 0x18], 0
je 0x50b117
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50b088
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50ac27
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50ac4b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50ac6f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50ac93
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50acb7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50acdb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50acff
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50ad23
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50b088
test ecx, ecx
jle 0x50b088
cmp dword [ebp + 0xc], 0
je 0x50ad9a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50b011
cmp dword [ebp + 0x20], 0
je 0x50ad9a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50b011
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0
je 0x50b011
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x50af17
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
shl edx, 8
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
mov esi, dword [ebp - 0x26c]
movzx ebx, word [ebx]
movzx edx, word [edx]
and ebx, 0xf800
and edx, 0xf800
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx esi, word [esi]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x10]
and esi, 0x7e0
and ebx, 0xf80000
add edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 8
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x10]
movzx eax, byte [eax + 0x8efb38]
and esi, 0x7e000
add ebx, esi
mov esi, dword [ebp - 0x26c]
shr ebx, 8
movzx esi, word [esi]
and bx, 0x7e0
and esi, 0x1f
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x10]
and eax, 0x1f00
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 8
or dx, bx
mov word [eax], dx
jmp 0x50b011
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
shl edx, 0x10
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
mov esi, dword [ebp - 0x26c]
movzx ebx, word [ebx]
movzx edx, word [edx]
and ebx, 0xf800
and edx, 0xf800
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx esi, word [esi]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
and esi, 0x7e0
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x10]
and ebx, 0xf8000000
add edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 0x10
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx esi, byte [esi + 2]
imul ebx, esi
mov esi, dword [ebp - 0x10]
and esi, 0x7e00000
add ebx, esi
mov esi, dword [ebp - 0x26c]
shr ebx, 0x10
movzx esi, word [esi]
and bx, 0x7e0
and esi, 0x1f
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
mov eax, dword [ebp - 0x10]
and eax, 0x1f0000
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 0x10
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50ad64
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50abed
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50b4d4
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50b16b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50b18f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50b1b3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50b1d7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50b1fb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50b21f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50b243
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50b267
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50b4d4
test ecx, ecx
jle 0x50b4d4
cmp dword [ebp + 0xc], 0
je 0x50b2de
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50b45d
cmp dword [ebp + 0x20], 0
je 0x50b2de
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50b45d
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
add eax, edx
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
shl edx, 0x10
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
mov esi, dword [ebp - 0x26c]
movzx ebx, word [ebx]
movzx edx, word [edx]
and ebx, 0xf800
and edx, 0xf800
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx esi, word [esi]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
and esi, 0x7e0
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x10]
and ebx, 0xf8000000
add edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 0x10
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx esi, byte [esi + 2]
imul ebx, esi
mov esi, dword [ebp - 0x10]
and esi, 0x7e00000
add ebx, esi
mov esi, dword [ebp - 0x26c]
shr ebx, 0x10
movzx esi, word [esi]
and bx, 0x7e0
and esi, 0x1f
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
mov eax, dword [ebp - 0x10]
and eax, 0x1f0000
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 0x10
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50b2a8
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50b131
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x50b9a3
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50b914
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50b5c1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50b5e5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50b609
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50b62d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50b651
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50b675
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50b699
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50b6bd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50b914
test ecx, ecx
jle 0x50b914
cmp dword [ebp + 0xc], 0
je 0x50b734
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50b89d
cmp dword [ebp + 0x20], 0
je 0x50b734
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50b89d
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
cmp edx, dword [ebp - 0x38]
je 0x50b89d
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
shl edx, 8
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
mov esi, dword [ebp - 0x26c]
movzx ebx, word [ebx]
movzx edx, word [edx]
and ebx, 0xf800
and edx, 0xf800
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx esi, word [esi]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x10]
and esi, 0x7e0
and ebx, 0xf80000
add edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 8
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x10]
movzx eax, byte [eax + 0x8efb38]
and esi, 0x7e000
add ebx, esi
mov esi, dword [ebp - 0x26c]
shr ebx, 8
movzx esi, word [esi]
and bx, 0x7e0
and esi, 0x1f
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x10]
and eax, 0x1f00
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 8
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50b6fe
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50b587
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50bd38
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50b9f7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50ba1b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50ba3f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50ba63
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50ba87
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50baab
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50bacf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50baf3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50bd38
test ecx, ecx
jle 0x50bd38
cmp dword [ebp + 0xc], 0
je 0x50bb6a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50bcc1
cmp dword [ebp + 0x20], 0
je 0x50bb6a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50bcc1
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
add ebx, ebx
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
add eax, edx
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
shl edx, 8
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
mov esi, dword [ebp - 0x26c]
movzx ebx, word [ebx]
movzx edx, word [edx]
and ebx, 0xf800
and edx, 0xf800
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx esi, word [esi]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x10]
and esi, 0x7e0
and ebx, 0xf80000
add edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 8
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x10]
movzx eax, byte [eax + 0x8efb38]
and esi, 0x7e000
add ebx, esi
mov esi, dword [ebp - 0x26c]
shr ebx, 8
movzx esi, word [esi]
and bx, 0x7e0
and esi, 0x1f
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x10]
and eax, 0x1f00
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 8
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50bb34
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50b9bd
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x50c7c3
cmp dword [ebp + 0x18], 0
je 0x50c35b
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x50c2cc
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x50be32
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50be56
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50be7a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50be9e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50bec2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50bee6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50bf0a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50bf2e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50c2cc
test ecx, ecx
jle 0x50c2cc
cmp dword [ebp + 0xc], 0
je 0x50bfa5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50c255
cmp dword [ebp + 0x20], 0
je 0x50bfa5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50c255
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0
je 0x50c255
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x50c13f
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
sar ebx, 3
add dx, bx
mov ebx, dword [ebp - 0x270]
shl edx, 3
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sar ebx, 5
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 3
add ebx, esi
mov esi, dword [ebp - 0x24]
shr ebx, 3
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 8
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 8
or dx, bx
mov word [eax], dx
jmp 0x50c255
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 5
add edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 5
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sar ebx, 5
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx esi, byte [esi + 2]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0xb
add ebx, esi
mov esi, dword [ebp - 0x24]
shr ebx, 0xb
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 0x10
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50bf6f
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50bdf8
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50c734
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50c3af
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50c3d3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50c3f7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50c41b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50c43f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50c463
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50c487
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50c4ab
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50c734
test ecx, ecx
jle 0x50c734
cmp dword [ebp + 0xc], 0
je 0x50c522
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50c6bd
cmp dword [ebp + 0x20], 0
je 0x50c522
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50c6bd
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 5
add edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 5
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sar ebx, 5
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx esi, byte [esi + 2]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0xb
add ebx, esi
mov esi, dword [ebp - 0x24]
shr ebx, 0xb
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 0x10
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50c4ec
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50c375
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x50cc20
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50cb91
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50c821
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50c845
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50c869
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50c88d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50c8b1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50c8d5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50c8f9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50c91d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50cb91
test ecx, ecx
jle 0x50cb91
cmp dword [ebp + 0xc], 0
je 0x50c994
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50cb1a
cmp dword [ebp + 0x20], 0
je 0x50c994
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50cb1a
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
cmp edx, dword [ebp - 0x38]
je 0x50cb1a
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
sar ebx, 3
add dx, bx
mov ebx, dword [ebp - 0x270]
shl edx, 3
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sar ebx, 5
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 3
add ebx, esi
mov esi, dword [ebp - 0x24]
shr ebx, 3
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 8
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 8
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50c95e
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50c7e7
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50cfd2
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50cc74
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50cc98
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50ccbc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50cce0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50cd04
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50cd28
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50cd4c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50cd70
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50cfd2
test ecx, ecx
jle 0x50cfd2
cmp dword [ebp + 0xc], 0
je 0x50cde7
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50cf5b
cmp dword [ebp + 0x20], 0
je 0x50cde7
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50cf5b
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
add ebx, ebx
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
sar ebx, 3
add dx, bx
mov ebx, dword [ebp - 0x270]
shl edx, 3
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sar ebx, 5
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 3
add ebx, esi
mov esi, dword [ebp - 0x24]
shr ebx, 3
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 8
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 8
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50cdb1
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50cc3a
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x50dfe9
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x50d8f5
cmp dword [ebp + 0x18], 0
je 0x50d4db
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x50d44c
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50d0e1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50d105
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50d129
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50d14d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50d171
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50d195
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50d1b9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50d1dd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50d44c
test ecx, ecx
jle 0x50d44c
cmp dword [ebp + 0xc], 0
je 0x50d254
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50d3d5
cmp dword [ebp + 0x20], 0
je 0x50d254
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50d3d5
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 2], 0
je 0x50d3d5
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x50d2fc
mov eax, dword [ebp - 0x270]
mov dx, word [eax]
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
jmp 0x50d3d5
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0x26c]
and eax, 0xf800
movzx ebx, word [ebx]
movzx edx, word [edx]
and edx, 0xf800
and ebx, 0x7e0
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 2]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
and edx, 0xf800
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x270]
sar eax, 8
movzx edx, word [edx]
and edx, 0x7e0
and ax, 0xf800
sub edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, word [ebx]
and dx, 0x7e0
and ebx, 0x1f
or ax, dx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
and edx, 0x1f
sub edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
shl ebx, 8
add edx, ebx
sar edx, 8
or ax, dx
mov edx, dword [ebp - 0x26c]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50d21e
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50d0a7
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50d866
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50d52f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50d553
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50d577
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50d59b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50d5bf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50d5e3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50d607
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50d62b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50d866
test ecx, ecx
jle 0x50d866
cmp dword [ebp + 0xc], 0
je 0x50d6a2
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50d7ef
cmp dword [ebp + 0x20], 0
je 0x50d6a2
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50d7ef
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0x26c]
and edx, 0xf800
movzx ebx, word [ebx]
movzx eax, word [eax]
and eax, 0xf800
and ebx, 0x7e0
sub edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0xf800
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 8
movzx eax, word [eax]
and eax, 0x7e0
and dx, 0xf800
sub eax, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
shl ebx, 8
add eax, ebx
mov ebx, dword [ebp - 0x26c]
sar eax, 8
movzx ebx, word [ebx]
and ax, 0x7e0
and ebx, 0x1f
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
sub eax, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
shl ebx, 8
add eax, ebx
sar eax, 8
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50d66c
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50d4f5
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x50dc5c
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50dbcd
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50d953
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50d977
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50d99b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50d9bf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50d9e3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50da07
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50da2b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50da4f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50dbcd
test ecx, ecx
jle 0x50dbcd
cmp dword [ebp + 0xc], 0
je 0x50dac6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50db56
cmp dword [ebp + 0x20], 0
je 0x50dac6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50db56
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
cmp edx, dword [ebp - 0x38]
je 0x50db56
mov eax, dword [ebp - 0x270]
mov dx, word [eax]
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50da90
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50d919
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50df5a
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50dcb0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50dcd4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50dcf8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50dd1c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50dd40
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50dd64
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50dd88
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50ddac
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50df5a
test ecx, ecx
jle 0x50df5a
cmp dword [ebp + 0xc], 0
je 0x50de23
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50dee3
cmp dword [ebp + 0x20], 0
je 0x50de23
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50dee3
imul edx, dword [ebp - 0x28]
add eax, eax
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x24]
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
or dx, word [ebx + eax*4]
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50dded
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50dc76
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x50e8ce
cmp dword [ebp + 0x18], 0
je 0x50e4a0
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x50e411
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x50e054
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50e078
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50e09c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50e0c0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50e0e4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50e108
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50e12c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50e150
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50e411
test ecx, ecx
jle 0x50e411
cmp dword [ebp + 0xc], 0
je 0x50e1c7
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50e39a
cmp dword [ebp + 0x20], 0
je 0x50e1c7
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50e39a
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 2], 0
je 0x50e39a
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x50e2ad
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x24]
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
or dx, word [ebx + eax*4]
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
jmp 0x50e39a
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx eax, word [edx]
sar eax, 0xb
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
sar edx, 0xb
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 2]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
and edx, 0xf800
sar edx, 3
add ax, dx
mov edx, dword [ebp - 0x270]
shl eax, 3
movzx edx, word [edx]
and edx, 0x7e0
and ax, 0xf800
sar edx, 5
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
shl ebx, 3
add edx, ebx
mov ebx, dword [ebp - 0x24]
shr edx, 3
and dx, 0x7e0
or ax, dx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
and edx, 0x1f
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
sub edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
shl ebx, 8
add edx, ebx
shr edx, 8
or ax, dx
mov edx, dword [ebp - 0x26c]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50e191
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50e01a
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50e83f
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50e4f4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50e518
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50e53c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50e560
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50e584
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50e5a8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50e5cc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50e5f0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50e83f
test ecx, ecx
jle 0x50e83f
cmp dword [ebp + 0xc], 0
je 0x50e667
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50e7c8
cmp dword [ebp + 0x20], 0
je 0x50e667
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50e7c8
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
sub edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0xf800
sar eax, 3
add dx, ax
mov eax, dword [ebp - 0x270]
shl edx, 3
movzx eax, word [eax]
and eax, 0x7e0
and dx, 0xf800
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub eax, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
shl ebx, 3
add eax, ebx
mov ebx, dword [ebp - 0x24]
shr eax, 3
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
sub eax, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
shl ebx, 8
add eax, ebx
shr eax, 8
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50e631
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50e4ba
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x50ec73
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50ebe4
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50e92c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50e950
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50e974
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50e998
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50e9bc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50e9e0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50ea04
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50ea28
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50ebe4
test ecx, ecx
jle 0x50ebe4
cmp dword [ebp + 0xc], 0
je 0x50ea9f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50eb6d
cmp dword [ebp + 0x20], 0
je 0x50ea9f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50eb6d
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
cmp edx, dword [ebp - 0x38]
je 0x50eb6d
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x24]
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
or dx, word [ebx + eax*4]
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50ea69
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50e8f2
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50ef71
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50ecc7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50eceb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50ed0f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50ed33
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50ed57
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50ed7b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50ed9f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50edc3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50ef71
test ecx, ecx
jle 0x50ef71
cmp dword [ebp + 0xc], 0
je 0x50ee3a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50eefa
cmp dword [ebp + 0x20], 0
je 0x50ee3a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50eefa
imul edx, dword [ebp - 0x28]
add eax, eax
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x24]
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
or dx, word [ebx + eax*4]
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50ee04
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50ec8d
jmp case.default.0x545cee
cmp dword [0x662b88], 0xff
je case.0x50ab7f.0
cmp dword [0x662b88], 0
je case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x5115f6
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x5102e2
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x50fa40
cmp dword [ebp + 0x18], 0
je 0x50f5d5
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x50f546
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50f0a7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50f0cb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50f0ef
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50f113
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50f137
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50f15b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50f17f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50f1a3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50f546
test ecx, ecx
jle 0x50f546
cmp dword [ebp + 0xc], 0
je 0x50f21a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50f4cf
cmp dword [ebp + 0x20], 0
je 0x50f21a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50f4cf
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0
je 0x50f4cf
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x50f3b6
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
mov esi, dword [ebp - 0x26c]
movzx ebx, word [ebx]
movzx edx, word [edx]
and ebx, 0xf800
and edx, 0xf800
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx esi, word [esi]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
mov ebx, dword [ebp - 0x26c]
and esi, 0x7e0
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0x10
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
imul ebx, dword [0x662b88]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0x10
add ebx, esi
mov esi, dword [ebp - 0x26c]
sar ebx, 0x10
movzx esi, word [esi]
and bx, 0x7e0
and esi, 0x1f
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
sub ebx, esi
imul ebx, eax
imul ebx, dword [0x662b88]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 0x10
or dx, bx
mov word [eax], dx
jmp 0x50f4cf
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
mov esi, dword [ebp - 0x26c]
movzx ebx, word [ebx]
movzx edx, word [edx]
sar ebx, 0xb
movzx esi, word [esi]
sar edx, 0xb
and esi, 0x7e0
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
sar esi, 5
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
imul edx, dword [0x662b88]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 0xd
add edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0xd
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sar ebx, 5
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx esi, byte [esi + 2]
imul ebx, esi
imul ebx, dword [0x662b88]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0x13
add ebx, esi
mov esi, dword [ebp - 0x26c]
sar ebx, 0x13
movzx esi, word [esi]
and bx, 0x7e0
and esi, 0x1f
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
imul ebx, dword [0x662b88]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x18
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 0x18
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50f1e4
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50f06d
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50f9b1
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50f629
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50f64d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50f671
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50f695
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50f6b9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50f6dd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50f701
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50f725
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50f9b1
test ecx, ecx
jle 0x50f9b1
cmp dword [ebp + 0xc], 0
je 0x50f79c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50f93a
cmp dword [ebp + 0x20], 0
je 0x50f79c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50f93a
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x26c]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx ebx, word [ebx]
movzx edx, word [edx]
sar ebx, 0xb
mov esi, dword [ebp - 0x26c]
sar edx, 0xb
movzx esi, word [esi]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
and esi, 0x7e0
sar esi, 5
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
imul edx, dword [0x662b88]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 0xd
add edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0xd
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sar ebx, 5
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx esi, byte [esi + 2]
imul ebx, esi
imul ebx, dword [0x662b88]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0x13
add ebx, esi
mov esi, dword [ebp - 0x26c]
sar ebx, 0x13
movzx esi, word [esi]
and bx, 0x7e0
and esi, 0x1f
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
imul ebx, dword [0x662b88]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x18
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 0x18
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50f766
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50f5ef
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x50fe9f
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x50fe10
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50fa9e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50fac2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50fae6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50fb0a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50fb2e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50fb52
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50fb76
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50fb9a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x50fe10
test ecx, ecx
jle 0x50fe10
cmp dword [ebp + 0xc], 0
je 0x50fc11
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x50fd99
cmp dword [ebp + 0x20], 0
je 0x50fc11
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x50fd99
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
cmp edx, dword [ebp - 0x38]
je 0x50fd99
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
mov esi, dword [ebp - 0x26c]
movzx ebx, word [ebx]
movzx edx, word [edx]
and ebx, 0xf800
and edx, 0xf800
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx esi, word [esi]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
mov ebx, dword [ebp - 0x26c]
and esi, 0x7e0
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0x10
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
imul ebx, dword [0x662b88]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0x10
add ebx, esi
mov esi, dword [ebp - 0x26c]
sar ebx, 0x10
movzx esi, word [esi]
and bx, 0x7e0
and esi, 0x1f
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
sub ebx, esi
imul ebx, eax
imul ebx, dword [0x662b88]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 0x10
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x50fbdb
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50fa64
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x510253
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x50fef3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x50ff17
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x50ff3b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x50ff5f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x50ff83
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x50ffa7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x50ffcb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x50ffef
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x510253
test ecx, ecx
jle 0x510253
cmp dword [ebp + 0xc], 0
je 0x510066
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5101dc
cmp dword [ebp + 0x20], 0
je 0x510066
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5101dc
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
add ebx, ebx
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x26c]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx ebx, word [ebx]
movzx edx, word [edx]
and ebx, 0xf800
and edx, 0xf800
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
mov esi, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
mov ebx, dword [ebp - 0x26c]
movzx esi, word [esi]
movzx ebx, word [ebx]
and ebx, 0xf800
and esi, 0x7e0
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0x10
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
imul ebx, dword [0x662b88]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0x10
add ebx, esi
mov esi, dword [ebp - 0x26c]
sar ebx, 0x10
movzx esi, word [esi]
and bx, 0x7e0
and esi, 0x1f
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
sub ebx, esi
imul ebx, eax
imul ebx, dword [0x662b88]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 0x10
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x510030
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x50feb9
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x510d28
cmp dword [ebp + 0x18], 0
je 0x5108a7
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x510818
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x51034d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x510371
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x510395
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5103b9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5103dd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x510401
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x510425
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x510449
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x510818
test ecx, ecx
jle 0x510818
cmp dword [ebp + 0xc], 0
je 0x5104c0
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5107a1
cmp dword [ebp + 0x20], 0
je 0x5104c0
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5107a1
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0
je 0x5107a1
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x510672
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 5
add edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 5
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sar ebx, 5
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
imul ebx, dword [0x662b88]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0xb
add ebx, esi
mov esi, dword [ebp - 0x24]
shr ebx, 0xb
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
imul ebx, dword [0x662b88]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 0x10
and bx, 0x1f
or dx, bx
mov word [eax], dx
jmp 0x5107a1
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 0xd
add edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 0xd
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sar ebx, 5
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
imul ebx, dword [0x662b88]
mov esi, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx esi, byte [esi + 2]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0x13
add ebx, esi
mov esi, dword [ebp - 0x24]
shr ebx, 0x13
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
imul ebx, dword [0x662b88]
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x18
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 0x18
and bx, 0x1f
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51048a
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x510313
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x510c99
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5108fb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51091f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x510943
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x510967
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51098b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5109af
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5109d3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5109f7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x510c99
test ecx, ecx
jle 0x510c99
cmp dword [ebp + 0xc], 0
je 0x510a6e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x510c22
cmp dword [ebp + 0x20], 0
je 0x510a6e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x510c22
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 0xd
add edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 0xd
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sar ebx, 5
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
imul ebx, dword [0x662b88]
mov esi, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx esi, byte [esi + 2]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0x13
add ebx, esi
mov esi, dword [ebp - 0x24]
shr ebx, 0x13
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
imul ebx, dword [0x662b88]
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x18
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 0x18
and bx, 0x1f
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x510a38
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5108c1
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x51119d
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x51110e
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x510d86
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x510daa
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x510dce
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x510df2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x510e16
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x510e3a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x510e5e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x510e82
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51110e
test ecx, ecx
jle 0x51110e
cmp dword [ebp + 0xc], 0
je 0x510ef9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x511097
cmp dword [ebp + 0x20], 0
je 0x510ef9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x511097
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
cmp edx, dword [ebp - 0x38]
je 0x511097
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 5
add edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 5
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sar ebx, 5
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
imul ebx, dword [0x662b88]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0xb
add ebx, esi
mov esi, dword [ebp - 0x24]
shr ebx, 0xb
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
imul ebx, dword [0x662b88]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 0x10
and bx, 0x1f
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x510ec3
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x510d4c
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x511567
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5111f1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x511215
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x511239
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51125d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x511281
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5112a5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5112c9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5112ed
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x511567
test ecx, ecx
jle 0x511567
cmp dword [ebp + 0xc], 0
je 0x511364
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5114f0
cmp dword [ebp + 0x20], 0
je 0x511364
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5114f0
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
add ebx, ebx
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 5
add edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 5
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sar ebx, 5
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
imul ebx, dword [0x662b88]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0xb
add ebx, esi
mov esi, dword [ebp - 0x24]
shr ebx, 0xb
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x1f
sub ebx, esi
imul ebx, eax
imul ebx, dword [0x662b88]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
shr ebx, 0x10
and bx, 0x1f
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51132e
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5111b7
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x512768
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x511f5c
cmp dword [ebp + 0x18], 0
je 0x511b2d
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x511a9e
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x511676
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51169a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5116be
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5116e2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x511706
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51172a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51174e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x511772
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x511a9e
test ecx, ecx
jle 0x511a9e
cmp dword [ebp + 0xc], 0
je 0x5117e9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x511a27
cmp dword [ebp + 0x20], 0
je 0x5117e9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x511a27
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 2], 0
je 0x511a27
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x51193a
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0x26c]
movzx ebx, word [ebx]
movzx eax, word [eax]
sar eax, 0xb
and ebx, 0x7e0
sar edx, 0xb
sub edx, eax
mov eax, dword [ebp - 8]
sar ebx, 5
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
add dx, ax
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
add ax, bx
mov ebx, dword [ebp - 0x26c]
shl eax, 5
movzx ebx, word [ebx]
or dx, ax
mov eax, dword [ebp - 0x270]
and ebx, 0x1f
movzx eax, word [eax]
and eax, 0x1f
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
add ax, bx
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
jmp 0x511a27
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0x26c]
and eax, 0xf800
movzx ebx, word [ebx]
movzx edx, word [edx]
and edx, 0xf800
and ebx, 0x7e0
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 2]
imul edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
and edx, 0xf800
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x270]
sar eax, 0x10
movzx edx, word [edx]
and edx, 0x7e0
and ax, 0xf800
sub edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
imul edx, dword [0x662b88]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
movzx ebx, word [ebx]
and dx, 0x7e0
and ebx, 0x1f
or ax, dx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
and edx, 0x1f
sub edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
imul edx, dword [0x662b88]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
shl ebx, 0x10
add edx, ebx
sar edx, 0x10
or ax, dx
mov edx, dword [ebp - 0x26c]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5117b3
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51163c
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x511ecd
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x511b81
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x511ba5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x511bc9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x511bed
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x511c11
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x511c35
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x511c59
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x511c7d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x511ecd
test ecx, ecx
jle 0x511ecd
cmp dword [ebp + 0xc], 0
je 0x511cf4
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x511e56
cmp dword [ebp + 0x20], 0
je 0x511cf4
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x511e56
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0x26c]
and edx, 0xf800
movzx ebx, word [ebx]
movzx eax, word [eax]
and eax, 0xf800
and ebx, 0x7e0
sub edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul edx, eax
imul edx, dword [0x662b88]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0xf800
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 0x10
movzx eax, word [eax]
and eax, 0x7e0
and dx, 0xf800
sub eax, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul eax, ebx
imul eax, dword [0x662b88]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
shl ebx, 0x10
add eax, ebx
mov ebx, dword [ebp - 0x26c]
sar eax, 0x10
movzx ebx, word [ebx]
and ax, 0x7e0
and ebx, 0x1f
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
sub eax, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul eax, ebx
imul eax, dword [0x662b88]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
shl ebx, 0x10
add eax, ebx
sar eax, 0x10
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x511cbe
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x511b47
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x512370
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5122e1
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x511fba
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x511fde
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x512002
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x512026
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51204a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51206e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x512092
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5120b6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5122e1
test ecx, ecx
jle 0x5122e1
cmp dword [ebp + 0xc], 0
je 0x51212d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51226a
cmp dword [ebp + 0x20], 0
je 0x51212d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51226a
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
cmp edx, dword [ebp - 0x38]
je 0x51226a
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0x26c]
movzx ebx, word [ebx]
movzx eax, word [eax]
sar eax, 0xb
and ebx, 0x7e0
sar edx, 0xb
sub edx, eax
mov eax, dword [ebp - 8]
sar ebx, 5
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
add dx, ax
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
add ax, bx
mov ebx, dword [ebp - 0x26c]
shl eax, 5
movzx ebx, word [ebx]
or dx, ax
mov eax, dword [ebp - 0x270]
and ebx, 0x1f
movzx eax, word [eax]
and eax, 0x1f
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
add ax, bx
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5120f7
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x511f80
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5126d9
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5123c4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5123e8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51240c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x512430
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x512454
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x512478
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51249c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5124c0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5126d9
test ecx, ecx
jle 0x5126d9
cmp dword [ebp + 0xc], 0
je 0x512537
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x512662
cmp dword [ebp + 0x20], 0
je 0x512537
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x512662
imul edx, dword [ebp - 0x28]
add eax, eax
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0x26c]
movzx ebx, word [ebx]
movzx eax, word [eax]
sar eax, 0xb
and ebx, 0x7e0
sar edx, 0xb
sub edx, eax
mov eax, dword [ebp - 8]
sar ebx, 5
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
add dx, ax
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
add ax, bx
mov ebx, dword [ebp - 0x26c]
shl eax, 5
movzx ebx, word [ebx]
or dx, ax
mov eax, dword [ebp - 0x270]
and ebx, 0x1f
movzx eax, word [eax]
and eax, 0x1f
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
add ax, bx
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x512501
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51238a
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x5130f9
cmp dword [ebp + 0x18], 0
je 0x512cb3
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x512c24
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x5127d3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5127f7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51281b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51283f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x512863
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x512887
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5128ab
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5128cf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x512c24
test ecx, ecx
jle 0x512c24
cmp dword [ebp + 0xc], 0
je 0x512946
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x512bad
cmp dword [ebp + 0x20], 0
je 0x512946
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x512bad
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 2], 0
je 0x512bad
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x512aa9
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
sub edx, eax
mov eax, dword [ebp - 8]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
add dx, ax
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
add ax, bx
mov ebx, dword [ebp - 0x24]
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
add ax, bx
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
jmp 0x512bad
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx eax, word [edx]
sar eax, 0xb
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
sar edx, 0xb
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 2]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
and edx, 0xf800
shl edx, 5
add eax, edx
mov edx, dword [ebp - 0x270]
shr eax, 5
movzx edx, word [edx]
and edx, 0x7e0
and ax, 0xf800
sar edx, 5
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub edx, ebx
mov ebx, dword [ebp - 0x270]
imul edx, dword [0x662b88]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
shl ebx, 0xb
add edx, ebx
mov ebx, dword [ebp - 0x24]
shr edx, 0xb
and dx, 0x7e0
or ax, dx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
and edx, 0x1f
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
sub edx, ebx
mov ebx, dword [ebp - 0x270]
imul edx, dword [0x662b88]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
shl ebx, 0x10
add edx, ebx
shr edx, 0x10
and dx, 0x1f
or ax, dx
mov edx, dword [ebp - 0x26c]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x512910
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x512799
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x51306a
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x512d07
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x512d2b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x512d4f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x512d73
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x512d97
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x512dbb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x512ddf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x512e03
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51306a
test ecx, ecx
jle 0x51306a
cmp dword [ebp + 0xc], 0
je 0x512e7a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x512ff3
cmp dword [ebp + 0x20], 0
je 0x512e7a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x512ff3
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
sub edx, eax
mov eax, dword [ebp - 0x270]
imul edx, dword [0x662b88]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0xf800
shl eax, 5
add edx, eax
mov eax, dword [ebp - 0x270]
shr edx, 5
movzx eax, word [eax]
and eax, 0x7e0
and dx, 0xf800
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub eax, ebx
mov ebx, dword [ebp - 0x270]
imul eax, dword [0x662b88]
movzx ebx, byte [ebx + 2]
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
shl ebx, 0xb
add eax, ebx
mov ebx, dword [ebp - 0x24]
shr eax, 0xb
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
sub eax, ebx
mov ebx, dword [ebp - 0x270]
imul eax, dword [0x662b88]
movzx ebx, byte [ebx + 2]
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
shl ebx, 0x10
add eax, ebx
shr eax, 0x10
and ax, 0x1f
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x512e44
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x512ccd
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x51351f
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x513490
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x513157
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51317b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51319f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5131c3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5131e7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51320b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51322f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x513253
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x513490
test ecx, ecx
jle 0x513490
cmp dword [ebp + 0xc], 0
je 0x5132ca
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x513419
cmp dword [ebp + 0x20], 0
je 0x5132ca
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x513419
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
cmp edx, dword [ebp - 0x38]
je 0x513419
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
sub edx, eax
mov eax, dword [ebp - 8]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
add dx, ax
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
add ax, bx
mov ebx, dword [ebp - 0x24]
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
add ax, bx
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x513294
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51311d
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x51389a
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x513573
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x513597
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5135bb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5135df
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x513603
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x513627
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51364b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51366f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51389a
test ecx, ecx
jle 0x51389a
cmp dword [ebp + 0xc], 0
je 0x5136e6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x513823
cmp dword [ebp + 0x20], 0
je 0x5136e6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x513823
imul edx, dword [ebp - 0x28]
add eax, eax
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
sub edx, eax
mov eax, dword [ebp - 8]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
add dx, ax
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
add ax, bx
mov ebx, dword [ebp - 0x24]
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
sub eax, ebx
mov ebx, dword [ebp - 8]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
add ax, bx
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5136b0
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x513539
jmp case.default.0x545cee
cmp dword [0x662b88], 0
je case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x515dcf
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x514b65
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x5142ff
cmp dword [ebp + 0x18], 0
je 0x513eb2
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x513e23
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5139c0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5139e4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x513a08
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x513a2c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x513a50
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x513a74
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x513a98
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x513abc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x513e23
test ecx, ecx
jle 0x513e23
cmp dword [ebp + 0xc], 0
je 0x513b33
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x513dac
cmp dword [ebp + 0x20], 0
je 0x513b33
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x513dac
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0
je 0x513dac
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x513cb1
mov edx, dword [ebp - 0x270]
xor ebx, ebx
mov bl, byte [eax]
movzx edx, word [edx]
movzx ebx, byte [ebx + 0x8efb38]
and edx, 0xf800
imul edx, ebx
sar edx, 0x13
mov ebx, dword [ebp - 4]
movzx esi, byte [eax]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx esi, byte [esi + 0x8efb38]
movzx ebx, word [ebx]
and ebx, 0x7e0
imul ebx, esi
sar ebx, 0xd
mov esi, dword [ebp - 4]
movzx eax, byte [eax]
mov bx, word [esi + ebx*4]
movzx eax, byte [eax + 0x8efb38]
shl ebx, 5
shl edx, 0xb
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, eax
sar ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
jmp 0x513dac
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x270]
movzx edx, word [edx]
movzx ebx, byte [ebx + 2]
and edx, 0xf800
imul edx, ebx
xor ebx, ebx
movzx esi, byte [esi + 2]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
shr edx, 0x1b
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, word [ebx]
and ebx, 0x7e0
imul ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
shr ebx, 0x15
mov esi, dword [ebp - 4]
movzx eax, byte [eax + 0x8efb38]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x270]
shl ebx, 5
movzx esi, byte [esi + 2]
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, esi
imul ebx, eax
shr ebx, 0x10
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x513afd
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x513986
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x514270
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x513f06
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x513f2a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x513f4e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x513f72
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x513f96
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x513fba
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x513fde
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x514002
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x514270
test ecx, ecx
jle 0x514270
cmp dword [ebp + 0xc], 0
je 0x514079
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5141f9
cmp dword [ebp + 0x20], 0
je 0x514079
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5141f9
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x270]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
movzx edx, word [edx]
and edx, 0xf800
mov esi, dword [ebp - 0x270]
imul edx, ebx
xor ebx, ebx
movzx esi, byte [esi + 2]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
shr edx, 0x1b
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, word [ebx]
and ebx, 0x7e0
imul ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
shr ebx, 0x15
mov esi, dword [ebp - 4]
movzx eax, byte [eax + 0x8efb38]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x270]
shl ebx, 5
movzx esi, byte [esi + 2]
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, esi
imul ebx, eax
shr ebx, 0x10
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x514043
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x513ecc
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x514740
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5146b1
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51435d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x514381
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5143a5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5143c9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5143ed
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x514411
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x514435
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x514459
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5146b1
test ecx, ecx
jle 0x5146b1
cmp dword [ebp + 0xc], 0
je 0x5144d0
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51463a
cmp dword [ebp + 0x20], 0
je 0x5144d0
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51463a
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
cmp edx, dword [ebp - 0x38]
je 0x51463a
mov edx, dword [ebp - 0x270]
xor ebx, ebx
mov bl, byte [eax]
movzx edx, word [edx]
movzx ebx, byte [ebx + 0x8efb38]
and edx, 0xf800
imul edx, ebx
sar edx, 0x13
mov ebx, dword [ebp - 4]
movzx esi, byte [eax]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx esi, byte [esi + 0x8efb38]
movzx ebx, word [ebx]
and ebx, 0x7e0
imul ebx, esi
sar ebx, 0xd
mov esi, dword [ebp - 4]
movzx eax, byte [eax]
mov bx, word [esi + ebx*4]
movzx eax, byte [eax + 0x8efb38]
shl ebx, 5
shl edx, 0xb
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, eax
sar ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51449a
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x514323
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x514ad6
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x514794
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5147b8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5147dc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x514800
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x514824
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x514848
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51486c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x514890
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x514ad6
test ecx, ecx
jle 0x514ad6
cmp dword [ebp + 0xc], 0
je 0x514907
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x514a5f
cmp dword [ebp + 0x20], 0
je 0x514907
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x514a5f
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
add ebx, ebx
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
xor ebx, ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
mov bl, byte [eax]
and edx, 0xf800
movzx esi, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
sar edx, 0x13
mov ebx, dword [ebp - 4]
movzx esi, byte [esi + 0x8efb38]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx ebx, word [ebx]
and ebx, 0x7e0
imul ebx, esi
sar ebx, 0xd
mov esi, dword [ebp - 4]
shl edx, 0xb
movzx eax, byte [eax + 0x8efb38]
mov bx, word [esi + ebx*4]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, eax
sar ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5148d1
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51475a
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x515545
cmp dword [ebp + 0x18], 0
je 0x5150e6
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x515057
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x514bd0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x514bf4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x514c18
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x514c3c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x514c60
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x514c84
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x514ca8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x514ccc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x515057
test ecx, ecx
jle 0x515057
cmp dword [ebp + 0xc], 0
je 0x514d43
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x514fe0
cmp dword [ebp + 0x20], 0
je 0x514d43
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x514fe0
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0
je 0x514fe0
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x514ed3
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
shr edx, 8
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
shr ebx, 8
mov esi, dword [ebp - 4]
movzx eax, byte [eax + 0x8efb38]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x24]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
shr ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
jmp 0x514fe0
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
shr edx, 0x10
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx esi, byte [esi + 2]
imul ebx, esi
shr ebx, 0x10
mov esi, dword [ebp - 4]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x24]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
shr ebx, 0x10
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x514d0d
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x514b96
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5154b6
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51513a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51515e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x515182
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5151a6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5151ca
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5151ee
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x515212
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x515236
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5154b6
test ecx, ecx
jle 0x5154b6
cmp dword [ebp + 0xc], 0
je 0x5152ad
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51543f
cmp dword [ebp + 0x20], 0
je 0x5152ad
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51543f
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
shr edx, 0x10
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx esi, byte [esi + 2]
imul ebx, esi
shr ebx, 0x10
mov esi, dword [ebp - 4]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x24]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
shr ebx, 0x10
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x515277
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x515100
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x515998
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x515909
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5155a3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5155c7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5155eb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51560f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x515633
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x515657
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51567b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51569f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x515909
test ecx, ecx
jle 0x515909
cmp dword [ebp + 0xc], 0
je 0x515716
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x515892
cmp dword [ebp + 0x20], 0
je 0x515716
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x515892
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
cmp edx, dword [ebp - 0x38]
je 0x515892
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
shr edx, 8
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
shr ebx, 8
mov esi, dword [ebp - 4]
movzx eax, byte [eax + 0x8efb38]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x24]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
shr ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5156e0
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x515569
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x515d40
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5159ec
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x515a10
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x515a34
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x515a58
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x515a7c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x515aa0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x515ac4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x515ae8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x515d40
test ecx, ecx
jle 0x515d40
cmp dword [ebp + 0xc], 0
je 0x515b5f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x515cc9
cmp dword [ebp + 0x20], 0
je 0x515b5f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x515cc9
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
add ebx, ebx
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
shr edx, 8
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
shr ebx, 8
mov esi, dword [ebp - 4]
movzx eax, byte [eax + 0x8efb38]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x24]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
shr ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x515b29
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5159b2
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x516ed0
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x5166ec
cmp dword [ebp + 0x18], 0
je 0x5162d7
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x516248
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x515e4f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x515e73
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x515e97
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x515ebb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x515edf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x515f03
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x515f27
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x515f4b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x516248
test ecx, ecx
jle 0x516248
cmp dword [ebp + 0xc], 0
je 0x515fc2
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5161d1
cmp dword [ebp + 0x20], 0
je 0x515fc2
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5161d1
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 2], 0
je 0x5161d1
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x5160ff
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 4]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 4]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
jmp 0x5161d1
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx eax, word [edx]
mov edx, dword [ebp - 0x270]
and eax, 0xf800
movzx ebx, byte [ebx + 2]
movzx edx, byte [edx + 2]
imul edx
sar eax, 0x13
mov edx, dword [ebp - 4]
mov ax, word [edx + eax*4]
mov edx, dword [ebp - 0x270]
shl eax, 0xb
movzx edx, word [edx]
and edx, 0x7e0
imul edx, ebx
sar edx, 0xd
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 5
movzx ebx, byte [ebx + 2]
add ax, dx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
and edx, 0x1f
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 4]
add ax, word [ebx + edx*4]
movzx eax, ax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x515f8c
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x515e15
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x51665d
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51632b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51634f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x516373
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x516397
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5163bb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5163df
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x516403
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x516427
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51665d
test ecx, ecx
jle 0x51665d
cmp dword [ebp + 0xc], 0
je 0x51649e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5165e6
cmp dword [ebp + 0x20], 0
je 0x51649e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5165e6
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx edx, word [eax]
mov eax, dword [ebp - 0x270]
and edx, 0xf800
movzx ebx, byte [ebx + 2]
movzx eax, byte [eax + 2]
imul edx, eax
sar edx, 0x13
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
imul eax, ebx
sar eax, 0xd
mov ebx, dword [ebp - 4]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x270]
shl eax, 5
movzx ebx, byte [ebx + 2]
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 4]
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x516468
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5162f1
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x516aec
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x516a5d
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51674a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51676e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x516792
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5167b6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5167da
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5167fe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x516822
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x516846
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x516a5d
test ecx, ecx
jle 0x516a5d
cmp dword [ebp + 0xc], 0
je 0x5168bd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5169e6
cmp dword [ebp + 0x20], 0
je 0x5168bd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5169e6
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
cmp edx, dword [ebp - 0x38]
je 0x5169e6
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 4]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 4]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x516887
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x516710
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x516e41
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x516b40
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x516b64
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x516b88
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x516bac
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x516bd0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x516bf4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x516c18
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x516c3c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x516e41
test ecx, ecx
jle 0x516e41
cmp dword [ebp + 0xc], 0
je 0x516cb3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x516dca
cmp dword [ebp + 0x20], 0
je 0x516cb3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x516dca
imul edx, dword [ebp - 0x28]
add eax, eax
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 4]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 4]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x516c7d
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x516b06
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x51780e
cmp dword [ebp + 0x18], 0
je 0x5173e7
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x517358
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x516f3b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x516f5f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x516f83
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x516fa7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x516fcb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x516fef
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x517013
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x517037
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x517358
test ecx, ecx
jle 0x517358
cmp dword [ebp + 0xc], 0
je 0x5170ae
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5172e1
cmp dword [ebp + 0x20], 0
je 0x5170ae
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5172e1
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 2], 0
je 0x5172e1
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x5171fd
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x24]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
jmp 0x5172e1
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx eax, word [edx]
mov edx, dword [ebp - 0x270]
and eax, 0xf800
movzx ebx, byte [ebx + 2]
movzx edx, byte [edx + 2]
imul edx
sar eax, 0x13
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 4]
mov ax, word [edx + eax*4]
mov edx, dword [ebp - 0x270]
shl eax, 0xb
movzx edx, word [edx]
and edx, 0x7e0
imul edx, ebx
sar edx, 0xd
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 5
movzx ebx, byte [ebx + 2]
add ax, dx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
and edx, 0x1f
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 4]
add ax, word [ebx + edx*4]
movzx eax, ax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x517078
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x516f01
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x51777f
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51743b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51745f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x517483
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5174a7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5174cb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5174ef
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x517513
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x517537
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51777f
test ecx, ecx
jle 0x51777f
cmp dword [ebp + 0xc], 0
je 0x5175ae
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x517708
cmp dword [ebp + 0x20], 0
je 0x5175ae
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x517708
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx edx, word [eax]
mov eax, dword [ebp - 0x270]
and edx, 0xf800
movzx ebx, byte [ebx + 2]
movzx eax, byte [eax + 2]
imul edx, eax
sar edx, 0x13
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
imul eax, ebx
sar eax, 0xd
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x270]
shl eax, 5
movzx ebx, byte [ebx + 2]
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x517578
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x517401
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x517c20
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x517b91
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51786c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x517890
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5178b4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5178d8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5178fc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x517920
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x517944
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x517968
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x517b91
test ecx, ecx
jle 0x517b91
cmp dword [ebp + 0xc], 0
je 0x5179df
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x517b1a
cmp dword [ebp + 0x20], 0
je 0x5179df
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x517b1a
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
cmp edx, dword [ebp - 0x38]
je 0x517b1a
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x24]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5179a9
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x517832
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x517f87
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x517c74
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x517c98
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x517cbc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x517ce0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x517d04
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x517d28
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x517d4c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x517d70
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x517f87
test ecx, ecx
jle 0x517f87
cmp dword [ebp + 0xc], 0
je 0x517de7
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x517f10
cmp dword [ebp + 0x20], 0
je 0x517de7
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x517f10
imul edx, dword [ebp - 0x28]
add eax, eax
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x24]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x517db1
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x517c3a
jmp case.default.0x545cee
cmp dword [0x662b88], 0
je case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x51a3fe
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x5191f3
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x5189b3
cmp dword [ebp + 0x18], 0
je 0x518579
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x5184ea
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5180ad
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5180d1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5180f5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x518119
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51813d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x518161
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x518185
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5181a9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5184ea
test ecx, ecx
jle 0x5184ea
cmp dword [ebp + 0xc], 0
je 0x518220
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x518473
cmp dword [ebp + 0x20], 0
je 0x518220
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x518473
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0
je 0x518473
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x51838b
mov edx, dword [ebp - 0x270]
xor ebx, ebx
mov bl, byte [eax]
movzx edx, word [edx]
movzx ebx, byte [ebx + 0x8efb38]
and edx, 0xf800
imul edx, ebx
sar edx, 0x13
mov ebx, dword [ebp - 4]
movzx esi, byte [eax]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx esi, byte [esi + 0x8efb38]
movzx ebx, word [ebx]
and ebx, 0x7e0
imul ebx, esi
sar ebx, 0xd
mov esi, dword [ebp - 4]
movzx eax, byte [eax]
mov bx, word [esi + ebx*4]
movzx eax, byte [eax + 0x8efb38]
shl ebx, 5
shl edx, 0xb
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, eax
sar ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
jmp 0x518473
mov edx, dword [ebp - 0x270]
xor ebx, ebx
mov bl, byte [eax]
movzx edx, word [edx]
movzx ebx, byte [ebx + 0x8efb38]
and edx, 0xf800
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx esi, byte [eax]
movzx ebx, byte [ebx + 2]
imul edx, ebx
shr edx, 0x1b
mov ebx, dword [ebp - 4]
movzx esi, byte [esi + 0x8efb38]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx ebx, word [ebx]
and ebx, 0x7e0
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx esi, byte [esi + 2]
imul ebx, esi
shr ebx, 0x15
mov esi, dword [ebp - 4]
shl edx, 0xb
mov bx, word [esi + ebx*4]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
shr ebx, 0x10
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5181ea
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x518073
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x518924
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5185cd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5185f1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x518615
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x518639
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51865d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x518681
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5186a5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5186c9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x518924
test ecx, ecx
jle 0x518924
cmp dword [ebp + 0xc], 0
je 0x518740
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5188ad
cmp dword [ebp + 0x20], 0
je 0x518740
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5188ad
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
xor ebx, ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
mov bl, byte [eax]
and edx, 0xf800
movzx esi, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx esi, byte [esi + 0x8efb38]
movzx ebx, byte [ebx + 2]
imul edx, ebx
shr edx, 0x1b
mov ebx, dword [ebp - 4]
movzx eax, byte [eax]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, word [ebx]
and ebx, 0x7e0
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx esi, byte [esi + 2]
imul ebx, esi
shr ebx, 0x15
mov esi, dword [ebp - 4]
mov bx, word [esi + ebx*4]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
shr ebx, 0x10
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51870a
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x518593
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x518de1
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x518d52
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x518a11
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x518a35
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x518a59
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x518a7d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x518aa1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x518ac5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x518ae9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x518b0d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x518d52
test ecx, ecx
jle 0x518d52
cmp dword [ebp + 0xc], 0
je 0x518b84
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x518cdb
cmp dword [ebp + 0x20], 0
je 0x518b84
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x518cdb
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
cmp edx, dword [ebp - 0x38]
je 0x518cdb
mov edx, dword [ebp - 0x270]
xor ebx, ebx
mov bl, byte [eax]
movzx edx, word [edx]
movzx ebx, byte [ebx + 0x8efb38]
and edx, 0xf800
imul edx, ebx
sar edx, 0x13
mov ebx, dword [ebp - 4]
movzx esi, byte [eax]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx esi, byte [esi + 0x8efb38]
movzx ebx, word [ebx]
and ebx, 0x7e0
imul ebx, esi
sar ebx, 0xd
mov esi, dword [ebp - 4]
movzx eax, byte [eax]
mov bx, word [esi + ebx*4]
movzx eax, byte [eax + 0x8efb38]
shl ebx, 5
shl edx, 0xb
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, eax
sar ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x518b4e
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5189d7
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x519164
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x518e35
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x518e59
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x518e7d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x518ea1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x518ec5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x518ee9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x518f0d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x518f31
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x519164
test ecx, ecx
jle 0x519164
cmp dword [ebp + 0xc], 0
je 0x518fa8
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5190ed
cmp dword [ebp + 0x20], 0
je 0x518fa8
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5190ed
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
add ebx, ebx
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
xor ebx, ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
mov bl, byte [eax]
and edx, 0xf800
movzx esi, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
sar edx, 0x13
mov ebx, dword [ebp - 4]
movzx esi, byte [esi + 0x8efb38]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx ebx, word [ebx]
and ebx, 0x7e0
imul ebx, esi
sar ebx, 0xd
mov esi, dword [ebp - 4]
shl edx, 0xb
movzx eax, byte [eax + 0x8efb38]
mov bx, word [esi + ebx*4]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, eax
sar ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x518f72
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x518dfb
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x519b9a
cmp dword [ebp + 0x18], 0
je 0x51974e
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x5196bf
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x51925e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x519282
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5192a6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5192ca
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5192ee
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x519312
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x519336
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51935a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5196bf
test ecx, ecx
jle 0x5196bf
cmp dword [ebp + 0xc], 0
je 0x5193d1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x519648
cmp dword [ebp + 0x20], 0
je 0x5193d1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x519648
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0
je 0x519648
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x51954e
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
shr edx, 8
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
shr ebx, 8
mov esi, dword [ebp - 4]
movzx eax, byte [eax + 0x8efb38]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x24]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
shr ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
jmp 0x519648
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
shr edx, 0x10
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx esi, byte [esi + 2]
imul ebx, esi
shr ebx, 0x10
mov esi, dword [ebp - 4]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x24]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
shr ebx, 0x10
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51939b
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x519224
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x519b0b
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5197a2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5197c6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5197ea
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51980e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x519832
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x519856
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51987a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51989e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x519b0b
test ecx, ecx
jle 0x519b0b
cmp dword [ebp + 0xc], 0
je 0x519915
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x519a94
cmp dword [ebp + 0x20], 0
je 0x519915
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x519a94
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
shr edx, 0x10
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx esi, byte [esi + 2]
imul ebx, esi
shr ebx, 0x10
mov esi, dword [ebp - 4]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x24]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
shr ebx, 0x10
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5198df
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x519768
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x519fda
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x519f4b
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x519bf8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x519c1c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x519c40
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x519c64
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x519c88
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x519cac
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x519cd0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x519cf4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x519f4b
test ecx, ecx
jle 0x519f4b
cmp dword [ebp + 0xc], 0
je 0x519d6b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x519ed4
cmp dword [ebp + 0x20], 0
je 0x519d6b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x519ed4
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
cmp edx, dword [ebp - 0x38]
je 0x519ed4
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
shr edx, 8
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
shr ebx, 8
mov esi, dword [ebp - 4]
movzx eax, byte [eax + 0x8efb38]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x24]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
shr ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x519d35
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x519bbe
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x51a36f
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51a02e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51a052
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51a076
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51a09a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51a0be
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51a0e2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51a106
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51a12a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51a36f
test ecx, ecx
jle 0x51a36f
cmp dword [ebp + 0xc], 0
je 0x51a1a1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51a2f8
cmp dword [ebp + 0x20], 0
je 0x51a1a1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51a2f8
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
add ebx, ebx
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
shr edx, 8
mov ebx, dword [ebp - 4]
mov dx, word [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
shl edx, 0xb
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
shr ebx, 8
mov esi, dword [ebp - 4]
movzx eax, byte [eax + 0x8efb38]
mov bx, word [esi + ebx*4]
mov esi, dword [ebp - 0x24]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
shr ebx, 8
mov eax, dword [ebp - 4]
add dx, word [eax + ebx*4]
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51a16b
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x519ff4
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x51b497
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x51acdd
cmp dword [ebp + 0x18], 0
je 0x51a8dd
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x51a84e
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51a47e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51a4a2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51a4c6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51a4ea
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51a50e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51a532
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51a556
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51a57a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51a84e
test ecx, ecx
jle 0x51a84e
cmp dword [ebp + 0xc], 0
je 0x51a5f1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51a7d7
cmp dword [ebp + 0x20], 0
je 0x51a5f1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51a7d7
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 2], 0
je 0x51a7d7
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x51a719
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 4]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 4]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
jmp 0x51a7d7
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx edx, word [eax]
mov eax, dword [ebp - 0x270]
and edx, 0xf800
movzx ebx, byte [ebx + 2]
movzx eax, byte [eax + 2]
imul edx, eax
sar edx, 0x13
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
imul eax, ebx
sar eax, 0xd
mov ebx, dword [ebp - 4]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x270]
shl eax, 5
movzx ebx, byte [ebx + 2]
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 4]
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51a5bb
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x51a444
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x51ac4e
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x51a931
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51a955
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51a979
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51a99d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51a9c1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51a9e5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51aa09
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51aa2d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51ac4e
test ecx, ecx
jle 0x51ac4e
cmp dword [ebp + 0xc], 0
je 0x51aaa4
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51abd7
cmp dword [ebp + 0x20], 0
je 0x51aaa4
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51abd7
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx edx, word [eax]
mov eax, dword [ebp - 0x270]
and edx, 0xf800
movzx ebx, byte [ebx + 2]
movzx eax, byte [eax + 2]
imul edx, eax
sar edx, 0x13
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
imul eax, ebx
sar eax, 0xd
mov ebx, dword [ebp - 4]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x270]
shl eax, 5
movzx ebx, byte [ebx + 2]
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 4]
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51aa6e
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x51a8f7
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x51b0c8
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x51b039
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x51ad3b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51ad5f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51ad83
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51ada7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51adcb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51adef
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51ae13
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51ae37
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51b039
test ecx, ecx
jle 0x51b039
cmp dword [ebp + 0xc], 0
je 0x51aeae
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51afc2
cmp dword [ebp + 0x20], 0
je 0x51aeae
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51afc2
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
cmp edx, dword [ebp - 0x38]
je 0x51afc2
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 4]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 4]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51ae78
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x51ad01
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x51b408
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x51b11c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51b140
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51b164
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51b188
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51b1ac
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51b1d0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51b1f4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51b218
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51b408
test ecx, ecx
jle 0x51b408
cmp dword [ebp + 0xc], 0
je 0x51b28f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51b391
cmp dword [ebp + 0x20], 0
je 0x51b28f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51b391
imul edx, dword [ebp - 0x28]
add eax, eax
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 4]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 4]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51b259
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x51b0e2
jmp case.default.0x545cee
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x51bd97
cmp dword [ebp + 0x18], 0
je 0x51b985
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x51b8f6
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51b502
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51b526
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51b54a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51b56e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51b592
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51b5b6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51b5da
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51b5fe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51b8f6
test ecx, ecx
jle 0x51b8f6
cmp dword [ebp + 0xc], 0
je 0x51b675
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51b87f
cmp dword [ebp + 0x20], 0
je 0x51b675
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51b87f
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 2], 0
je 0x51b87f
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x51b7af
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x24]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
jmp 0x51b87f
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx edx, word [eax]
mov eax, dword [ebp - 0x270]
and edx, 0xf800
movzx ebx, byte [ebx + 2]
movzx eax, byte [eax + 2]
imul edx, eax
sar edx, 0x13
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
imul eax, ebx
sar eax, 0xd
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x270]
shl eax, 5
movzx ebx, byte [ebx + 2]
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51b63f
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x51b4c8
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x51bd08
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x51b9d9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51b9fd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51ba21
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51ba45
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51ba69
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51ba8d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51bab1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51bad5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51bd08
test ecx, ecx
jle 0x51bd08
cmp dword [ebp + 0xc], 0
je 0x51bb4c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51bc91
cmp dword [ebp + 0x20], 0
je 0x51bb4c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51bc91
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx edx, word [eax]
mov eax, dword [ebp - 0x270]
and edx, 0xf800
movzx ebx, byte [ebx + 2]
movzx eax, byte [eax + 2]
imul edx, eax
sar edx, 0x13
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
imul eax, ebx
sar eax, 0xd
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x270]
shl eax, 5
movzx ebx, byte [ebx + 2]
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51bb16
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x51b99f
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x51c194
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x51c105
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x51bdf5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51be19
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51be3d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51be61
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51be85
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51bea9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51becd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51bef1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51c105
test ecx, ecx
jle 0x51c105
cmp dword [ebp + 0xc], 0
je 0x51bf68
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51c08e
cmp dword [ebp + 0x20], 0
je 0x51bf68
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51c08e
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
cmp edx, dword [ebp - 0x38]
je 0x51c08e
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x24]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51bf32
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x51bdbb
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x51c4e6
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x51c1e8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51c20c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51c230
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51c254
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51c278
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51c29c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51c2c0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51c2e4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51c4e6
test ecx, ecx
jle 0x51c4e6
cmp dword [ebp + 0xc], 0
je 0x51c35b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51c46f
cmp dword [ebp + 0x20], 0
je 0x51c35b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51c46f
imul edx, dword [ebp - 0x28]
add eax, eax
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dx, word [eax + edx*4]
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
mov ax, word [ebx + eax*4]
mov ebx, dword [ebp - 0x24]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 4]
add dx, word [ebx + eax*4]
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51c325
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x51c1ae
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x51e82f
mov edx, dword [0x662b98]
and edx, 0xffffff
cmp edx, 0xffffff
jne 0x51d6b6
mov ecx, dword [ebp + 0x10]
cmp dword [ecx + 0x28], 1
jne 0x51ceaa
cmp dword [ebp + 0x18], 0
je 0x51ca8a
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x51c9fb
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51c602
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51c626
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51c64a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51c66e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51c692
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51c6b6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51c6da
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51c6fe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51c9fb
test ecx, ecx
jle 0x51c9fb
cmp dword [ebp + 0xc], 0
je 0x51c775
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51c984
cmp dword [ebp + 0x20], 0
je 0x51c775
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51c984
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x51c8b6
mov edx, dword [ebp - 0x270]
xor ebx, ebx
mov bl, byte [eax]
movzx edx, word [edx]
movzx ebx, byte [ebx + 0x8efb38]
sar edx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx esi, byte [eax]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx esi, byte [esi + 0x8efb38]
movzx ebx, word [ebx]
and ebx, 0x7e0
movzx eax, byte [eax]
sar ebx, 5
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
sar ebx, 9
and bx, 0x7e0
sar edx, 2
and dx, 0xf800
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
sar ebx, 0xd
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
jmp 0x51c984
mov edx, dword [ebp - 0x270]
xor ebx, ebx
mov bl, byte [eax]
movzx edx, word [edx]
movzx ebx, byte [ebx + 0x8efb38]
sar edx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx esi, byte [eax]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx esi, byte [esi + 0x8efb38]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx ebx, word [ebx]
and ebx, 0x7e0
movzx eax, byte [eax + 0x8efb38]
sar ebx, 5
imul ebx, esi
mov esi, dword [ebp - 0x270]
sar edx, 0xa
movzx esi, byte [esi + 2]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
and dx, 0xf800
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
sar ebx, 0x11
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
sar ebx, 0x15
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51c73f
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51c5c8
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x51ce1b
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51cade
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51cb02
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51cb26
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51cb4a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51cb6e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51cb92
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51cbb6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51cbda
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51ce1b
test ecx, ecx
jle 0x51ce1b
cmp dword [ebp + 0xc], 0
je 0x51cc51
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51cda4
cmp dword [ebp + 0x20], 0
je 0x51cc51
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51cda4
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
xor ebx, ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
mov bl, byte [eax]
movzx esi, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
sar edx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx esi, byte [esi + 0x8efb38]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul ebx, esi
mov esi, dword [ebp - 0x270]
sar edx, 0xa
movzx esi, byte [esi + 2]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
and dx, 0xf800
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
sar ebx, 0x11
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
sar ebx, 0x15
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51cc1b
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51caa4
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x51d2be
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x51d22f
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51cf08
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51cf2c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51cf50
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51cf74
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51cf98
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51cfbc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51cfe0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51d004
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51d22f
test ecx, ecx
jle 0x51d22f
cmp dword [ebp + 0xc], 0
je 0x51d07b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51d1b8
cmp dword [ebp + 0x20], 0
je 0x51d07b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51d1b8
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
cmp edx, dword [ebp - 0x38]
je 0x51d1b8
mov edx, dword [ebp - 0x270]
xor ebx, ebx
mov bl, byte [eax]
movzx edx, word [edx]
movzx ebx, byte [ebx + 0x8efb38]
sar edx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx esi, byte [eax]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx esi, byte [esi + 0x8efb38]
movzx ebx, word [ebx]
and ebx, 0x7e0
movzx eax, byte [eax]
sar ebx, 5
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
sar ebx, 9
and bx, 0x7e0
sar edx, 2
and dx, 0xf800
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
sar ebx, 0xd
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51d045
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51cece
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x51d627
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51d312
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51d336
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51d35a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51d37e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51d3a2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51d3c6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51d3ea
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51d40e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51d627
test ecx, ecx
jle 0x51d627
cmp dword [ebp + 0xc], 0
je 0x51d485
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51d5b0
cmp dword [ebp + 0x20], 0
je 0x51d485
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51d5b0
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
add ebx, ebx
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
xor ebx, ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
mov bl, byte [eax]
movzx esi, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
sar edx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx esi, byte [esi + 0x8efb38]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx ebx, word [ebx]
and ebx, 0x7e0
movzx eax, byte [eax + 0x8efb38]
sar ebx, 5
imul ebx, esi
mov esi, dword [ebp - 0x26c]
sar edx, 2
movzx esi, word [esi]
and esi, 0x7e0
and dx, 0xf800
sar esi, 5
imul ebx, esi
sar ebx, 9
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
sar ebx, 0xd
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51d44f
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51d2d8
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x51dfff
cmp dword [ebp + 0x18], 0
je 0x51dbcd
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x51db3e
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x51d721
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51d745
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51d769
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51d78d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51d7b1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51d7d5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51d7f9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51d81d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51db3e
test ecx, ecx
jle 0x51db3e
cmp dword [ebp + 0xc], 0
je 0x51d894
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51dac7
cmp dword [ebp + 0x20], 0
je 0x51d894
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51dac7
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x51d9e7
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 2
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
shr ebx, 9
mov esi, dword [ebp - 0x24]
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
shr ebx, 0xd
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
jmp 0x51dac7
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 0xa
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sar ebx, 5
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x270]
movzx esi, byte [esi + 2]
imul ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
shr ebx, 0x11
mov esi, dword [ebp - 0x24]
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x270]
movzx esi, byte [esi + 2]
imul ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
shr ebx, 0x15
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51d85e
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51d6e7
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x51df70
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51dc21
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51dc45
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51dc69
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51dc8d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51dcb1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51dcd5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51dcf9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51dd1d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51df70
test ecx, ecx
jle 0x51df70
cmp dword [ebp + 0xc], 0
je 0x51dd94
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51def9
cmp dword [ebp + 0x20], 0
je 0x51dd94
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51def9
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 0xa
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sar ebx, 5
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x270]
movzx esi, byte [esi + 2]
imul ebx, esi
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
shr ebx, 0x11
mov esi, dword [ebp - 0x24]
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
mov esi, dword [ebp - 0x270]
movzx esi, byte [esi + 2]
imul ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
shr ebx, 0x15
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51dd5e
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51dbe7
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x51e425
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x51e396
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51e05d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51e081
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51e0a5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51e0c9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51e0ed
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51e111
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51e135
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51e159
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51e396
test ecx, ecx
jle 0x51e396
cmp dword [ebp + 0xc], 0
je 0x51e1d0
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51e31f
cmp dword [ebp + 0x20], 0
je 0x51e1d0
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51e31f
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
cmp edx, dword [ebp - 0x38]
je 0x51e31f
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 2
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
shr ebx, 9
mov esi, dword [ebp - 0x24]
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
shr ebx, 0xd
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51e19a
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51e023
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x51e7a0
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51e479
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51e49d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51e4c1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51e4e5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51e509
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51e52d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51e551
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51e575
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51e7a0
test ecx, ecx
jle 0x51e7a0
cmp dword [ebp + 0xc], 0
je 0x51e5ec
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51e729
cmp dword [ebp + 0x20], 0
je 0x51e5ec
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51e729
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
add ebx, ebx
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x1c]
add eax, edx
mov edx, dword [ebp - 0x270]
mov esi, dword [ebp - 0x20]
movzx edx, word [edx]
sar edx, 0xb
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
shr edx, 2
movzx ebx, word [ebx]
and ebx, 0x7e0
and dx, 0xf800
sar ebx, 5
mov ebx, dword [esi + ebx*4]
movzx esi, byte [eax]
movzx eax, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
shr ebx, 9
mov esi, dword [ebp - 0x24]
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov ebx, dword [esi + ebx*4]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
shr ebx, 0xd
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51e5b6
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51e43f
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x51f849
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x51f0b7
cmp dword [ebp + 0x18], 0
je 0x51ecd1
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x51ec42
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51e8af
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51e8d3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51e8f7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51e91b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51e93f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51e963
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51e987
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51e9ab
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51ec42
test ecx, ecx
jle 0x51ec42
cmp dword [ebp + 0xc], 0
je 0x51ea22
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51ebcb
cmp dword [ebp + 0x20], 0
je 0x51ea22
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51ebcb
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 2], 0xff
jne 0x51eb28
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0x26c]
and eax, 0xf800
movzx ebx, word [ebx]
movzx edx, word [edx]
and edx, 0xf800
and ebx, 0x7e0
imul edx
mov edx, dword [ebp - 0x270]
sar eax, 0x10
movzx edx, word [edx]
and edx, 0x7e0
imul edx, ebx
sar edx, 0xb
mov ebx, dword [ebp - 0x26c]
and dx, 0x7e0
movzx ebx, word [ebx]
and ax, 0xf800
and ebx, 0x1f
or ax, dx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
and edx, 0x1f
imul edx, ebx
sar edx, 5
or ax, dx
mov edx, dword [ebp - 0x26c]
mov word [edx], ax
jmp 0x51ebcb
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx eax, word [eax]
movzx edx, byte [edx + 2]
sar eax, 0xb
imul edx
mov edx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
movzx edx, word [edx]
sar edx, 0xb
imul edx
mov edx, dword [ebp - 0x270]
sar eax, 2
movzx edx, word [edx]
and edx, 0x7e0
and ax, 0xf800
sar edx, 5
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul edx, ebx
sar edx, 9
mov ebx, dword [ebp - 0x270]
and dx, 0x7e0
movzx ebx, byte [ebx + 2]
or ax, dx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
and edx, 0x1f
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
imul edx, ebx
sar edx, 0xd
or ax, dx
mov edx, dword [ebp - 0x26c]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51e9ec
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51e875
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x51f028
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51ed25
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51ed49
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51ed6d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51ed91
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51edb5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51edd9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51edfd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51ee21
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51f028
test ecx, ecx
jle 0x51f028
cmp dword [ebp + 0xc], 0
je 0x51ee98
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51efb1
cmp dword [ebp + 0x20], 0
je 0x51ee98
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51efb1
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx edx, word [eax]
mov eax, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
movzx eax, byte [eax + 2]
sar edx, 0xb
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 2
movzx eax, word [eax]
and eax, 0x7e0
and dx, 0xf800
sar eax, 5
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul eax, ebx
sar eax, 9
mov ebx, dword [ebp - 0x270]
and ax, 0x7e0
movzx ebx, byte [ebx + 2]
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
imul eax, ebx
sar eax, 0xd
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51ee62
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51eceb
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x51f48c
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x51f3fd
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51f115
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51f139
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51f15d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51f181
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51f1a5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51f1c9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51f1ed
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51f211
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51f3fd
test ecx, ecx
jle 0x51f3fd
cmp dword [ebp + 0xc], 0
je 0x51f288
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51f386
cmp dword [ebp + 0x20], 0
je 0x51f288
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51f386
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
cmp edx, dword [ebp - 0x38]
je 0x51f386
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0x26c]
and edx, 0xf800
movzx ebx, word [ebx]
movzx eax, word [eax]
and eax, 0xf800
and ebx, 0x7e0
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 0x10
movzx eax, word [eax]
and eax, 0x7e0
imul eax, ebx
sar eax, 0xb
mov ebx, dword [ebp - 0x26c]
and ax, 0x7e0
movzx ebx, word [ebx]
and dx, 0xf800
and ebx, 0x1f
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
imul eax, ebx
sar eax, 5
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51f252
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51f0db
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x51f7ba
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51f4e0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51f504
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51f528
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51f54c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51f570
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51f594
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51f5b8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51f5dc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51f7ba
test ecx, ecx
jle 0x51f7ba
cmp dword [ebp + 0xc], 0
je 0x51f653
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51f743
cmp dword [ebp + 0x20], 0
je 0x51f653
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51f743
imul edx, dword [ebp - 0x28]
add eax, eax
add eax, dword [ebp - 0x258]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0x26c]
and edx, 0xf800
movzx ebx, word [ebx]
movzx eax, word [eax]
and eax, 0xf800
and ebx, 0x7e0
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 0x10
movzx eax, word [eax]
and eax, 0x7e0
imul eax, ebx
sar eax, 0xb
mov ebx, dword [ebp - 0x26c]
and ax, 0x7e0
movzx ebx, word [ebx]
and dx, 0xf800
and ebx, 0x1f
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
imul eax, ebx
sar eax, 5
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51f61d
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51f4a6
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x5200f2
cmp dword [ebp + 0x18], 0
je 0x51fcfa
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x51fc6b
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x51f8b4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51f8d8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51f8fc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51f920
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51f944
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51f968
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51f98c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51f9b0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x51fc6b
test ecx, ecx
jle 0x51fc6b
cmp dword [ebp + 0xc], 0
je 0x51fa27
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51fbf4
cmp dword [ebp + 0x20], 0
je 0x51fa27
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51fbf4
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 2], 0xff
jne 0x51fb3f
mov edx, dword [ebp - 0x270]
movzx eax, word [edx]
sar eax, 0xb
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
sar edx, 0xb
imul edx
shl eax, 6
and ax, 0xf800
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
and edx, 0x7e0
sar edx, 5
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul edx, ebx
shr edx, 1
and dx, 0x7e0
or ax, dx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
and edx, 0x1f
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
imul edx, ebx
shr edx, 5
or ax, dx
mov edx, dword [ebp - 0x26c]
mov word [edx], ax
jmp 0x51fbf4
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
sar eax, 0xb
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 2]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
sar edx, 0xb
imul edx
shr eax, 2
and ax, 0xf800
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
and edx, 0x7e0
sar edx, 5
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul edx, ebx
shr edx, 9
and dx, 0x7e0
or ax, dx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
and edx, 0x1f
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
imul edx, ebx
shr edx, 0xd
or ax, dx
mov edx, dword [ebp - 0x26c]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51f9f1
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51f87a
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x520063
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x51fd4e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x51fd72
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x51fd96
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x51fdba
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x51fdde
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x51fe02
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x51fe26
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x51fe4a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x520063
test ecx, ecx
jle 0x520063
cmp dword [ebp + 0xc], 0
je 0x51fec1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x51ffec
cmp dword [ebp + 0x20], 0
je 0x51fec1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x51ffec
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
imul edx, eax
shr edx, 2
and dx, 0xf800
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul eax, ebx
shr eax, 9
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
imul eax, ebx
shr eax, 0xd
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x51fe8b
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x51fd14
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x5204dd
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52044e
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x520150
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x520174
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x520198
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5201bc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5201e0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x520204
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x520228
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52024c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52044e
test ecx, ecx
jle 0x52044e
cmp dword [ebp + 0xc], 0
je 0x5202c3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5203d7
cmp dword [ebp + 0x20], 0
je 0x5202c3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5203d7
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
cmp edx, dword [ebp - 0x38]
je 0x5203d7
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
imul edx, eax
shl edx, 6
and dx, 0xf800
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul eax, ebx
shr eax, 1
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
imul eax, ebx
shr eax, 5
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x52028d
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x520116
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52081d
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x520531
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x520555
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x520579
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52059d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5205c1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5205e5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x520609
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52062d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52081d
test ecx, ecx
jle 0x52081d
cmp dword [ebp + 0xc], 0
je 0x5206a4
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5207a6
cmp dword [ebp + 0x20], 0
je 0x5206a4
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5207a6
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
imul edx, eax
shl edx, 6
and dx, 0xf800
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul eax, ebx
shr eax, 1
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
imul eax, ebx
shr eax, 5
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x52066e
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5204f7
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x20], 1
jne 0x52aceb
mov edx, dword [0x662b84]
cmp edx, 4
ja case.default.0x545cee
jmp dword [edx*4 + 0x5208cf]
cmp dword [ebp + 0x1c], 0
je 0x5219f9
mov ecx, dword [0x662b98]
and ecx, 0xffffff
cmp ecx, 0xffffff
jne 0x52116d
cmp dword [ebp + 0x18], 0
je 0x520d47
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x520cb8
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x520963
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x520987
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5209ab
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5209cf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5209f3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x520a17
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x520a3b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x520a5f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x520cb8
test ecx, ecx
jle 0x520cb8
cmp dword [ebp + 0xc], 0
je 0x520ad7
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x520c41
cmp dword [ebp + 0x20], 0
je 0x520ad7
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x520c41
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x520c41
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x520aa1
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x520929
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5210de
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x520d9b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x520dbf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x520de3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x520e07
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x520e2b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x520e4f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x520e73
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x520e97
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5210de
test ecx, ecx
jle 0x5210de
cmp dword [ebp + 0xc], 0
je 0x520f0f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x521067
cmp dword [ebp + 0x20], 0
je 0x520f0f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x521067
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x520ed9
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x520d61
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x5215c1
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x521532
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5211cb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5211ef
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x521213
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x521237
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52125b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52127f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5212a3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5212c7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x521532
test ecx, ecx
jle 0x521532
cmp dword [ebp + 0xc], 0
je 0x52133f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5214bb
cmp dword [ebp + 0x20], 0
je 0x52133f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5214bb
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x5214bb
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 8
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 8
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 8
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x521309
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x521191
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52196a
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x521615
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x521639
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52165d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x521681
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5216a5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5216c9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5216ed
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x521711
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52196a
test ecx, ecx
jle 0x52196a
cmp dword [ebp + 0xc], 0
je 0x521789
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5218f3
cmp dword [ebp + 0x20], 0
je 0x521789
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5218f3
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 8
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 8
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 8
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x521753
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5215db
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x5220d5
cmp dword [ebp + 0x18], 0
je 0x521d7e
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x521cef
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x521a6c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x521a90
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x521ab4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x521ad8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x521afc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x521b20
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x521b44
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x521b68
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x521cef
test ecx, ecx
jle 0x521cef
cmp dword [ebp + 0xc], 0
je 0x521be0
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x521c78
cmp dword [ebp + 0x20], 0
je 0x521be0
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x521c78
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x521c78
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x521baa
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x521a32
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x522046
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x521dd2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x521df6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x521e1a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x521e3e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x521e62
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x521e86
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x521eaa
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x521ece
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x522046
test ecx, ecx
jle 0x522046
cmp dword [ebp + 0xc], 0
je 0x521f46
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x521fcf
cmp dword [ebp + 0x20], 0
je 0x521f46
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x521fcf
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x521f10
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x521d98
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x522498
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x522409
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x522133
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x522157
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52217b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52219f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5221c3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5221e7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52220b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52222f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x522409
test ecx, ecx
jle 0x522409
cmp dword [ebp + 0xc], 0
je 0x5222a7
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x522392
cmp dword [ebp + 0x20], 0
je 0x5222a7
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x522392
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x522392
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x24]
mov dl, byte [eax + edx*4]
mov eax, dword [ebp - 0x26c]
mov byte [eax], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x20]
mov al, byte [edx + eax*4]
mov edx, dword [ebp - 0x26c]
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 2]
mov eax, dword [ebp - 0x1c]
mov dl, byte [eax + edx*4]
mov eax, dword [ebp - 0x26c]
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x522271
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5220f9
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5227af
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5224ec
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x522510
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x522534
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x522558
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52257c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5225a0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5225c4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5225e8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5227af
test ecx, ecx
jle 0x5227af
cmp dword [ebp + 0xc], 0
je 0x522660
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x522738
cmp dword [ebp + 0x20], 0
je 0x522660
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x522738
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x24]
mov dl, byte [eax + edx*4]
mov eax, dword [ebp - 0x26c]
mov byte [eax], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x20]
mov al, byte [edx + eax*4]
mov edx, dword [ebp - 0x26c]
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 2]
mov eax, dword [ebp - 0x1c]
mov dl, byte [eax + edx*4]
mov eax, dword [ebp - 0x26c]
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52262a
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5224b2
jmp case.default.0x545cee
cmp dword [0x662b88], 0xff
je case.0x5208c8.0
cmp dword [0x662b88], 0
je case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x5239c2
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x52310c
cmp dword [ebp + 0x18], 0
je 0x522cd1
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x522c42
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x5228d8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5228fc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x522920
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x522944
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x522968
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52298c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5229b0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5229d4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x522c42
test ecx, ecx
jle 0x522c42
cmp dword [ebp + 0xc], 0
je 0x522a4c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x522bcb
cmp dword [ebp + 0x20], 0
je 0x522a4c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x522bcb
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x522bcb
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, dword [0x662b88]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x522a16
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52289e
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52307d
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x522d25
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x522d49
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x522d6d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x522d91
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x522db5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x522dd9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x522dfd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x522e21
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52307d
test ecx, ecx
jle 0x52307d
cmp dword [ebp + 0xc], 0
je 0x522e99
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x523006
cmp dword [ebp + 0x20], 0
je 0x522e99
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x523006
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, dword [0x662b88]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x522e63
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x522ceb
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x523575
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5234e6
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52316a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52318e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5231b2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5231d6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5231fa
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52321e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x523242
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x523266
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5234e6
test ecx, ecx
jle 0x5234e6
cmp dword [ebp + 0xc], 0
je 0x5232de
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52346f
cmp dword [ebp + 0x20], 0
je 0x5232de
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52346f
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x52346f
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, dword [0x662b88]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5232a8
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x523130
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x523933
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5235c9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5235ed
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x523611
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x523635
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x523659
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52367d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5236a1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5236c5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x523933
test ecx, ecx
jle 0x523933
cmp dword [ebp + 0xc], 0
je 0x52373d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5238bc
cmp dword [ebp + 0x20], 0
je 0x52373d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5238bc
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, dword [0x662b88]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x523707
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52358f
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x5241f8
cmp dword [ebp + 0x18], 0
je 0x523df6
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x523d67
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x523a35
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x523a59
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x523a7d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x523aa1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x523ac5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x523ae9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x523b0d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x523b31
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x523d67
test ecx, ecx
jle 0x523d67
cmp dword [ebp + 0xc], 0
je 0x523ba9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x523cf0
cmp dword [ebp + 0x20], 0
je 0x523ba9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x523cf0
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x523cf0
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x26c]
imul edx, dword [0x662b88]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x523b73
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5239fb
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x524169
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x523e4a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x523e6e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x523e92
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x523eb6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x523eda
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x523efe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x523f22
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x523f46
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x524169
test ecx, ecx
jle 0x524169
cmp dword [ebp + 0xc], 0
je 0x523fbe
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5240f2
cmp dword [ebp + 0x20], 0
je 0x523fbe
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5240f2
imul edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x26c]
imul edx, dword [0x662b88]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x523f88
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x523e10
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x524629
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52459a
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x524256
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52427a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52429e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5242c2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5242e6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52430a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52432e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x524352
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52459a
test ecx, ecx
jle 0x52459a
cmp dword [ebp + 0xc], 0
je 0x5243ca
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x524523
cmp dword [ebp + 0x20], 0
je 0x5243ca
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x524523
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x524523
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x26c]
imul edx, dword [0x662b88]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x524394
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52421c
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5249ae
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52467d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5246a1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5246c5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5246e9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52470d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x524731
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x524755
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x524779
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5249ae
test ecx, ecx
jle 0x5249ae
cmp dword [ebp + 0xc], 0
je 0x5247f1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x524937
cmp dword [ebp + 0x20], 0
je 0x5247f1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x524937
imul edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x26c]
imul edx, dword [0x662b88]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5247bb
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x524643
jmp case.default.0x545cee
cmp dword [0x662b88], 0
je case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x525ba9
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x5252f7
cmp dword [ebp + 0x18], 0
je 0x524ebe
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x524e2f
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x524ac7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x524aeb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x524b0f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x524b33
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x524b57
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x524b7b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x524b9f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x524bc3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x524e2f
test ecx, ecx
jle 0x524e2f
cmp dword [ebp + 0xc], 0
je 0x524c3b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x524db8
cmp dword [ebp + 0x20], 0
je 0x524c3b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x524db8
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x524db8
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
imul edx, eax
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x524c05
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x524a8d
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x525268
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x524f12
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x524f36
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x524f5a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x524f7e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x524fa2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x524fc6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x524fea
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52500e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x525268
test ecx, ecx
jle 0x525268
cmp dword [ebp + 0xc], 0
je 0x525086
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5251f1
cmp dword [ebp + 0x20], 0
je 0x525086
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5251f1
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
imul edx, eax
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x525050
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x524ed8
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x52575e
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5256cf
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x525355
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x525379
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52539d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5253c1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5253e5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x525409
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52542d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x525451
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5256cf
test ecx, ecx
jle 0x5256cf
cmp dword [ebp + 0xc], 0
je 0x5254c9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x525658
cmp dword [ebp + 0x20], 0
je 0x5254c9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x525658
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x525658
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
imul edx, eax
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x525493
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52531b
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x525b1a
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5257b2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5257d6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5257fa
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52581e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x525842
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x525866
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52588a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5258ae
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x525b1a
test ecx, ecx
jle 0x525b1a
cmp dword [ebp + 0xc], 0
je 0x525926
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x525aa3
cmp dword [ebp + 0x20], 0
je 0x525926
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x525aa3
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
imul edx, eax
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5258f0
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x525778
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x5263c7
cmp dword [ebp + 0x18], 0
je 0x525fd1
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x525f42
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x525c1c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x525c40
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x525c64
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x525c88
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x525cac
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x525cd0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x525cf4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x525d18
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x525f42
test ecx, ecx
jle 0x525f42
cmp dword [ebp + 0xc], 0
je 0x525d90
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x525ecb
cmp dword [ebp + 0x20], 0
je 0x525d90
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x525ecb
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x525ecb
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 1]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 2]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x525d5a
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x525be2
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x526338
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x526025
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x526049
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52606d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x526091
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5260b5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5260d9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5260fd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x526121
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x526338
test ecx, ecx
jle 0x526338
cmp dword [ebp + 0xc], 0
je 0x526199
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5262c1
cmp dword [ebp + 0x20], 0
je 0x526199
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5262c1
imul edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 1]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 2]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x526163
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x525feb
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x5267ec
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52675d
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x526425
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x526449
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52646d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x526491
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5264b5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5264d9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5264fd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x526521
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52675d
test ecx, ecx
jle 0x52675d
cmp dword [ebp + 0xc], 0
je 0x526599
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5266e6
cmp dword [ebp + 0x20], 0
je 0x526599
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5266e6
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x5266e6
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 1]
mov eax, dword [ebp - 0x20]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 2]
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x526563
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5263eb
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x526b65
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x526840
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x526864
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x526888
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5268ac
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5268d0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5268f4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x526918
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52693c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x526b65
test ecx, ecx
jle 0x526b65
cmp dword [ebp + 0xc], 0
je 0x5269b4
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x526aee
cmp dword [ebp + 0x20], 0
je 0x5269b4
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x526aee
imul edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 1]
mov eax, dword [ebp - 0x20]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 2]
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52697e
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x526806
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x527cfb
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x527475
cmp dword [ebp + 0x18], 0
je 0x527052
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x526fc3
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x526c71
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x526c95
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x526cb9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x526cdd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x526d01
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x526d25
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x526d49
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x526d6d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x526fc3
test ecx, ecx
jle 0x526fc3
cmp dword [ebp + 0xc], 0
je 0x526de5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x526f4c
cmp dword [ebp + 0x20], 0
je 0x526de5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x526f4c
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x526f4c
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
imul edx, eax
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x526daf
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x526c37
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x5273e6
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x5270a6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5270ca
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5270ee
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x527112
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x527136
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52715a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52717e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5271a2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5273e6
test ecx, ecx
jle 0x5273e6
cmp dword [ebp + 0xc], 0
je 0x52721a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52736f
cmp dword [ebp + 0x20], 0
je 0x52721a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52736f
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
imul edx, eax
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5271e4
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x52706c
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x5278c6
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x527837
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x5274d3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5274f7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52751b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52753f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x527563
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x527587
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5275ab
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5275cf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x527837
test ecx, ecx
jle 0x527837
cmp dword [ebp + 0xc], 0
je 0x527647
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5277c0
cmp dword [ebp + 0x20], 0
je 0x527647
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5277c0
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x5277c0
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
imul edx, eax
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x527611
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x527499
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x527c6c
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x52791a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52793e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x527962
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x527986
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5279aa
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5279ce
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5279f2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x527a16
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x527c6c
test ecx, ecx
jle 0x527c6c
cmp dword [ebp + 0xc], 0
je 0x527a8e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x527bf5
cmp dword [ebp + 0x20], 0
je 0x527a8e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x527bf5
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
imul edx, eax
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x527a58
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x5278e0
jmp case.default.0x545cee
mov edx, dword [0x662b98]
and edx, 0xffffff
cmp edx, 0xffffff
jne 0x5284f4
cmp dword [ebp + 0x18], 0
je 0x528112
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x528083
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x527d71
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x527d95
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x527db9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x527ddd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x527e01
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x527e25
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x527e49
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x527e6d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x528083
test ecx, ecx
jle 0x528083
cmp dword [ebp + 0xc], 0
je 0x527ee5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52800c
cmp dword [ebp + 0x20], 0
je 0x527ee5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52800c
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x52800c
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 1]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 2]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x274]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
and edx, dword [ebp - 0x14]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x527eaf
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x527d37
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x528465
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x528166
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52818a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5281ae
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5281d2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5281f6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52821a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52823e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x528262
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x528465
test ecx, ecx
jle 0x528465
cmp dword [ebp + 0xc], 0
je 0x5282da
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5283ee
cmp dword [ebp + 0x20], 0
je 0x5282da
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5283ee
imul edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 1]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 2]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x274]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
and edx, dword [ebp - 0x14]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5282a4
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52812c
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x528905
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x528876
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x528552
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x528576
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52859a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5285be
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5285e2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x528606
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52862a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52864e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x528876
test ecx, ecx
jle 0x528876
cmp dword [ebp + 0xc], 0
je 0x5286c6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5287ff
cmp dword [ebp + 0x20], 0
je 0x5286c6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5287ff
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x5287ff
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 1]
mov eax, dword [ebp - 0x20]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 2]
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x274]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
and edx, dword [ebp - 0x14]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x528690
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x528518
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x528c6a
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x528959
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52897d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5289a1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5289c5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5289e9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x528a0d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x528a31
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x528a55
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x528c6a
test ecx, ecx
jle 0x528c6a
cmp dword [ebp + 0xc], 0
je 0x528acd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x528bf3
cmp dword [ebp + 0x20], 0
je 0x528acd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x528bf3
imul edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 1]
mov eax, dword [ebp - 0x20]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4 + 2]
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x274]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
and edx, dword [ebp - 0x14]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x528a97
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52891f
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x529d68
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x52952e
cmp dword [ebp + 0x18], 0
je 0x529131
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x5290a2
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x528d76
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x528d9a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x528dbe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x528de2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x528e06
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x528e2a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x528e4e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x528e72
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5290a2
test ecx, ecx
jle 0x5290a2
cmp dword [ebp + 0xc], 0
je 0x528eea
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52902b
cmp dword [ebp + 0x20], 0
je 0x528eea
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52902b
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x52902b
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x528eb4
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x528d3c
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52949f
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x529185
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5291a9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5291cd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5291f1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x529215
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x529239
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52925d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x529281
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52949f
test ecx, ecx
jle 0x52949f
cmp dword [ebp + 0xc], 0
je 0x5292f9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x529428
cmp dword [ebp + 0x20], 0
je 0x5292f9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x529428
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5292c3
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52914b
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x529959
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5298ca
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52958c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5295b0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5295d4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5295f8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52961c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x529640
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x529664
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x529688
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5298ca
test ecx, ecx
jle 0x5298ca
cmp dword [ebp + 0xc], 0
je 0x529700
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x529853
cmp dword [ebp + 0x20], 0
je 0x529700
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x529853
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x529853
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5296ca
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x529552
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x529cd9
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5299ad
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5299d1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5299f5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x529a19
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x529a3d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x529a61
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x529a85
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x529aa9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x529cd9
test ecx, ecx
jle 0x529cd9
cmp dword [ebp + 0xc], 0
je 0x529b21
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x529c62
cmp dword [ebp + 0x20], 0
je 0x529b21
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x529c62
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebx + edx*4]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x529aeb
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x529973
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x52a522
cmp dword [ebp + 0x18], 0
je 0x52a15e
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x52a0cf
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x529ddb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x529dff
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x529e23
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x529e47
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x529e6b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x529e8f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x529eb3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x529ed7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52a0cf
test ecx, ecx
jle 0x52a0cf
cmp dword [ebp + 0xc], 0
je 0x529f4f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52a058
cmp dword [ebp + 0x20], 0
je 0x529f4f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52a058
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x52a058
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x529f19
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x529da1
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52a493
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52a1b2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52a1d6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52a1fa
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52a21e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52a242
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52a266
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52a28a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52a2ae
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52a493
test ecx, ecx
jle 0x52a493
cmp dword [ebp + 0xc], 0
je 0x52a326
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52a41c
cmp dword [ebp + 0x20], 0
je 0x52a326
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52a41c
imul edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52a2f0
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52a178
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x52a915
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52a886
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52a580
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52a5a4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52a5c8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52a5ec
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52a610
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52a634
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52a658
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52a67c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52a886
test ecx, ecx
jle 0x52a886
cmp dword [ebp + 0xc], 0
je 0x52a6f4
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52a80f
cmp dword [ebp + 0x20], 0
je 0x52a6f4
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52a80f
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x52a80f
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
imul edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52a6be
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52a546
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52ac5c
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52a969
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52a98d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52a9b1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52a9d5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52a9f9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52aa1d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52aa41
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52aa65
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52ac5c
test ecx, ecx
jle 0x52ac5c
cmp dword [ebp + 0xc], 0
je 0x52aadd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52abe5
cmp dword [ebp + 0x20], 0
je 0x52aadd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52abe5
imul edx, dword [ebp - 0x28]
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
imul edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52aaa7
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52a92f
jmp case.default.0x545cee
mov eax, dword [0x662b84]
cmp eax, 4
ja case.default.0x545cee
jmp dword [eax*4 + 0x52ad00]
cmp dword [ebp + 0x1c], 0
je 0x52d0a2
mov edx, dword [0x662b98]
and edx, 0xffffff
cmp edx, 0xffffff
jne 0x52bebf
mov ecx, dword [ebp + 0x10]
cmp dword [ecx + 0x28], 1
jne 0x52b68e
cmp dword [ebp + 0x18], 0
je 0x52b25c
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52b1cd
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52ada1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52adc5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52ade9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52ae0d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52ae31
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52ae55
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52ae79
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52ae9d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52b1cd
test ecx, ecx
jle 0x52b1cd
cmp dword [ebp + 0xc], 0
je 0x52af15
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52b156
cmp dword [ebp + 0x20], 0
je 0x52af15
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52b156
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0
je 0x52b156
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x52b077
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
movzx edx, byte [edx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
movzx edx, byte [edx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 2]
movzx edx, byte [edx + 2]
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax + 2], dl
jmp 0x52b156
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
movzx edx, byte [edx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
movzx edx, byte [edx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 2]
movzx edx, byte [edx + 2]
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52aedf
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52ad67
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52b5ff
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52b2b0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52b2d4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52b2f8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52b31c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52b340
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52b364
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52b388
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52b3ac
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52b5ff
test ecx, ecx
jle 0x52b5ff
cmp dword [ebp + 0xc], 0
je 0x52b424
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52b588
cmp dword [ebp + 0x20], 0
je 0x52b424
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52b588
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x26c]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx edx, byte [edx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
movzx edx, byte [edx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 2]
movzx edx, byte [edx + 2]
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52b3ee
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52b276
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x52bab4
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52ba25
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52b6ec
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52b710
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52b734
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52b758
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52b77c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52b7a0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52b7c4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52b7e8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52ba25
test ecx, ecx
jle 0x52ba25
cmp dword [ebp + 0xc], 0
je 0x52b860
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52b9ae
cmp dword [ebp + 0x20], 0
je 0x52b860
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52b9ae
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
mov edx, dword [edx]
cmp edx, dword [ebp - 0x38]
je 0x52b9ae
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
movzx edx, byte [edx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
movzx edx, byte [edx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 2]
movzx edx, byte [edx + 2]
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52b82a
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52b6b2
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52be30
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52bb08
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52bb2c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52bb50
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52bb74
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52bb98
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52bbbc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52bbe0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52bc04
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52be30
test ecx, ecx
jle 0x52be30
cmp dword [ebp + 0xc], 0
je 0x52bc7c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52bdb9
cmp dword [ebp + 0x20], 0
je 0x52bc7c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52bdb9
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x26c]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx edx, byte [edx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
movzx edx, byte [edx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 2]
movzx edx, byte [edx + 2]
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52bc46
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52bace
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x52c84d
cmp dword [ebp + 0x18], 0
je 0x52c409
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x52c37a
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x52bf2a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52bf4e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52bf72
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52bf96
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52bfba
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52bfde
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52c002
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52c026
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52c37a
test ecx, ecx
jle 0x52c37a
cmp dword [ebp + 0xc], 0
je 0x52c09e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52c303
cmp dword [ebp + 0x20], 0
je 0x52c09e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52c303
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0
je 0x52c303
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x52c212
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x24]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 8
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 8
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 8
mov byte [eax + 2], dl
jmp 0x52c303
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x24]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52c068
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52bef0
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52c7be
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52c45d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52c481
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52c4a5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52c4c9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52c4ed
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52c511
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52c535
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52c559
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52c7be
test ecx, ecx
jle 0x52c7be
cmp dword [ebp + 0xc], 0
je 0x52c5d1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52c747
cmp dword [ebp + 0x20], 0
je 0x52c5d1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52c747
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x24]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52c59b
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52c423
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x52cc85
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52cbf6
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52c8ab
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52c8cf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52c8f3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52c917
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52c93b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52c95f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52c983
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52c9a7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52cbf6
test ecx, ecx
jle 0x52cbf6
cmp dword [ebp + 0xc], 0
je 0x52ca1f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52cb7f
cmp dword [ebp + 0x20], 0
je 0x52ca1f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52cb7f
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
mov edx, dword [edx]
cmp edx, dword [ebp - 0x38]
je 0x52cb7f
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x24]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 8
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 8
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 8
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52c9e9
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52c871
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52d013
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52ccd9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52ccfd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52cd21
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52cd45
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52cd69
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52cd8d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52cdb1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52cdd5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52d013
test ecx, ecx
jle 0x52d013
cmp dword [ebp + 0xc], 0
je 0x52ce4d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52cf9c
cmp dword [ebp + 0x20], 0
je 0x52ce4d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52cf9c
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x24]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 8
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 8
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 8
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52ce17
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52cc9f
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x52dfa4
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x52d8ef
cmp dword [ebp + 0x18], 0
je 0x52d4f6
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x52d467
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52d122
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52d146
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52d16a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52d18e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52d1b2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52d1d6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52d1fa
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52d21e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52d467
test ecx, ecx
jle 0x52d467
cmp dword [ebp + 0xc], 0
je 0x52d296
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52d3f0
cmp dword [ebp + 0x20], 0
je 0x52d296
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52d3f0
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 3], 0
je 0x52d3f0
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x52d33c
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
jmp 0x52d3f0
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx]
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
movzx eax, byte [eax + 1]
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
movzx eax, byte [eax + 2]
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52d260
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52d0e8
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52d860
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52d54a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52d56e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52d592
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52d5b6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52d5da
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52d5fe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52d622
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52d646
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52d860
test ecx, ecx
jle 0x52d860
cmp dword [ebp + 0xc], 0
je 0x52d6be
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52d7e9
cmp dword [ebp + 0x20], 0
je 0x52d6be
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52d7e9
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
movzx eax, byte [eax + 2]
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52d688
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52d510
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x52dc55
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52dbc6
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52d94d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52d971
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52d995
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52d9b9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52d9dd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52da01
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52da25
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52da49
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52dbc6
test ecx, ecx
jle 0x52dbc6
cmp dword [ebp + 0xc], 0
je 0x52dac1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52db4f
cmp dword [ebp + 0x20], 0
je 0x52dac1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52db4f
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
cmp edx, dword [ebp - 0x38]
je 0x52db4f
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52da8b
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52d913
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52df15
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52dca9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52dccd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52dcf1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52dd15
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52dd39
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52dd5d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52dd81
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52dda5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52df15
test ecx, ecx
jle 0x52df15
cmp dword [ebp + 0xc], 0
je 0x52de1d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52de9e
cmp dword [ebp + 0x20], 0
je 0x52de1d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52de9e
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52dde7
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52dc6f
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x52e83c
cmp dword [ebp + 0x18], 0
je 0x52e431
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x52e3a2
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x52e00f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52e033
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52e057
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52e07b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52e09f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52e0c3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52e0e7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52e10b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52e3a2
test ecx, ecx
jle 0x52e3a2
cmp dword [ebp + 0xc], 0
je 0x52e183
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52e32b
cmp dword [ebp + 0x20], 0
je 0x52e183
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52e32b
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 3], 0
je 0x52e32b
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x52e265
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov dl, byte [eax + edx*4]
mov eax, dword [ebp - 0x26c]
mov byte [eax], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x20]
mov al, byte [edx + eax*4]
mov edx, dword [ebp - 0x26c]
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax + 2]
mov eax, dword [ebp - 0x1c]
mov dl, byte [eax + edx*4]
mov eax, dword [ebp - 0x26c]
mov byte [eax + 2], dl
jmp 0x52e32b
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx]
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x20]
movzx eax, byte [eax + 1]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [eax + 2]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52e14d
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52dfd5
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52e7ad
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52e485
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52e4a9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52e4cd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52e4f1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52e515
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52e539
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52e55d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52e581
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52e7ad
test ecx, ecx
jle 0x52e7ad
cmp dword [ebp + 0xc], 0
je 0x52e5f9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52e736
cmp dword [ebp + 0x20], 0
je 0x52e5f9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52e736
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [eax + 2]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52e5c3
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52e44b
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x52ebde
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52eb4f
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52e89a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52e8be
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52e8e2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52e906
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52e92a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52e94e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52e972
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52e996
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52eb4f
test ecx, ecx
jle 0x52eb4f
cmp dword [ebp + 0xc], 0
je 0x52ea0e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52ead8
cmp dword [ebp + 0x20], 0
je 0x52ea0e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52ead8
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
cmp edx, dword [ebp - 0x38]
je 0x52ead8
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov dl, byte [eax + edx*4]
mov eax, dword [ebp - 0x26c]
mov byte [eax], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x20]
mov al, byte [edx + eax*4]
mov edx, dword [ebp - 0x26c]
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax + 2]
mov eax, dword [ebp - 0x1c]
mov dl, byte [eax + edx*4]
mov eax, dword [ebp - 0x26c]
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52e9d8
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52e860
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52eeda
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52ec32
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52ec56
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52ec7a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52ec9e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52ecc2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52ece6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52ed0a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52ed2e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52eeda
test ecx, ecx
jle 0x52eeda
cmp dword [ebp + 0xc], 0
je 0x52eda6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52ee63
cmp dword [ebp + 0x20], 0
je 0x52eda6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52ee63
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov dl, byte [eax + edx*4]
mov eax, dword [ebp - 0x26c]
mov byte [eax], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x20]
mov al, byte [edx + eax*4]
mov edx, dword [ebp - 0x26c]
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax + 2]
mov eax, dword [ebp - 0x1c]
mov dl, byte [eax + edx*4]
mov eax, dword [ebp - 0x26c]
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52ed70
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52ebf8
jmp case.default.0x545cee
cmp dword [0x662b88], 0xff
je case.0x52acf9.0
cmp dword [0x662b88], 0
je case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x5313e3
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x530197
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x52f93c
cmp dword [ebp + 0x18], 0
je 0x52f4f5
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x52f466
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52f010
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52f034
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52f058
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52f07c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52f0a0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52f0c4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52f0e8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52f10c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52f466
test ecx, ecx
jle 0x52f466
cmp dword [ebp + 0xc], 0
je 0x52f184
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52f3ef
cmp dword [ebp + 0x20], 0
je 0x52f184
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52f3ef
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0
je 0x52f3ef
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x52f2fb
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
movzx edx, byte [edx]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
movzx edx, byte [edx + 1]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 2]
movzx edx, byte [edx + 2]
sub edx, ebx
imul edx, dword [0x662b88]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
jmp 0x52f3ef
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
movzx edx, byte [edx]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x18
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
movzx edx, byte [edx + 1]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x18
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 2]
movzx edx, byte [edx + 2]
sub edx, ebx
imul edx, dword [0x662b88]
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x18
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52f14e
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52efd6
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52f8ad
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52f549
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52f56d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52f591
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52f5b5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52f5d9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52f5fd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52f621
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52f645
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52f8ad
test ecx, ecx
jle 0x52f8ad
cmp dword [ebp + 0xc], 0
je 0x52f6bd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52f836
cmp dword [ebp + 0x20], 0
je 0x52f6bd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52f836
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x26c]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx edx, byte [edx]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x18
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
movzx edx, byte [edx + 1]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x18
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 2]
movzx edx, byte [edx + 2]
sub edx, ebx
imul edx, dword [0x662b88]
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x18
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52f687
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52f50f
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x52fd77
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x52fce8
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52f99a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52f9be
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52f9e2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52fa06
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52fa2a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52fa4e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52fa72
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52fa96
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x52fce8
test ecx, ecx
jle 0x52fce8
cmp dword [ebp + 0xc], 0
je 0x52fb0e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x52fc71
cmp dword [ebp + 0x20], 0
je 0x52fb0e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x52fc71
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
mov edx, dword [edx]
cmp edx, dword [ebp - 0x38]
je 0x52fc71
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
movzx edx, byte [edx]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
movzx edx, byte [edx + 1]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 2]
movzx edx, byte [edx + 2]
sub edx, ebx
imul edx, dword [0x662b88]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52fad8
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52f960
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x530108
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x52fdcb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x52fdef
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x52fe13
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x52fe37
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x52fe5b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x52fe7f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x52fea3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x52fec7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x530108
test ecx, ecx
jle 0x530108
cmp dword [ebp + 0xc], 0
je 0x52ff3f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x530091
cmp dword [ebp + 0x20], 0
je 0x52ff3f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x530091
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x26c]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx edx, byte [edx]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
movzx edx, byte [edx + 1]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 2]
movzx edx, byte [edx + 2]
sub edx, ebx
imul edx, dword [0x662b88]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x52ff09
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x52fd91
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x530b64
cmp dword [ebp + 0x18], 0
je 0x53070b
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x53067c
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x530202
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x530226
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53024a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53026e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x530292
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5302b6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5302da
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5302fe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53067c
test ecx, ecx
jle 0x53067c
cmp dword [ebp + 0xc], 0
je 0x530376
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x530605
cmp dword [ebp + 0x20], 0
je 0x530376
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x530605
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0
je 0x530605
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x5304ff
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x24]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, dword [0x662b88]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [eax + 2], dl
jmp 0x530605
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x24]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x18
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x18
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x18
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x18
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, dword [0x662b88]
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x18
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x18
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x530340
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5301c8
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x530ad5
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53075f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x530783
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5307a7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5307cb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5307ef
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x530813
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x530837
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53085b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x530ad5
test ecx, ecx
jle 0x530ad5
cmp dword [ebp + 0xc], 0
je 0x5308d3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x530a5e
cmp dword [ebp + 0x20], 0
je 0x5308d3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x530a5e
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x24]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x18
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x18
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x18
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x18
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, dword [0x662b88]
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x18
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x18
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53089d
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x530725
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x530fb1
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x530f22
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x530bc2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x530be6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x530c0a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x530c2e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x530c52
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x530c76
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x530c9a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x530cbe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x530f22
test ecx, ecx
jle 0x530f22
cmp dword [ebp + 0xc], 0
je 0x530d36
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x530eab
cmp dword [ebp + 0x20], 0
je 0x530d36
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x530eab
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
mov edx, dword [edx]
cmp edx, dword [ebp - 0x38]
je 0x530eab
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x24]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, dword [0x662b88]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x530d00
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x530b88
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x531354
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x531005
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x531029
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53104d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x531071
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x531095
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5310b9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5310dd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x531101
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x531354
test ecx, ecx
jle 0x531354
cmp dword [ebp + 0xc], 0
je 0x531179
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5312dd
cmp dword [ebp + 0x20], 0
je 0x531179
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5312dd
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x24]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
imul edx, dword [0x662b88]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
imul edx, dword [0x662b88]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x531143
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x530fcb
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x5324d5
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x531cec
cmp dword [ebp + 0x18], 0
je 0x5318e0
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x531851
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x531463
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x531487
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5314ab
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5314cf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5314f3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x531517
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53153b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53155f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x531851
test ecx, ecx
jle 0x531851
cmp dword [ebp + 0xc], 0
je 0x5315d7
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5317da
cmp dword [ebp + 0x20], 0
je 0x5315d7
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5317da
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 3], 0
je 0x5317da
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x531715
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x26c]
imul edx, dword [0x662b88]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
movzx eax, byte [eax + 2]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
jmp 0x5317da
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx]
movzx eax, byte [eax]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx]
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
movzx eax, byte [eax + 1]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
movzx eax, byte [eax + 2]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5315a1
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x531429
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x531c5d
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x531934
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x531958
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53197c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5319a0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5319c4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5319e8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x531a0c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x531a30
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x531c5d
test ecx, ecx
jle 0x531c5d
cmp dword [ebp + 0xc], 0
je 0x531aa8
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x531be6
cmp dword [ebp + 0x20], 0
je 0x531aa8
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x531be6
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x270]
imul edx, dword [0x662b88]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
movzx eax, byte [eax + 2]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x531a72
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5318fa
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x5320ee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x53205f
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x531d4a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x531d6e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x531d92
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x531db6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x531dda
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x531dfe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x531e22
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x531e46
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53205f
test ecx, ecx
jle 0x53205f
cmp dword [ebp + 0xc], 0
je 0x531ebe
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x531fe8
cmp dword [ebp + 0x20], 0
je 0x531ebe
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x531fe8
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
cmp edx, dword [ebp - 0x38]
je 0x531fe8
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x26c]
imul edx, dword [0x662b88]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
movzx eax, byte [eax + 2]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x531e88
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x531d10
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x532446
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x532142
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x532166
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53218a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5321ae
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5321d2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5321f6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53221a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53223e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x532446
test ecx, ecx
jle 0x532446
cmp dword [ebp + 0xc], 0
je 0x5322b6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5323cf
cmp dword [ebp + 0x20], 0
je 0x5322b6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5323cf
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x26c]
imul edx, dword [0x662b88]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
movzx eax, byte [eax + 2]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x532280
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x532108
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x532dff
cmp dword [ebp + 0x18], 0
je 0x5329e1
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x532952
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x532540
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x532564
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x532588
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5325ac
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5325d0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5325f4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x532618
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53263c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x532952
test ecx, ecx
jle 0x532952
cmp dword [ebp + 0xc], 0
je 0x5326b4
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5328db
cmp dword [ebp + 0x20], 0
je 0x5326b4
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5328db
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 3], 0
je 0x5328db
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x532804
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x26c]
imul edx, dword [0x662b88]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [eax + 2]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 2], al
jmp 0x5328db
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x24]
movzx eax, byte [eax]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx]
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 0x10
mov byte [edx], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x20]
movzx eax, byte [eax + 1]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 0x10
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [eax + 2]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 0x10
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53267e
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x532506
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x532d70
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x532a35
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x532a59
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x532a7d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x532aa1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x532ac5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x532ae9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x532b0d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x532b31
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x532d70
test ecx, ecx
jle 0x532d70
cmp dword [ebp + 0xc], 0
je 0x532ba9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x532cf9
cmp dword [ebp + 0x20], 0
je 0x532ba9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x532cf9
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x270]
imul edx, dword [0x662b88]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 0x10
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [eax + 2]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 0x10
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x532b73
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5329fb
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x533213
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x533184
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x532e5d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x532e81
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x532ea5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x532ec9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x532eed
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x532f11
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x532f35
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x532f59
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x533184
test ecx, ecx
jle 0x533184
cmp dword [ebp + 0xc], 0
je 0x532fd1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53310d
cmp dword [ebp + 0x20], 0
je 0x532fd1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53310d
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
cmp edx, dword [ebp - 0x38]
je 0x53310d
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x26c]
imul edx, dword [0x662b88]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [eax + 2]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x532f9b
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x532e23
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x53357d
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x533267
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53328b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5332af
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5332d3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5332f7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53331b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53333f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x533363
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53357d
test ecx, ecx
jle 0x53357d
cmp dword [ebp + 0xc], 0
je 0x5333db
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x533506
cmp dword [ebp + 0x20], 0
je 0x5333db
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x533506
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x26c]
imul edx, dword [0x662b88]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [eax + 2]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
imul dword [0x662b88]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5333a5
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53322d
jmp case.default.0x545cee
cmp dword [0x662b88], 0
je case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x535a62
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x534820
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x533fc9
cmp dword [ebp + 0x18], 0
je 0x533b84
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x533af5
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5336a3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5336c7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5336eb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53370f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x533733
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x533757
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53377b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53379f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x533af5
test ecx, ecx
jle 0x533af5
cmp dword [ebp + 0xc], 0
je 0x533817
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x533a7e
cmp dword [ebp + 0x20], 0
je 0x533817
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x533a7e
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0
je 0x533a7e
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x53398c
xor ebx, ebx
mov edx, dword [ebp - 0x270]
mov bl, byte [eax]
movzx edx, byte [edx]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
xor ebx, ebx
mov byte [ebp - 0x274], dl
mov bl, byte [eax]
mov edx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 0x8efb38]
movzx edx, byte [edx + 1]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
imul edx, eax
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
jmp 0x533a7e
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
movzx edx, byte [edx]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
movzx edx, byte [edx + 1]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x18
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 3]
movzx edx, byte [edx + 2]
imul edx, ebx
imul edx, eax
imul edx, dword [0x662b88]
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5337e1
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x533669
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x533f3a
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x533bd8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x533bfc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x533c20
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x533c44
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x533c68
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x533c8c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x533cb0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x533cd4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x533f3a
test ecx, ecx
jle 0x533f3a
cmp dword [ebp + 0xc], 0
je 0x533d4c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x533ec3
cmp dword [ebp + 0x20], 0
je 0x533d4c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x533ec3
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x270]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
movzx edx, byte [edx]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
movzx edx, byte [edx + 1]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x18
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 3]
movzx edx, byte [edx + 2]
imul edx, ebx
imul edx, eax
imul edx, dword [0x662b88]
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x533d16
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x533b9e
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x534402
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x534373
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x534027
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53404b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53406f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x534093
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5340b7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5340db
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5340ff
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x534123
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x534373
test ecx, ecx
jle 0x534373
cmp dword [ebp + 0xc], 0
je 0x53419b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5342fc
cmp dword [ebp + 0x20], 0
je 0x53419b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5342fc
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
mov edx, dword [edx]
cmp edx, dword [ebp - 0x38]
je 0x5342fc
xor ebx, ebx
mov edx, dword [ebp - 0x270]
mov bl, byte [eax]
movzx edx, byte [edx]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
xor ebx, ebx
mov byte [ebp - 0x274], dl
mov bl, byte [eax]
mov edx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 0x8efb38]
movzx edx, byte [edx + 1]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
imul edx, eax
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x534165
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x533fed
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x534791
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x534456
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53447a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53449e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5344c2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5344e6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53450a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53452e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x534552
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x534791
test ecx, ecx
jle 0x534791
cmp dword [ebp + 0xc], 0
je 0x5345ca
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53471a
cmp dword [ebp + 0x20], 0
je 0x5345ca
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53471a
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
xor ebx, ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
xor ebx, ebx
mov byte [ebp - 0x274], dl
mov bl, byte [eax]
mov edx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 0x8efb38]
movzx edx, byte [edx + 1]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
imul edx, eax
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x534594
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53441c
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x5351e7
cmp dword [ebp + 0x18], 0
je 0x534d90
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x534d01
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x53488b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5348af
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5348d3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5348f7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53491b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53493f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x534963
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x534987
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x534d01
test ecx, ecx
jle 0x534d01
cmp dword [ebp + 0xc], 0
je 0x5349ff
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x534c8a
cmp dword [ebp + 0x20], 0
je 0x5349ff
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x534c8a
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0
je 0x534c8a
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x534b86
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x24]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
imul edx, eax
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
jmp 0x534c8a
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x24]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x18
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
imul edx, eax
imul edx, dword [0x662b88]
shr edx, 0x18
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5349c9
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x534851
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x535158
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x534de4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x534e08
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x534e2c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x534e50
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x534e74
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x534e98
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x534ebc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x534ee0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x535158
test ecx, ecx
jle 0x535158
cmp dword [ebp + 0xc], 0
je 0x534f58
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5350e1
cmp dword [ebp + 0x20], 0
je 0x534f58
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5350e1
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x24]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x18
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
imul edx, eax
imul edx, dword [0x662b88]
shr edx, 0x18
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x534f22
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x534daa
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x535632
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5355a3
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x535245
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x535269
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53528d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5352b1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5352d5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5352f9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53531d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x535341
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5355a3
test ecx, ecx
jle 0x5355a3
cmp dword [ebp + 0xc], 0
je 0x5353b9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53552c
cmp dword [ebp + 0x20], 0
je 0x5353b9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53552c
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
mov edx, dword [edx]
cmp edx, dword [ebp - 0x38]
je 0x53552c
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x24]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
imul edx, eax
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x535383
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53520b
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5359d3
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x535686
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5356aa
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5356ce
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5356f2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x535716
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53573a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53575e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x535782
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5359d3
test ecx, ecx
jle 0x5359d3
cmp dword [ebp + 0xc], 0
je 0x5357fa
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53595c
cmp dword [ebp + 0x20], 0
je 0x5357fa
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53595c
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x24]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
imul edx, eax
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5357c4
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53564c
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x536b2b
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x53635a
cmp dword [ebp + 0x18], 0
je 0x535f51
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x535ec2
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x535ae2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x535b06
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x535b2a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x535b4e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x535b72
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x535b96
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x535bba
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x535bde
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x535ec2
test ecx, ecx
jle 0x535ec2
cmp dword [ebp + 0xc], 0
je 0x535c56
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x535e4b
cmp dword [ebp + 0x20], 0
je 0x535c56
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x535e4b
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 3], 0
je 0x535e4b
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x535d88
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 1]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 2]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
jmp 0x535e4b
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
imul dword [0x662b88]
sar eax, 0x10
mov byte [ebp - 0x274], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
movzx eax, byte [eax + 1]
imul edx
imul dword [0x662b88]
sar eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
movzx eax, byte [eax + 2]
imul edx
imul dword [0x662b88]
sar eax, 0x10
mov byte [ebp - 0x272], al
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x535c20
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x535aa8
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5362cb
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x535fa5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x535fc9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x535fed
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x536011
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x536035
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x536059
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53607d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5360a1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5362cb
test ecx, ecx
jle 0x5362cb
cmp dword [ebp + 0xc], 0
je 0x536119
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x536254
cmp dword [ebp + 0x20], 0
je 0x536119
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x536254
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
imul edx, dword [0x662b88]
sar edx, 0x10
xor eax, eax
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
imul dword [0x662b88]
sar eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
movzx eax, byte [eax + 2]
imul edx
imul dword [0x662b88]
sar eax, 0x10
mov byte [ebp - 0x272], al
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5360e3
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x535f6b
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x536750
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5366c1
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5363b8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5363dc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x536400
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x536424
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x536448
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53646c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x536490
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5364b4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5366c1
test ecx, ecx
jle 0x5366c1
cmp dword [ebp + 0xc], 0
je 0x53652c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53664a
cmp dword [ebp + 0x20], 0
je 0x53652c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53664a
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
cmp edx, dword [ebp - 0x38]
je 0x53664a
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 1]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 2]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5364f6
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53637e
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x536a9c
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5367a4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5367c8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5367ec
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x536810
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x536834
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x536858
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53687c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5368a0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x536a9c
test ecx, ecx
jle 0x536a9c
cmp dword [ebp + 0xc], 0
je 0x536918
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x536a25
cmp dword [ebp + 0x20], 0
je 0x536918
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x536a25
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 1]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 2]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5368e2
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53676a
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x537444
cmp dword [ebp + 0x18], 0
je 0x537029
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x536f9a
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x536b96
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x536bba
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x536bde
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x536c02
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x536c26
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x536c4a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x536c6e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x536c92
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x536f9a
test ecx, ecx
jle 0x536f9a
cmp dword [ebp + 0xc], 0
je 0x536d0a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x536f23
cmp dword [ebp + 0x20], 0
je 0x536d0a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x536f23
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 3], 0
je 0x536f23
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x536e4e
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 1]
mov eax, dword [ebp - 0x20]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 2]
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
jmp 0x536f23
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
imul dword [0x662b88]
shr eax, 0x10
mov byte [ebp - 0x274], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x20]
movzx eax, byte [eax + 1]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
imul dword [0x662b88]
shr eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [eax + 2]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
imul dword [0x662b88]
shr eax, 0x10
mov byte [ebp - 0x272], al
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x536cd4
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x536b5c
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5373b5
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53707d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5370a1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5370c5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5370e9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53710d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x537131
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x537155
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x537179
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5373b5
test ecx, ecx
jle 0x5373b5
cmp dword [ebp + 0xc], 0
je 0x5371f1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53733e
cmp dword [ebp + 0x20], 0
je 0x5371f1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53733e
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
imul edx, dword [0x662b88]
shr edx, 0x10
xor eax, eax
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
imul dword [0x662b88]
shr eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [eax + 2]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
imul dword [0x662b88]
shr eax, 0x10
mov byte [ebp - 0x272], al
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5371bb
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x537043
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x53784c
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5377bd
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5374a2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5374c6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5374ea
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53750e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x537532
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x537556
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53757a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53759e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5377bd
test ecx, ecx
jle 0x5377bd
cmp dword [ebp + 0xc], 0
je 0x537616
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x537746
cmp dword [ebp + 0x20], 0
je 0x537616
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x537746
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
cmp edx, dword [ebp - 0x38]
je 0x537746
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 1]
mov eax, dword [ebp - 0x20]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 2]
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5375e0
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x537468
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x537baa
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5378a0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5378c4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5378e8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53790c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x537930
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x537954
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x537978
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53799c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x537baa
test ecx, ecx
jle 0x537baa
cmp dword [ebp + 0xc], 0
je 0x537a14
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x537b33
cmp dword [ebp + 0x20], 0
je 0x537a14
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x537b33
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 1]
mov eax, dword [ebp - 0x20]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 2]
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5379de
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x537866
jmp case.default.0x545cee
cmp dword [0x662b88], 0
je case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x539fb3
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x538ddf
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x5385b4
cmp dword [ebp + 0x18], 0
je 0x538185
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x5380f6
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x537cd0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x537cf4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x537d18
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x537d3c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x537d60
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x537d84
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x537da8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x537dcc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5380f6
test ecx, ecx
jle 0x5380f6
cmp dword [ebp + 0xc], 0
je 0x537e44
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53807f
cmp dword [ebp + 0x20], 0
je 0x537e44
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53807f
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0
je 0x53807f
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x537fa3
xor ebx, ebx
mov edx, dword [ebp - 0x270]
mov bl, byte [eax]
movzx edx, byte [edx]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
xor ebx, ebx
mov byte [ebp - 0x274], dl
mov bl, byte [eax]
mov edx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 0x8efb38]
movzx edx, byte [edx + 1]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
imul edx, eax
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
jmp 0x53807f
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
movzx edx, byte [edx]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
movzx edx, byte [edx + 1]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x18
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 3]
movzx edx, byte [edx + 2]
imul edx, ebx
imul edx, eax
imul edx, dword [0x662b88]
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x537e0e
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x537c96
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x538525
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x5381d9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5381fd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x538221
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x538245
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x538269
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53828d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5382b1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5382d5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x538525
test ecx, ecx
jle 0x538525
cmp dword [ebp + 0xc], 0
je 0x53834d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5384ae
cmp dword [ebp + 0x20], 0
je 0x53834d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5384ae
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x270]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
movzx edx, byte [edx]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
movzx edx, byte [edx + 1]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x18
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 3]
movzx edx, byte [edx + 2]
imul edx, ebx
imul edx, eax
imul edx, dword [0x662b88]
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x538317
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x53819f
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x5389d7
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x538948
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x538612
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x538636
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53865a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53867e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5386a2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5386c6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5386ea
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53870e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x538948
test ecx, ecx
jle 0x538948
cmp dword [ebp + 0xc], 0
je 0x538786
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5388d1
cmp dword [ebp + 0x20], 0
je 0x538786
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5388d1
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
mov edx, dword [edx]
cmp edx, dword [ebp - 0x38]
je 0x5388d1
xor ebx, ebx
mov edx, dword [ebp - 0x270]
mov bl, byte [eax]
movzx edx, byte [edx]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
xor ebx, ebx
mov byte [ebp - 0x274], dl
mov bl, byte [eax]
mov edx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 0x8efb38]
movzx edx, byte [edx + 1]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
imul edx, eax
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x538750
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x5385d8
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x538d50
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x538a2b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x538a4f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x538a73
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x538a97
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x538abb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x538adf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x538b03
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x538b27
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x538d50
test ecx, ecx
jle 0x538d50
cmp dword [ebp + 0xc], 0
je 0x538b9f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x538cd9
cmp dword [ebp + 0x20], 0
je 0x538b9f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x538cd9
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
xor ebx, ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
xor ebx, ebx
mov byte [ebp - 0x274], dl
mov bl, byte [eax]
mov edx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 0x8efb38]
movzx edx, byte [edx + 1]
imul edx, ebx
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
imul edx, eax
imul edx, dword [0x662b88]
sar edx, 0x10
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x538b69
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x5389f1
jmp case.default.0x545cee
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x539764
cmp dword [ebp + 0x18], 0
je 0x539323
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x539294
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x538e4a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x538e6e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x538e92
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x538eb6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x538eda
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x538efe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x538f22
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x538f46
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x539294
test ecx, ecx
jle 0x539294
cmp dword [ebp + 0xc], 0
je 0x538fbe
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53921d
cmp dword [ebp + 0x20], 0
je 0x538fbe
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53921d
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0
je 0x53921d
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x53912f
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x24]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
imul edx, eax
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
jmp 0x53921d
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x24]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x18
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
imul edx, eax
imul edx, dword [0x662b88]
shr edx, 0x18
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x538f88
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x538e10
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x5396d5
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x539377
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53939b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5393bf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5393e3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x539407
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53942b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53944f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x539473
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5396d5
test ecx, ecx
jle 0x5396d5
cmp dword [ebp + 0xc], 0
je 0x5394eb
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53965e
cmp dword [ebp + 0x20], 0
je 0x5394eb
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53965e
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x24]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x18
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
imul edx, eax
imul edx, dword [0x662b88]
shr edx, 0x18
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5394b5
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x53933d
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x539b99
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x539b0a
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x5397c2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5397e6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53980a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53982e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x539852
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x539876
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53989a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5398be
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x539b0a
test ecx, ecx
jle 0x539b0a
cmp dword [ebp + 0xc], 0
je 0x539936
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x539a93
cmp dword [ebp + 0x20], 0
je 0x539936
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x539a93
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
mov edx, dword [edx]
cmp edx, dword [ebp - 0x38]
je 0x539a93
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x24]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
imul edx, eax
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x539900
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x539788
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x539f24
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x539bed
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x539c11
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x539c35
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x539c59
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x539c7d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x539ca1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x539cc5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x539ce9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x539f24
test ecx, ecx
jle 0x539f24
cmp dword [ebp + 0xc], 0
je 0x539d61
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x539ead
cmp dword [ebp + 0x20], 0
je 0x539d61
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x539ead
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x24]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x273], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
imul edx, eax
imul edx, dword [0x662b88]
shr edx, 0x10
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x539d2b
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x539bb3
jmp case.default.0x545cee
mov edx, dword [0x662b98]
and edx, 0xffffff
cmp edx, 0xffffff
jne 0x53b019
mov ecx, dword [ebp + 0x10]
cmp dword [ecx + 0x28], 1
jne 0x53a870
cmp dword [ebp + 0x18], 0
je 0x53a47c
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x53a3ed
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53a036
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53a05a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53a07e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53a0a2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53a0c6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53a0ea
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53a10e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53a132
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53a3ed
test ecx, ecx
jle 0x53a3ed
cmp dword [ebp + 0xc], 0
je 0x53a1aa
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53a376
cmp dword [ebp + 0x20], 0
je 0x53a1aa
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53a376
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 3], 0
je 0x53a376
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x53a2c8
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 1]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 2]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x274]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
and edx, dword [ebp - 0x14]
mov dword [eax], edx
jmp 0x53a376
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
imul dword [0x662b88]
sar eax, 0x10
mov byte [ebp - 0x274], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
movzx eax, byte [eax + 1]
imul edx
imul dword [0x662b88]
sar eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
movzx eax, byte [eax + 2]
imul edx
imul dword [0x662b88]
sar eax, 0x10
mov byte [ebp - 0x272], al
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
mov eax, dword [eax]
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53a174
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x539ffc
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x53a7e1
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x53a4d0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53a4f4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53a518
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53a53c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53a560
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53a584
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53a5a8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53a5cc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53a7e1
test ecx, ecx
jle 0x53a7e1
cmp dword [ebp + 0xc], 0
je 0x53a644
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53a76a
cmp dword [ebp + 0x20], 0
je 0x53a644
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53a76a
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
imul edx, dword [0x662b88]
sar edx, 0x10
xor eax, eax
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
imul dword [0x662b88]
sar eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
movzx eax, byte [eax + 2]
imul edx
imul dword [0x662b88]
sar eax, 0x10
mov byte [ebp - 0x272], al
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
mov eax, dword [eax]
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53a60e
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x53a496
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x53ac52
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x53abc3
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x53a8ce
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53a8f2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53a916
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53a93a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53a95e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53a982
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53a9a6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53a9ca
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53abc3
test ecx, ecx
jle 0x53abc3
cmp dword [ebp + 0xc], 0
je 0x53aa42
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53ab4c
cmp dword [ebp + 0x20], 0
je 0x53aa42
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53ab4c
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
cmp edx, dword [ebp - 0x38]
je 0x53ab4c
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 1]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 2]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x274]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
and edx, dword [ebp - 0x14]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53aa0c
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53a894
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x53af8a
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53aca6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53acca
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53acee
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53ad12
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53ad36
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53ad5a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53ad7e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53ada2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53af8a
test ecx, ecx
jle 0x53af8a
cmp dword [ebp + 0xc], 0
je 0x53ae1a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53af13
cmp dword [ebp + 0x20], 0
je 0x53ae1a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53af13
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 1]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 2]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x274]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
and edx, dword [ebp - 0x14]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53ade4
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53ac6c
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x53b8f4
cmp dword [ebp + 0x18], 0
je 0x53b4ee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x53b45f
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x53b084
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53b0a8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53b0cc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53b0f0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53b114
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53b138
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53b15c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53b180
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53b45f
test ecx, ecx
jle 0x53b45f
cmp dword [ebp + 0xc], 0
je 0x53b1f8
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53b3e8
cmp dword [ebp + 0x20], 0
je 0x53b1f8
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53b3e8
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 3], 0
je 0x53b3e8
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x53b328
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 1]
mov eax, dword [ebp - 0x20]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 2]
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x274]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
and edx, dword [ebp - 0x14]
mov dword [eax], edx
jmp 0x53b3e8
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
imul dword [0x662b88]
shr eax, 0x10
mov byte [ebp - 0x274], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x20]
movzx eax, byte [eax + 1]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
imul dword [0x662b88]
shr eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [eax + 2]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
imul dword [0x662b88]
shr eax, 0x10
mov byte [ebp - 0x272], al
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
mov eax, dword [eax]
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53b1c2
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x53b04a
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x53b865
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x53b542
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53b566
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53b58a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53b5ae
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53b5d2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53b5f6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53b61a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53b63e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53b865
test ecx, ecx
jle 0x53b865
cmp dword [ebp + 0xc], 0
je 0x53b6b6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53b7ee
cmp dword [ebp + 0x20], 0
je 0x53b6b6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53b7ee
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
imul edx, dword [0x662b88]
shr edx, 0x10
xor eax, eax
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
imul dword [0x662b88]
shr eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [eax + 2]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
imul dword [0x662b88]
shr eax, 0x10
mov byte [ebp - 0x272], al
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
mov eax, dword [eax]
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53b680
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x53b508
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x53bce8
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x53bc59
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x53b952
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53b976
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53b99a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53b9be
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53b9e2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53ba06
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53ba2a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53ba4e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53bc59
test ecx, ecx
jle 0x53bc59
cmp dword [ebp + 0xc], 0
je 0x53bac6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53bbe2
cmp dword [ebp + 0x20], 0
je 0x53bac6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53bbe2
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
cmp edx, dword [ebp - 0x38]
je 0x53bbe2
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 1]
mov eax, dword [ebp - 0x20]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 2]
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x274]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
and edx, dword [ebp - 0x14]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53ba90
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53b918
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x53c032
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53bd3c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53bd60
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53bd84
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53bda8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53bdcc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53bdf0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53be14
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53be38
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53c032
test ecx, ecx
jle 0x53c032
cmp dword [ebp + 0xc], 0
je 0x53beb0
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53bfbb
cmp dword [ebp + 0x20], 0
je 0x53beb0
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53bfbb
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x274], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 1]
mov eax, dword [ebp - 0x20]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x273], dl
xor edx, edx
mov eax, dword [ebp - 0x270]
mov dl, byte [eax + 2]
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4]
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x274]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
and edx, dword [ebp - 0x14]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53be7a
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53bd02
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x53e292
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x53d18c
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x53c9ad
cmp dword [ebp + 0x18], 0
je 0x53c5a4
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x53c515
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53c14b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53c16f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53c193
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53c1b7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53c1db
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53c1ff
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53c223
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53c247
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53c515
test ecx, ecx
jle 0x53c515
cmp dword [ebp + 0xc], 0
je 0x53c2bf
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53c49e
cmp dword [ebp + 0x20], 0
je 0x53c2bf
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53c49e
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x53c3e8
xor ebx, ebx
mov edx, dword [ebp - 0x270]
mov bl, byte [eax]
movzx edx, byte [edx]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
xor ebx, ebx
mov bl, byte [eax]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 1]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
jmp 0x53c49e
xor ebx, ebx
mov edx, dword [ebp - 0x270]
mov bl, byte [eax]
movzx edx, byte [edx]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx], dl
xor ebx, ebx
mov bl, byte [eax]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 1]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53c289
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53c111
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x53c91e
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53c5f8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53c61c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53c640
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53c664
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53c688
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53c6ac
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53c6d0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53c6f4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53c91e
test ecx, ecx
jle 0x53c91e
cmp dword [ebp + 0xc], 0
je 0x53c76c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53c8a7
cmp dword [ebp + 0x20], 0
je 0x53c76c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53c8a7
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
xor ebx, ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx], dl
xor ebx, ebx
mov bl, byte [eax]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 1]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53c736
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53c5be
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x53cdaa
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x53cd1b
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53ca0b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53ca2f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53ca53
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53ca77
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53ca9b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53cabf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53cae3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53cb07
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53cd1b
test ecx, ecx
jle 0x53cd1b
cmp dword [ebp + 0xc], 0
je 0x53cb7f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53cca4
cmp dword [ebp + 0x20], 0
je 0x53cb7f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53cca4
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
mov edx, dword [edx]
cmp edx, dword [ebp - 0x38]
je 0x53cca4
xor ebx, ebx
mov edx, dword [ebp - 0x270]
mov bl, byte [eax]
movzx edx, byte [edx]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
xor ebx, ebx
mov bl, byte [eax]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 1]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53cb49
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53c9d1
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x53d0fd
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53cdfe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53ce22
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53ce46
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53ce6a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53ce8e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53ceb2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53ced6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53cefa
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53d0fd
test ecx, ecx
jle 0x53d0fd
cmp dword [ebp + 0xc], 0
je 0x53cf72
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53d086
cmp dword [ebp + 0x20], 0
je 0x53cf72
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53d086
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
xor ebx, ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
xor ebx, ebx
mov bl, byte [eax]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 1]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53cf3c
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53cdc4
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x53da8f
cmp dword [ebp + 0x18], 0
je 0x53d674
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x53d5e5
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x53d1f7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53d21b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53d23f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53d263
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53d287
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53d2ab
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53d2cf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53d2f3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53d5e5
test ecx, ecx
jle 0x53d5e5
cmp dword [ebp + 0xc], 0
je 0x53d36b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53d56e
cmp dword [ebp + 0x20], 0
je 0x53d36b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53d56e
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x53d4a6
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x24]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [eax + 2], dl
jmp 0x53d56e
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x24]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x18
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x18
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x18
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53d335
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53d1bd
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x53da00
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53d6c8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53d6ec
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53d710
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53d734
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53d758
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53d77c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53d7a0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53d7c4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53da00
test ecx, ecx
jle 0x53da00
cmp dword [ebp + 0xc], 0
je 0x53d83c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53d989
cmp dword [ebp + 0x20], 0
je 0x53d83c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53d989
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x24]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x18
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x18
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x18
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53d806
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53d68e
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x53de9e
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x53de0f
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53daed
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53db11
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53db35
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53db59
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53db7d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53dba1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53dbc5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53dbe9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53de0f
test ecx, ecx
jle 0x53de0f
cmp dword [ebp + 0xc], 0
je 0x53dc61
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53dd98
cmp dword [ebp + 0x20], 0
je 0x53dc61
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53dd98
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
mov edx, dword [edx]
cmp edx, dword [ebp - 0x38]
je 0x53dd98
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x24]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53dc2b
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53dab3
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x53e203
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53def2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53df16
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53df3a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53df5e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53df82
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53dfa6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53dfca
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53dfee
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53e203
test ecx, ecx
jle 0x53e203
cmp dword [ebp + 0xc], 0
je 0x53e066
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53e18c
cmp dword [ebp + 0x20], 0
je 0x53e066
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53e18c
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x24]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x20]
movzx edx, byte [edx + 1]
mov edx, dword [ebx + edx*4]
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [ebx + 1], dl
movzx eax, byte [eax]
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x8efb38]
movzx edx, byte [edx + 2]
mov edx, dword [ebx + edx*4]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53e030
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53deb8
jmp case.default.0x545cee
mov eax, dword [0x662b98]
and eax, 0xffffff
cmp eax, 0xffffff
jne 0x53f230
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x53eacb
cmp dword [ebp + 0x18], 0
je 0x53e6fd
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x53e66e
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53e312
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53e336
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53e35a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53e37e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53e3a2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53e3c6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53e3ea
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53e40e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53e66e
test ecx, ecx
jle 0x53e66e
cmp dword [ebp + 0xc], 0
je 0x53e486
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53e5f7
cmp dword [ebp + 0x20], 0
je 0x53e486
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53e5f7
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 3], 0xff
jne 0x53e570
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
movzx eax, byte [eax + 1]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
movzx eax, byte [eax + 2]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
jmp 0x53e5f7
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
movzx eax, byte [eax]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
movzx eax, byte [eax + 1]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
movzx eax, byte [eax + 2]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53e450
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53e2d8
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x53ea3c
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53e751
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53e775
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53e799
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53e7bd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53e7e1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53e805
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53e829
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53e84d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53ea3c
test ecx, ecx
jle 0x53ea3c
cmp dword [ebp + 0xc], 0
je 0x53e8c5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53e9c5
cmp dword [ebp + 0x20], 0
je 0x53e8c5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53e9c5
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
movzx eax, byte [eax + 2]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53e88f
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53e717
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x53ee8b
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x53edfc
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53eb29
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53eb4d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53eb71
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53eb95
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53ebb9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53ebdd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53ec01
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53ec25
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53edfc
test ecx, ecx
jle 0x53edfc
cmp dword [ebp + 0xc], 0
je 0x53ec9d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53ed85
cmp dword [ebp + 0x20], 0
je 0x53ec9d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53ed85
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
cmp edx, dword [ebp - 0x38]
je 0x53ed85
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
movzx eax, byte [eax + 2]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53ec67
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53eaef
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x53f1a1
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53eedf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53ef03
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53ef27
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53ef4b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53ef6f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53ef93
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53efb7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53efdb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53f1a1
test ecx, ecx
jle 0x53f1a1
cmp dword [ebp + 0xc], 0
je 0x53f053
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53f12a
cmp dword [ebp + 0x20], 0
je 0x53f053
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53f12a
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
movzx eax, byte [eax + 2]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53f01d
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53eea5
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x53fa8a
cmp dword [ebp + 0x18], 0
je 0x53f6aa
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x53f61b
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x53f29b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53f2bf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53f2e3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53f307
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53f32b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53f34f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53f373
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53f397
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53f61b
test ecx, ecx
jle 0x53f61b
cmp dword [ebp + 0xc], 0
je 0x53f40f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53f5a4
cmp dword [ebp + 0x20], 0
je 0x53f40f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53f5a4
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 3], 0xff
jne 0x53f50b
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx]
imul edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x20]
movzx eax, byte [eax + 1]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [eax + 2]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 2], al
jmp 0x53f5a4
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x24]
movzx eax, byte [eax]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx]
imul edx
mov edx, dword [ebp - 0x26c]
shr eax, 0x10
mov byte [edx], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x20]
movzx eax, byte [eax + 1]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
shr eax, 0x10
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [eax + 2]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
mov edx, dword [ebp - 0x26c]
shr eax, 0x10
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53f3d9
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53f261
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x53f9fb
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53f6fe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53f722
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53f746
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53f76a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53f78e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53f7b2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53f7d6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53f7fa
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53f9fb
test ecx, ecx
jle 0x53f9fb
cmp dword [ebp + 0xc], 0
je 0x53f872
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53f984
cmp dword [ebp + 0x20], 0
je 0x53f872
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53f984
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
imul edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 0x10
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
shr eax, 0x10
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [eax + 2]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
shr eax, 0x10
mov edx, dword [ebp - 0x26c]
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53f83c
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53f6c4
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x53fe5c
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x53fdcd
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53fae8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53fb0c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53fb30
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53fb54
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53fb78
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53fb9c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53fbc0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53fbe4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x53fdcd
test ecx, ecx
jle 0x53fdcd
cmp dword [ebp + 0xc], 0
je 0x53fc5c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x53fd56
cmp dword [ebp + 0x20], 0
je 0x53fc5c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x53fd56
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
cmp edx, dword [ebp - 0x38]
je 0x53fd56
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
imul edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [eax + 2]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53fc26
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53faae
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x540188
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x53feb0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x53fed4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x53fef8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x53ff1c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x53ff40
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x53ff64
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x53ff88
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x53ffac
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x540188
test ecx, ecx
jle 0x540188
cmp dword [ebp + 0xc], 0
je 0x540024
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x540111
cmp dword [ebp + 0x20], 0
je 0x540024
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x540111
imul edx, dword [ebp - 0x28]
shl eax, 2
add eax, dword [ebp - 0x258]
add eax, edx
xor edx, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov dl, byte [eax]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
imul edx, eax
mov eax, dword [ebp - 0x26c]
shr edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [eax + 2]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
mov edx, dword [ebp - 0x26c]
shr eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x53ffee
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x53fe76
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 0x1c]
sub edx, 1
jb 0x54022d
je 0x551d52
jmp case.default.0x545cee
mov ecx, dword [ebp + 0x10]
cmp dword [ecx + 0x20], 1
jne 0x545ce0
mov eax, dword [0x662b84]
cmp eax, 4
ja case.default.0x545cee
jmp dword [eax*4 + 0x54024f]
cmp dword [ebp + 0x1c], 0
je 0x540bb5
cmp dword [ebp + 0x18], 0
je 0x54071f
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x540690
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x5402cb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5402ef
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x540313
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x540337
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54035b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54037f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5403a3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5403c7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x540690
test ecx, ecx
jle 0x540690
cmp dword [ebp + 0xc], 0
je 0x54043e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x540619
cmp dword [ebp + 0x20], 0
je 0x54043e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x540619
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x540619
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x5404f8
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x264]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
sar ebx, 3
add dx, bx
mov ebx, dword [ebp - 0x270]
shl edx, 3
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x160]
sar ebx, 5
test esi, esi
jns 0x540566
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x26c]
sar ebx, 8
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 3
add ebx, esi
mov esi, dword [ebp - 0x264]
sar ebx, 3
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x5405d5
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
sar ebx, 8
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 8
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 8
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x540408
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x540291
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x540b26
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x540773
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x540797
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5407bb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5407df
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x540803
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x540827
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54084b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54086f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x540b26
test ecx, ecx
jle 0x540b26
cmp dword [ebp + 0xc], 0
je 0x5408e6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x540aaf
cmp dword [ebp + 0x20], 0
je 0x5408e6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x540aaf
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x54098e
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x264]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
sar ebx, 3
add dx, bx
mov ebx, dword [ebp - 0x270]
shl edx, 3
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x160]
sar ebx, 5
test esi, esi
jns 0x5409fc
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x26c]
sar ebx, 8
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 3
add ebx, esi
mov esi, dword [ebp - 0x264]
sar ebx, 3
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x540a6b
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
sar ebx, 8
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 8
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 8
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5408b0
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x540739
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x540fbf
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x540f30
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x540c13
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x540c37
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x540c5b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x540c7f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x540ca3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x540cc7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x540ceb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x540d0f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x540f30
test ecx, ecx
jle 0x540f30
cmp dword [ebp + 0xc], 0
je 0x540d86
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x540eb9
cmp dword [ebp + 0x20], 0
je 0x540d86
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x540eb9
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x540eb9
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
and edx, 0xf800
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x540e34
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x264]
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 8
movzx eax, byte [eax]
and dx, 0xf800
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x540e6a
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x264]
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x540ea0
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
and ax, 0x1f
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x540d50
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x540bd9
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x54131d
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x541013
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x541037
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54105b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54107f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5410a3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5410c7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5410eb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54110f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54131d
test ecx, ecx
jle 0x54131d
cmp dword [ebp + 0xc], 0
je 0x541186
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5412a6
cmp dword [ebp + 0x20], 0
je 0x541186
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5412a6
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
and edx, 0xf800
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x541221
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x264]
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 8
movzx eax, byte [eax]
and dx, 0xf800
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x541257
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x264]
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x54128d
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
and ax, 0x1f
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x541150
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x540fd9
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x541d86
cmp dword [ebp + 0x18], 0
je 0x5418ac
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x54181d
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x541414
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x541438
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54145c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x541480
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5414a4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5414c8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5414ec
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x541510
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54181d
test ecx, ecx
jle 0x54181d
cmp dword [ebp + 0xc], 0
je 0x541587
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5417a6
cmp dword [ebp + 0x20], 0
je 0x541587
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5417a6
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x5417a6
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x541641
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x541676
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x264]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 5
add edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 5
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x160]
sar ebx, 5
test esi, esi
jns 0x5416c4
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 8
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x5416fe
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0xb
add ebx, esi
mov esi, dword [ebp - 0x264]
sar ebx, 0xb
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x541749
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
sar ebx, 8
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54177c
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 0x10
and bx, 0x1f
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x541551
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5413da
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x541cf7
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x541900
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x541924
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x541948
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54196c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x541990
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5419b4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5419d8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5419fc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x541cf7
test ecx, ecx
jle 0x541cf7
cmp dword [ebp + 0xc], 0
je 0x541a73
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x541c80
cmp dword [ebp + 0x20], 0
je 0x541a73
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x541c80
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x541b1b
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x541b50
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x264]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 5
add edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 5
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x160]
sar ebx, 5
test esi, esi
jns 0x541b9e
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 8
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x541bd8
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0xb
add ebx, esi
mov esi, dword [ebp - 0x264]
sar ebx, 0xb
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x541c23
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
sar ebx, 8
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x541c56
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 0x10
and bx, 0x1f
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x541a3d
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5418c6
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x54223b
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5421ac
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x541de4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x541e08
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x541e2c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x541e50
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x541e74
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x541e98
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x541ebc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x541ee0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5421ac
test ecx, ecx
jle 0x5421ac
cmp dword [ebp + 0xc], 0
je 0x541f57
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x542135
cmp dword [ebp + 0x20], 0
je 0x541f57
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x542135
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x542135
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x542002
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 8
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54201a
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x264]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
movzx eax, word [eax]
sar eax, 0xb
sub dx, ax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
add dx, ax
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x160]
sar eax, 5
test ebx, ebx
jns 0x54206f
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x542088
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
sar eax, 8
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub ax, bx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
add ax, bx
mov ebx, dword [ebp - 0x264]
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x5420e7
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x542100
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
sub ax, bx
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
add ax, bx
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x541f21
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x541daa
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x542644
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54228f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5422b3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5422d7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5422fb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54231f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x542343
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x542367
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54238b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x542644
test ecx, ecx
jle 0x542644
cmp dword [ebp + 0xc], 0
je 0x542402
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5425cd
cmp dword [ebp + 0x20], 0
je 0x542402
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5425cd
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x54249a
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 8
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x5424b2
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x264]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
movzx eax, word [eax]
sar eax, 0xb
sub dx, ax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
add dx, ax
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x160]
sar eax, 5
test ebx, ebx
jns 0x542507
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x542520
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
sar eax, 8
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub ax, bx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
add ax, bx
mov ebx, dword [ebp - 0x264]
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x54257f
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x542598
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
sub ax, bx
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
add ax, bx
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5423cc
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x542255
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x54305f
cmp dword [ebp + 0x18], 0
je 0x542bac
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x542b1d
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54273b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54275f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x542783
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5427a7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5427cb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5427ef
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x542813
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x542837
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x542b1d
test ecx, ecx
jle 0x542b1d
cmp dword [ebp + 0xc], 0
je 0x5428ae
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x542aa6
cmp dword [ebp + 0x20], 0
je 0x5428ae
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x542aa6
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x542aa6
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x542968
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54297e
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x264]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0x18
movzx ebx, byte [ebx]
shl edx, 0xb
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x160]
sar ebx, 5
test esi, esi
jns 0x5429c4
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x5429da
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
sar ebx, 0x18
mov esi, dword [ebp - 0x264]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x542a1c
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x542a32
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul ebx, eax
sar ebx, 0x18
add dx, bx
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x542878
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x542701
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x542fd0
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x542c00
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x542c24
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x542c48
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x542c6c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x542c90
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x542cb4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x542cd8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x542cfc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x542fd0
test ecx, ecx
jle 0x542fd0
cmp dword [ebp + 0xc], 0
je 0x542d73
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x542f59
cmp dword [ebp + 0x20], 0
je 0x542d73
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x542f59
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x542e1b
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x542e31
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x264]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0x18
movzx ebx, byte [ebx]
shl edx, 0xb
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x160]
sar ebx, 5
test esi, esi
jns 0x542e77
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x542e8d
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
sar ebx, 0x18
mov esi, dword [ebp - 0x264]
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x542ecf
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x542ee5
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul ebx, eax
sar ebx, 0x18
add dx, bx
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x542d3d
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x542bc6
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x5434f6
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x543467
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5430bd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5430e1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x543105
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x543129
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54314d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x543171
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x543195
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5431b9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x543467
test ecx, ecx
jle 0x543467
cmp dword [ebp + 0xc], 0
je 0x543230
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5433f0
cmp dword [ebp + 0x20], 0
je 0x543230
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5433f0
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x5433f0
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
and edx, 0xf800
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x5432de
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x5432f3
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x264]
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 0x1b
movzx eax, byte [eax]
shl edx, 0xb
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x543327
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x54333d
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x15
mov ebx, dword [ebp - 0x264]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x1f
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x543372
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x543388
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x10
add dx, ax
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5431fa
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x543083
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5438e1
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54354a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54356e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x543592
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5435b6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5435da
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5435fe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x543622
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x543646
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5438e1
test ecx, ecx
jle 0x5438e1
cmp dword [ebp + 0xc], 0
je 0x5436bd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54386a
cmp dword [ebp + 0x20], 0
je 0x5436bd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54386a
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
and edx, 0xf800
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x543758
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x54376d
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x264]
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 0x1b
movzx eax, byte [eax]
shl edx, 0xb
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x5437a1
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x5437b7
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x15
mov ebx, dword [ebp - 0x264]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x1f
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x5437ec
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x543802
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x10
add dx, ax
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x543687
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x543510
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x5442d2
cmp dword [ebp + 0x18], 0
je 0x543e34
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x543da5
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5439d8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5439fc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x543a20
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x543a44
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x543a68
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x543a8c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x543ab0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x543ad4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x543da5
test ecx, ecx
jle 0x543da5
cmp dword [ebp + 0xc], 0
je 0x543b4b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x543d2e
cmp dword [ebp + 0x20], 0
je 0x543b4b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x543d2e
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x543d2e
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
xor ebx, ebx
mov bl, byte [eax]
sar edx, 0xb
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x543c13
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x543c29
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x264]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0x18
movzx ebx, byte [ebx]
shl edx, 0xb
movzx ebx, word [esi + ebx*2]
movzx esi, byte [eax]
and ebx, 0x7e0
movzx esi, byte [esi + 0x8efb38]
sar ebx, 5
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x543c6e
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x160]
test esi, esi
jns 0x543c84
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 0x18
mov esi, dword [ebp - 0x264]
shl ebx, 5
movzx eax, byte [eax]
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x1f
imul ebx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x543cc5
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x543cda
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
sar ebx, 0x18
add dx, bx
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x543b15
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54399e
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x544243
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x543e88
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x543eac
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x543ed0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x543ef4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x543f18
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x543f3c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x543f60
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x543f84
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x544243
test ecx, ecx
jle 0x544243
cmp dword [ebp + 0xc], 0
je 0x543ffb
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5441cc
cmp dword [ebp + 0x20], 0
je 0x543ffb
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5441cc
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
xor ebx, ebx
mov bl, byte [eax]
sar edx, 0xb
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x5440b1
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x5440c7
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x264]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0x18
movzx ebx, byte [ebx]
shl edx, 0xb
movzx ebx, word [esi + ebx*2]
movzx esi, byte [eax]
and ebx, 0x7e0
movzx esi, byte [esi + 0x8efb38]
sar ebx, 5
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x54410c
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x160]
test esi, esi
jns 0x544122
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 0x18
mov esi, dword [ebp - 0x264]
shl ebx, 5
movzx eax, byte [eax]
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x1f
imul ebx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x544163
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x544178
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
sar ebx, 0x18
add dx, bx
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x543fc5
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x543e4e
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x544754
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5446c5
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x544330
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x544354
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x544378
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54439c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5443c0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5443e4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x544408
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54442c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5446c5
test ecx, ecx
jle 0x5446c5
cmp dword [ebp + 0xc], 0
je 0x5444a3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54464e
cmp dword [ebp + 0x20], 0
je 0x5444a3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54464e
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x54464e
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
and edx, 0xf800
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x544551
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x544566
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x264]
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 0x1b
movzx eax, byte [eax]
shl edx, 0xb
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54459a
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x5445b0
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x15
mov ebx, dword [ebp - 0x264]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x1f
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x5445e5
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x5445fb
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x10
add dx, ax
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54446d
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x5442f6
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x544b2a
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x5447a8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5447cc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5447f0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x544814
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x544838
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54485c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x544880
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5448a4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x544b2a
test ecx, ecx
jle 0x544b2a
cmp dword [ebp + 0xc], 0
je 0x54491b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x544ab3
cmp dword [ebp + 0x20], 0
je 0x54491b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x544ab3
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
and edx, 0xf800
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x5449b6
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x5449cb
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x264]
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 0x1b
movzx eax, byte [eax]
shl edx, 0xb
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x5449ff
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x544a15
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x15
mov ebx, dword [ebp - 0x264]
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x1f
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x544a4a
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x544a60
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x10
add dx, ax
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5448e5
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x54476e
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x54548b
cmp dword [ebp + 0x18], 0
je 0x545035
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x544fa6
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x544c21
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x544c45
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x544c69
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x544c8d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x544cb1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x544cd5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x544cf9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x544d1d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x544fa6
test ecx, ecx
jle 0x544fa6
cmp dword [ebp + 0xc], 0
je 0x544d94
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x544f2f
cmp dword [ebp + 0x20], 0
je 0x544d94
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x544f2f
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x544f2f
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x544e4e
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x264]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0xa
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x160]
sar ebx, 5
test esi, esi
jns 0x544ea5
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
sar ebx, 0x11
mov esi, dword [ebp - 0x264]
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x544efe
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
sar ebx, 0x15
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x544d5e
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x544be7
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5453fc
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x545089
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5450ad
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5450d1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5450f5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x545119
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54513d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x545161
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x545185
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5453fc
test ecx, ecx
jle 0x5453fc
cmp dword [ebp + 0xc], 0
je 0x5451fc
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x545385
cmp dword [ebp + 0x20], 0
je 0x5451fc
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x545385
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, word [ebx + edx*2]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x5452a4
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x264]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0xa
movzx ebx, byte [ebx]
and dx, 0xf800
movzx ebx, word [esi + ebx*2]
and ebx, 0x7e0
mov esi, dword [ebp - 0x160]
sar ebx, 5
test esi, esi
jns 0x5452fb
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
sar ebx, 0x11
mov esi, dword [ebp - 0x264]
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx]
movzx ebx, word [esi + ebx*2]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x545354
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
sar ebx, 0x15
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5451c6
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54504f
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x5458c4
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x545835
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5454e9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54550d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x545531
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x545555
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x545579
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54559d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5455c1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5455e5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x545835
test ecx, ecx
jle 0x545835
cmp dword [ebp + 0xc], 0
je 0x54565c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5457be
cmp dword [ebp + 0x20], 0
je 0x54565c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5457be
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x5457be
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x545707
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x264]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 2
movzx eax, byte [eax]
and dx, 0xf800
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x160]
sar eax, 5
test ebx, ebx
jns 0x54574f
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul eax, ebx
sar eax, 9
mov ebx, dword [ebp - 0x264]
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x54579a
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
imul eax, ebx
sar eax, 0xd
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x545626
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5454af
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x545c51
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x545918
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54593c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x545960
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x545984
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5459a8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5459cc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5459f0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x545a14
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x545c51
test ecx, ecx
jle 0x545c51
cmp dword [ebp + 0xc], 0
je 0x545a8b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x545bda
cmp dword [ebp + 0x20], 0
je 0x545a8b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x545bda
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, word [eax + edx*2]
sar edx, 0xb
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x545b23
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x264]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 2
movzx eax, byte [eax]
and dx, 0xf800
movzx eax, word [ebx + eax*2]
and eax, 0x7e0
mov ebx, dword [ebp - 0x160]
sar eax, 5
test ebx, ebx
jns 0x545b6b
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul eax, ebx
sar eax, 9
mov ebx, dword [ebp - 0x264]
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx eax, word [ebx + eax*2]
and eax, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x545bb6
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
imul eax, ebx
sar eax, 0xd
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x545a55
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5458de
jmp case.default.0x545cee
mov eax, dword [0x662b84]
cmp eax, 4
ja case.default.0x545cee
jmp dword [eax*4 + 0x545cf5]
cmp dword [ebp + 0x1c], 0
je 0x5470ca
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x5467ba
cmp dword [ebp + 0x18], 0
je 0x546319
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x54628a
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x545d7e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x545da2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x545dc6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x545dea
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x545e0e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x545e32
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x545e56
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x545e7a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54628a
test ecx, ecx
jle 0x54628a
cmp dword [ebp + 0xc], 0
je 0x545ef1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x546213
cmp dword [ebp + 0x20], 0
je 0x545ef1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x546213
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0
je 0x546213
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x5460c4
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x545fb2
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x160]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
sar ebx, 3
add dx, bx
mov ebx, dword [ebp - 0x270]
shl edx, 3
movzx ebx, word [ebx]
and dx, 0xf800
and ebx, 0x7e0
sar ebx, 5
test esi, esi
jns 0x546016
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 8
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 3
add ebx, esi
sar ebx, 3
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x54607b
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
sar ebx, 8
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 8
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 8
or dx, bx
mov word [eax], dx
jmp 0x546213
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x5460e0
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x160]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 5
add edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 5
movzx ebx, word [ebx]
and dx, 0xf800
and ebx, 0x7e0
sar ebx, 5
test esi, esi
jns 0x546150
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 8
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx esi, byte [esi + 2]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0xb
add ebx, esi
sar ebx, 0xb
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x5461c2
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
sar ebx, 8
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 0x10
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x545ebb
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x545d44
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x54672b
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54636d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x546391
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5463b5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5463d9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5463fd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x546421
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x546445
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x546469
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54672b
test ecx, ecx
jle 0x54672b
cmp dword [ebp + 0xc], 0
je 0x5464e0
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5466b4
cmp dword [ebp + 0x20], 0
je 0x5464e0
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5466b4
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x546581
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x160]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 5
add edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 5
movzx ebx, word [ebx]
and dx, 0xf800
and ebx, 0x7e0
sar ebx, 5
test esi, esi
jns 0x5465f1
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 8
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx esi, byte [esi + 2]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0xb
add ebx, esi
sar ebx, 0xb
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x546663
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
sar ebx, 8
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 0x10
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5464aa
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x546333
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x546c50
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x546bc1
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x546818
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54683c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x546860
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x546884
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5468a8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5468cc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5468f0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x546914
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x546bc1
test ecx, ecx
jle 0x546bc1
cmp dword [ebp + 0xc], 0
je 0x54698b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x546b4a
cmp dword [ebp + 0x20], 0
je 0x54698b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x546b4a
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
cmp edx, dword [ebp - 0x38]
je 0x546b4a
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x546a3d
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x160]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
sar ebx, 3
add dx, bx
mov ebx, dword [ebp - 0x270]
shl edx, 3
movzx ebx, word [ebx]
and dx, 0xf800
and ebx, 0x7e0
sar ebx, 5
test esi, esi
jns 0x546aa1
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 8
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 3
add ebx, esi
sar ebx, 3
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x546b06
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
sar ebx, 8
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 8
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 8
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x546955
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5467de
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x54703b
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x546ca4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x546cc8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x546cec
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x546d10
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x546d34
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x546d58
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x546d7c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x546da0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54703b
test ecx, ecx
jle 0x54703b
cmp dword [ebp + 0xc], 0
je 0x546e17
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x546fc4
cmp dword [ebp + 0x20], 0
je 0x546e17
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x546fc4
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x546eb7
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x160]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
sar ebx, 3
add dx, bx
mov ebx, dword [ebp - 0x270]
shl edx, 3
movzx ebx, word [ebx]
and dx, 0xf800
and ebx, 0x7e0
sar ebx, 5
test esi, esi
jns 0x546f1b
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 8
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 3
add ebx, esi
sar ebx, 3
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x546f80
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
sar ebx, 8
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 8
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 8
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x546de1
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x546c6a
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x547a62
cmp dword [ebp + 0x18], 0
je 0x5475fc
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x54756d
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x547135
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x547159
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54717d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5471a1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5471c5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5471e9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54720d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x547231
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54756d
test ecx, ecx
jle 0x54756d
cmp dword [ebp + 0xc], 0
je 0x5472a8
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5474f6
cmp dword [ebp + 0x20], 0
je 0x5472a8
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5474f6
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 2], 0
je 0x5474f6
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x5473d1
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
and edx, 0xf800
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x54735b
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x160]
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 8
movzx eax, word [eax]
and dx, 0xf800
and eax, 0x7e0
test ebx, ebx
jns 0x547387
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x5473b3
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
and ax, 0x1f
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
jmp 0x5474f6
mov edx, dword [ebp - 0x270]
movzx eax, word [edx]
sar eax, 0xb
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x5473ed
add edx, 0x3fff
sar edx, 0xe
mov ebx, dword [ebp - 0x160]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
movzx edx, word [edx]
sar edx, 0xb
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 2]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
and edx, 0xf800
sar edx, 3
add ax, dx
mov edx, dword [ebp - 0x270]
shl eax, 3
movzx edx, word [edx]
and ax, 0xf800
and edx, 0x7e0
sar edx, 5
test ebx, ebx
jns 0x54744d
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
shl ebx, 3
add edx, ebx
sar edx, 3
and dx, 0x7e0
or ax, dx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
and edx, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x5474b2
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
sub edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
shl ebx, 8
add edx, ebx
sar edx, 8
or ax, dx
mov edx, dword [ebp - 0x26c]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x547272
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5470fb
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5479d3
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x547650
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x547674
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x547698
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5476bc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5476e0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x547704
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x547728
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54774c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5479d3
test ecx, ecx
jle 0x5479d3
cmp dword [ebp + 0xc], 0
je 0x5477c3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54795c
cmp dword [ebp + 0x20], 0
je 0x5477c3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54795c
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x547853
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x160]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
movzx eax, word [eax]
sar eax, 0xb
sub edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0xf800
sar eax, 3
add dx, ax
mov eax, dword [ebp - 0x270]
shl edx, 3
movzx eax, word [eax]
and dx, 0xf800
and eax, 0x7e0
sar eax, 5
test ebx, ebx
jns 0x5478b4
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub eax, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
shl ebx, 3
add eax, ebx
sar eax, 3
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x547918
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
sub eax, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
shl ebx, 8
add eax, ebx
sar eax, 8
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54778d
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x547616
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x547e4e
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x547dbf
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x547ac0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x547ae4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x547b08
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x547b2c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x547b50
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x547b74
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x547b98
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x547bbc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x547dbf
test ecx, ecx
jle 0x547dbf
cmp dword [ebp + 0xc], 0
je 0x547c33
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x547d48
cmp dword [ebp + 0x20], 0
je 0x547c33
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x547d48
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
cmp edx, dword [ebp - 0x38]
je 0x547d48
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
and edx, 0xf800
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x547cd7
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x160]
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 8
movzx eax, word [eax]
and dx, 0xf800
and eax, 0x7e0
test ebx, ebx
jns 0x547d03
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x547d2f
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
and ax, 0x1f
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x547bfd
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x547a86
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x54818f
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x547ea2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x547ec6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x547eea
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x547f0e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x547f32
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x547f56
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x547f7a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x547f9e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54818f
test ecx, ecx
jle 0x54818f
cmp dword [ebp + 0xc], 0
je 0x548015
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x548118
cmp dword [ebp + 0x20], 0
je 0x548015
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x548118
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
and edx, 0xf800
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x5480a7
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x160]
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 8
movzx eax, word [eax]
and dx, 0xf800
and eax, 0x7e0
test ebx, ebx
jns 0x5480d3
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x5480ff
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
and ax, 0x1f
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x547fdf
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x547e68
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x549735
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x548d9d
cmp dword [ebp + 0x18], 0
je 0x5488b7
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x548828
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x548293
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5482b7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5482db
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5482ff
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x548323
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x548347
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54836b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54838f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x548828
test ecx, ecx
jle 0x548828
cmp dword [ebp + 0xc], 0
je 0x548406
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5487b1
cmp dword [ebp + 0x20], 0
je 0x548406
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5487b1
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0
je 0x5487b1
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x54861d
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x5484c7
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x5484fc
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x160]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 5
add edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 5
movzx ebx, word [ebx]
and dx, 0xf800
and ebx, 0x7e0
sar ebx, 5
test esi, esi
jns 0x548540
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 8
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x54857a
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0xb
add ebx, esi
sar ebx, 0xb
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x5485bb
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
sar ebx, 8
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x5485ee
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 0x10
and bx, 0x1f
or dx, bx
mov word [eax], dx
jmp 0x5487b1
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x548639
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54866e
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x160]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 0xd
add edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0xd
movzx ebx, word [ebx]
and dx, 0xf800
and ebx, 0x7e0
sar ebx, 5
test esi, esi
jns 0x5486bf
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 8
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x5486f9
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx esi, byte [esi + 2]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0x13
add ebx, esi
sar ebx, 0x13
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x548747
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
sar ebx, 8
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54877a
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x18
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 0x18
and bx, 0x1f
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5483d0
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x548259
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x548d0e
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54890b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54892f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x548953
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x548977
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54899b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5489bf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5489e3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x548a07
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x548d0e
test ecx, ecx
jle 0x548d0e
cmp dword [ebp + 0xc], 0
je 0x548a7e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x548c97
cmp dword [ebp + 0x20], 0
je 0x548a7e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x548c97
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x548b1f
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x548b54
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x160]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 0xd
add edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0xd
movzx ebx, word [ebx]
and dx, 0xf800
and ebx, 0x7e0
sar ebx, 5
test esi, esi
jns 0x548ba5
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 8
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x548bdf
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx esi, byte [esi + 2]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0x13
add ebx, esi
sar ebx, 0x13
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x548c2d
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
sar ebx, 8
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x548c60
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x18
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 0x18
and bx, 0x1f
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x548a48
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5488d1
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x549277
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5491e8
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x548dfb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x548e1f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x548e43
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x548e67
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x548e8b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x548eaf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x548ed3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x548ef7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5491e8
test ecx, ecx
jle 0x5491e8
cmp dword [ebp + 0xc], 0
je 0x548f6e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x549171
cmp dword [ebp + 0x20], 0
je 0x548f6e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x549171
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
cmp edx, dword [ebp - 0x38]
je 0x549171
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x549020
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x549055
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x160]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 5
add edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 5
movzx ebx, word [ebx]
and dx, 0xf800
and ebx, 0x7e0
sar ebx, 5
test esi, esi
jns 0x549099
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 8
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x5490d3
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0xb
add ebx, esi
sar ebx, 0xb
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x549114
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
sar ebx, 8
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x549147
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 0x10
and bx, 0x1f
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x548f38
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x548dc1
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5496a6
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5492cb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5492ef
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x549313
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x549337
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54935b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54937f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5493a3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5493c7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5496a6
test ecx, ecx
jle 0x5496a6
cmp dword [ebp + 0xc], 0
je 0x54943e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54962f
cmp dword [ebp + 0x20], 0
je 0x54943e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54962f
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x5494de
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x549513
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x160]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0xf800
shl ebx, 5
add edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 5
movzx ebx, word [ebx]
and dx, 0xf800
and ebx, 0x7e0
sar ebx, 5
test esi, esi
jns 0x549557
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 8
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
sub ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x549591
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
shl esi, 0xb
add ebx, esi
sar ebx, 0xb
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x5495d2
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
mov esi, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx esi, word [esi]
sar ebx, 8
and esi, 0x1f
sub ebx, esi
imul ebx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x549605
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
shl eax, 0x10
add ebx, eax
mov eax, dword [ebp - 0x26c]
sar ebx, 0x10
and bx, 0x1f
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x549408
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x549291
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x54a200
cmp dword [ebp + 0x18], 0
je 0x549d56
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x549cc7
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x5497a0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5497c4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5497e8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54980c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x549830
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x549854
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x549878
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54989c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x549cc7
test ecx, ecx
jle 0x549cc7
cmp dword [ebp + 0xc], 0
je 0x549913
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x549c50
cmp dword [ebp + 0x20], 0
je 0x549913
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x549c50
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 2], 0
je 0x549c50
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x549ae7
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x5499c3
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 8
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x5499db
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x160]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
movzx eax, word [eax]
sar eax, 0xb
sub dx, ax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
add dx, ax
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
test ebx, ebx
jns 0x549a26
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x549a3f
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub ax, bx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
add ax, bx
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x549a94
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x549aad
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
sub ax, bx
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
add ax, bx
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
jmp 0x549c50
mov edx, dword [ebp - 0x270]
movzx eax, word [edx]
sar eax, 0xb
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x549b03
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
sar edx, 0xb
sub eax, edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x549b29
add edx, 0x3fff
sar edx, 0xe
mov ebx, dword [ebp - 0x160]
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 2]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
and edx, 0xf800
shl edx, 5
add eax, edx
mov edx, dword [ebp - 0x270]
sar eax, 5
movzx edx, word [edx]
and ax, 0xf800
and edx, 0x7e0
sar edx, 5
test ebx, ebx
jns 0x549b77
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x549ba4
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
shl ebx, 0xb
add edx, ebx
sar edx, 0xb
and dx, 0x7e0
or ax, dx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
and edx, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x549bf2
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x549c19
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
shl ebx, 0x10
add edx, ebx
sar edx, 0x10
and dx, 0x1f
or ax, dx
mov edx, dword [ebp - 0x26c]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5498dd
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x549766
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x54a171
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x549daa
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x549dce
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x549df2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x549e16
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x549e3a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x549e5e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x549e82
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x549ea6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54a171
test ecx, ecx
jle 0x54a171
cmp dword [ebp + 0xc], 0
je 0x549f1d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54a0fa
cmp dword [ebp + 0x20], 0
je 0x549f1d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54a0fa
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x549fad
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 8
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
sub edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x549fd3
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x160]
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0xf800
shl eax, 5
add edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 5
movzx eax, word [eax]
and dx, 0xf800
and eax, 0x7e0
sar eax, 5
test ebx, ebx
jns 0x54a022
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub eax, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54a04f
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
shl ebx, 0xb
add eax, ebx
sar eax, 0xb
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x54a09c
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
sub eax, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54a0c3
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
shl ebx, 0x10
add eax, ebx
sar eax, 0x10
and ax, 0x1f
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x549ee7
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x549d70
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x54a697
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x54a608
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54a25e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54a282
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54a2a6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54a2ca
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54a2ee
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54a312
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54a336
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54a35a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54a608
test ecx, ecx
jle 0x54a608
cmp dword [ebp + 0xc], 0
je 0x54a3d1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54a591
cmp dword [ebp + 0x20], 0
je 0x54a3d1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54a591
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
cmp edx, dword [ebp - 0x38]
je 0x54a591
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x54a472
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 8
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54a48a
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x160]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
movzx eax, word [eax]
sar eax, 0xb
sub dx, ax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
add dx, ax
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
test ebx, ebx
jns 0x54a4d5
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54a4ee
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub ax, bx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
add ax, bx
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x54a543
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54a55c
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
sub ax, bx
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
add ax, bx
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54a39b
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54a224
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x54aa83
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54a6eb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54a70f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54a733
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54a757
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54a77b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54a79f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54a7c3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54a7e7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54aa83
test ecx, ecx
jle 0x54aa83
cmp dword [ebp + 0xc], 0
je 0x54a85e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54aa0c
cmp dword [ebp + 0x20], 0
je 0x54a85e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54aa0c
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x54a8ed
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 8
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54a905
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x160]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
movzx eax, word [eax]
sar eax, 0xb
sub dx, ax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
add dx, ax
mov eax, dword [ebp - 0x270]
shl edx, 0xb
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
test ebx, ebx
jns 0x54a950
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54a969
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
sub ax, bx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
add ax, bx
shl eax, 5
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x54a9be
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54a9d7
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 8
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
sub ax, bx
mov ebx, dword [ebp - 0x26c]
mov bx, word [ebx]
and bx, 0x1f
add ax, bx
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54a828
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54a6b1
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x54bf76
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x54b62c
cmp dword [ebp + 0x18], 0
je 0x54b165
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x54b0d6
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x54ab87
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54abab
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54abcf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54abf3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54ac17
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54ac3b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54ac5f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54ac83
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54b0d6
test ecx, ecx
jle 0x54b0d6
cmp dword [ebp + 0xc], 0
je 0x54acfa
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54b05f
cmp dword [ebp + 0x20], 0
je 0x54acfa
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54b05f
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0
je 0x54b05f
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x54aeea
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x54adbb
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54add1
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
sar edx, 0x18
shl edx, 0xb
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
mov esi, dword [ebp - 0x160]
test esi, esi
jns 0x54ae0d
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x54ae23
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
sar ebx, 0x18
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x54ae5b
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x54ae71
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul ebx, eax
sar ebx, 0x18
add dx, bx
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
jmp 0x54b05f
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x54af06
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54af3a
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
shl edx, 0xb
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
mov esi, dword [ebp - 0x160]
test esi, esi
jns 0x54af68
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx esi, byte [eax]
sar ebx, 8
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx esi, byte [esi + 2]
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x54af9b
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 0x18
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x54afc6
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
sar ebx, 8
movzx eax, byte [eax + 0x8efb38]
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54aff8
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
sar ebx, 0x18
add dx, bx
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54acc4
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54ab4d
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x54b59d
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54b1b9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54b1dd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54b201
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54b225
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54b249
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54b26d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54b291
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54b2b5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54b59d
test ecx, ecx
jle 0x54b59d
cmp dword [ebp + 0xc], 0
je 0x54b32c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54b526
cmp dword [ebp + 0x20], 0
je 0x54b32c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54b526
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x54b3cd
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54b401
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
shl edx, 0xb
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
mov esi, dword [ebp - 0x160]
test esi, esi
jns 0x54b42f
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx esi, byte [eax]
sar ebx, 8
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx esi, byte [esi + 2]
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x54b462
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 0x18
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x54b48d
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
sar ebx, 8
movzx eax, byte [eax + 0x8efb38]
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54b4bf
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
sar ebx, 0x18
add dx, bx
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54b2f6
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54b17f
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x54badf
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x54ba50
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54b68a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54b6ae
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54b6d2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54b6f6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54b71a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54b73e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54b762
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54b786
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54ba50
test ecx, ecx
jle 0x54ba50
cmp dword [ebp + 0xc], 0
je 0x54b7fd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54b9d9
cmp dword [ebp + 0x20], 0
je 0x54b7fd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54b9d9
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
cmp edx, dword [ebp - 0x38]
je 0x54b9d9
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x54b8af
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54b8c5
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
sar edx, 0x18
shl edx, 0xb
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
mov esi, dword [ebp - 0x160]
test esi, esi
jns 0x54b901
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x54b917
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
sar ebx, 0x18
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x54b94f
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x54b965
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul ebx, eax
sar ebx, 0x18
add dx, bx
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54b7c7
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54b650
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x54bee7
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54bb33
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54bb57
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54bb7b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54bb9f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54bbc3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54bbe7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54bc0b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54bc2f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54bee7
test ecx, ecx
jle 0x54bee7
cmp dword [ebp + 0xc], 0
je 0x54bca6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54be70
cmp dword [ebp + 0x20], 0
je 0x54bca6
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54be70
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x54bd46
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54bd5c
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
sar edx, 0x18
shl edx, 0xb
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
mov esi, dword [ebp - 0x160]
test esi, esi
jns 0x54bd98
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x54bdae
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
sar ebx, 0x18
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x54bde6
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x54bdfc
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul ebx, eax
sar ebx, 0x18
add dx, bx
movzx edx, dx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0xc]
and eax, 0xf7def7df
movzx edx, word [edx]
and edx, 0xf7def7df
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54bc70
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54baf9
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x54c9d8
cmp dword [ebp + 0x18], 0
je 0x54c553
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x54c4c4
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x54bfe1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54c005
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54c029
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54c04d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54c071
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54c095
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54c0b9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54c0dd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54c4c4
test ecx, ecx
jle 0x54c4c4
cmp dword [ebp + 0xc], 0
je 0x54c154
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54c44d
cmp dword [ebp + 0x20], 0
je 0x54c154
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54c44d
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 2], 0
je 0x54c44d
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x54c30a
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
and edx, 0xf800
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54c207
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x54c21c
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x188]
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 0x1b
movzx eax, word [eax]
shl edx, 0xb
and eax, 0x7e0
test ebx, ebx
jns 0x54c246
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x54c25c
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x15
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54c287
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x54c29d
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x10
add dx, ax
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
jmp 0x54c44d
mov edx, dword [ebp - 0x270]
movzx eax, word [edx]
sar eax, 0xb
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 2]
imul edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x54c332
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x54c347
add edx, 0x3fff
sar edx, 0xe
mov ebx, dword [ebp - 0x270]
imul edx
mov edx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
movzx edx, word [edx]
and edx, 0x7e0
sar edx, 5
imul edx, ebx
sar eax, 0x18
mov ebx, dword [ebp - 0x188]
shl eax, 0xb
test ebx, ebx
jns 0x54c381
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x54c397
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov ebx, dword [ebp - 0x270]
shl edx, 5
movzx ebx, byte [ebx + 2]
add ax, dx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
and edx, 0x1f
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54c3cf
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x54c3e5
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
add ax, dx
movzx eax, ax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54c11e
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54bfa7
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x54c949
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54c5a7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54c5cb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54c5ef
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54c613
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54c637
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54c65b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54c67f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54c6a3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54c949
test ecx, ecx
jle 0x54c949
cmp dword [ebp + 0xc], 0
je 0x54c71a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54c8d2
cmp dword [ebp + 0x20], 0
je 0x54c71a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54c8d2
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54c7b7
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x54c7cc
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x270]
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
imul eax, ebx
sar edx, 0x18
mov ebx, dword [ebp - 0x188]
shl edx, 0xb
test ebx, ebx
jns 0x54c806
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x54c81c
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x18
mov ebx, dword [ebp - 0x270]
shl eax, 5
movzx ebx, byte [ebx + 2]
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
imul eax, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54c854
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x54c86a
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x18
add dx, ax
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54c6e4
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54c56d
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x54ce51
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x54cdc2
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54ca36
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54ca5a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54ca7e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54caa2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54cac6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54caea
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54cb0e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54cb32
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54cdc2
test ecx, ecx
jle 0x54cdc2
cmp dword [ebp + 0xc], 0
je 0x54cba9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54cd4b
cmp dword [ebp + 0x20], 0
je 0x54cba9
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54cd4b
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
cmp edx, dword [ebp - 0x38]
je 0x54cd4b
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
and edx, 0xf800
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54cc4d
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x54cc62
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x188]
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 0x1b
movzx eax, word [eax]
shl edx, 0xb
and eax, 0x7e0
test ebx, ebx
jns 0x54cc8c
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x54cca2
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x15
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54cccd
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x54cce3
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x10
add dx, ax
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54cb73
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54c9fc
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x54d21f
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54cea5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54cec9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54ceed
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54cf11
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54cf35
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54cf59
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54cf7d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54cfa1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54d21f
test ecx, ecx
jle 0x54d21f
cmp dword [ebp + 0xc], 0
je 0x54d018
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54d1a8
cmp dword [ebp + 0x20], 0
je 0x54d018
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54d1a8
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
and edx, 0xf800
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54d0aa
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x54d0bf
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x188]
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 0x1b
movzx eax, word [eax]
shl edx, 0xb
and eax, 0x7e0
test ebx, ebx
jns 0x54d0e9
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x54d0ff
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x15
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54d12a
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x54d140
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x10
add dx, ax
movzx eax, dx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
and edx, 0xf7def7df
movzx eax, word [eax]
and eax, 0xf7def7df
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
or dx, word [ebp - 0x14]
mov ax, word [eax]
or ax, word [ebp - 0xc]
and ax, 0x820
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54cfe2
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54ce6b
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x54e6ad
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x54dd8d
cmp dword [ebp + 0x18], 0
je 0x54d8d9
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x54d84a
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x54d323
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54d347
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54d36b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54d38f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54d3b3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54d3d7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54d3fb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54d41f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54d84a
test ecx, ecx
jle 0x54d84a
cmp dword [ebp + 0xc], 0
je 0x54d496
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54d7d3
cmp dword [ebp + 0x20], 0
je 0x54d496
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54d7d3
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0
je 0x54d7d3
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x54d671
mov edx, dword [ebp - 0x270]
xor ebx, ebx
mov bl, byte [eax]
movzx edx, word [edx]
movzx ebx, byte [ebx + 0x8efb38]
sar edx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54d565
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x54d57b
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx esi, byte [eax]
mov ebx, dword [ebp - 0x270]
movzx esi, byte [esi + 0x8efb38]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul ebx, esi
sar edx, 0x18
mov esi, dword [ebp - 0x188]
shl edx, 0xb
test esi, esi
jns 0x54d5b6
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x160]
test esi, esi
jns 0x54d5cc
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 0x18
movzx eax, byte [eax]
shl ebx, 5
movzx eax, byte [eax + 0x8efb38]
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54d603
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x54d618
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
sar ebx, 0x18
add dx, bx
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
jmp 0x54d7d3
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x54d68d
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54d6c1
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
shl edx, 0xb
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
mov esi, dword [ebp - 0x160]
test esi, esi
jns 0x54d6ef
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx esi, byte [eax]
sar ebx, 8
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx esi, byte [esi + 2]
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x54d722
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 0x18
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x54d74d
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
sar ebx, 8
movzx eax, byte [eax + 0x8efb38]
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54d77f
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
sar ebx, 0x18
add dx, bx
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54d460
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54d2e9
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x54dcfe
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54d92d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54d951
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54d975
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54d999
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54d9bd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54d9e1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54da05
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54da29
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54dcfe
test ecx, ecx
jle 0x54dcfe
cmp dword [ebp + 0xc], 0
je 0x54daa0
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54dc87
cmp dword [ebp + 0x20], 0
je 0x54daa0
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54dc87
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x54db41
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54db75
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
shl edx, 0xb
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
mov esi, dword [ebp - 0x160]
test esi, esi
jns 0x54dba3
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx esi, byte [eax]
sar ebx, 8
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx esi, byte [esi + 2]
imul ebx, esi
mov esi, dword [ebp - 0x188]
test esi, esi
jns 0x54dbd6
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 0x18
shl ebx, 5
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x54dc01
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
sar ebx, 8
movzx eax, byte [eax + 0x8efb38]
imul ebx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul ebx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54dc33
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
sar ebx, 0x18
add dx, bx
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54da6a
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54d8f3
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x54e22b
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x54e19c
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54ddeb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54de0f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54de33
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54de57
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54de7b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54de9f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54dec3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54dee7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54e19c
test ecx, ecx
jle 0x54e19c
cmp dword [ebp + 0xc], 0
je 0x54df5e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54e125
cmp dword [ebp + 0x20], 0
je 0x54df5e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54e125
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
cmp edx, dword [ebp - 0x38]
je 0x54e125
mov edx, dword [ebp - 0x270]
xor ebx, ebx
mov bl, byte [eax]
movzx edx, word [edx]
movzx ebx, byte [ebx + 0x8efb38]
sar edx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54e01e
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x54e034
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx esi, byte [eax]
mov ebx, dword [ebp - 0x270]
movzx esi, byte [esi + 0x8efb38]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul ebx, esi
sar edx, 0x18
mov esi, dword [ebp - 0x188]
shl edx, 0xb
test esi, esi
jns 0x54e06f
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x160]
test esi, esi
jns 0x54e085
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 0x18
movzx eax, byte [eax]
shl ebx, 5
movzx eax, byte [eax + 0x8efb38]
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54e0bc
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x54e0d1
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
sar ebx, 0x18
add dx, bx
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54df28
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54ddb1
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x54e61e
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54e27f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54e2a3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54e2c7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54e2eb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54e30f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54e333
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54e357
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54e37b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54e61e
test ecx, ecx
jle 0x54e61e
cmp dword [ebp + 0xc], 0
je 0x54e3f2
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54e5a7
cmp dword [ebp + 0x20], 0
je 0x54e3f2
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54e5a7
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
add ebx, ebx
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
xor ebx, ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
mov bl, byte [eax]
sar edx, 0xb
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54e4a0
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x54e4b6
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx esi, byte [eax]
mov ebx, dword [ebp - 0x270]
movzx esi, byte [esi + 0x8efb38]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul ebx, esi
sar edx, 0x18
mov esi, dword [ebp - 0x188]
shl edx, 0xb
test esi, esi
jns 0x54e4f1
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x160]
test esi, esi
jns 0x54e507
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 0x18
movzx eax, byte [eax]
shl ebx, 5
movzx eax, byte [eax + 0x8efb38]
add dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
imul ebx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54e53e
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x54e553
add eax, 0x3fff
sar eax, 0xe
imul ebx, eax
sar ebx, 0x18
add dx, bx
movzx edx, dx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x26c]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc]
or edx, 0x8210820
and eax, 0xf7def7df
sub edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x8210820
mov dword [ebp - 0x18], edx
mov dx, word [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr eax, 5
sub dx, ax
mov eax, dword [ebp - 0x26c]
and dx, word [ebp - 0x14]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54e3bc
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54e245
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x54f0d0
cmp dword [ebp + 0x18], 0
je 0x54ec60
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x54ebd1
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x54e718
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54e73c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54e760
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54e784
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54e7a8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54e7cc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54e7f0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54e814
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54ebd1
test ecx, ecx
jle 0x54ebd1
cmp dword [ebp + 0xc], 0
je 0x54e88b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54eb5a
cmp dword [ebp + 0x20], 0
je 0x54e88b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54eb5a
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 2], 0
je 0x54eb5a
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x54ea2c
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
and edx, 0xf800
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54e93e
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x54e953
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x188]
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 0x1b
movzx eax, word [eax]
shl edx, 0xb
and eax, 0x7e0
test ebx, ebx
jns 0x54e97d
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x54e993
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x15
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54e9be
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x54e9d4
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x10
add dx, ax
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
jmp 0x54eb5a
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54ea54
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x54ea69
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x270]
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
imul eax, ebx
sar edx, 0x18
mov ebx, dword [ebp - 0x188]
shl edx, 0xb
test ebx, ebx
jns 0x54eaa3
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x54eab9
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x18
mov ebx, dword [ebp - 0x270]
shl eax, 5
movzx ebx, byte [ebx + 2]
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
imul eax, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54eaf1
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x54eb07
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x18
add dx, ax
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54e855
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x54e6de
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x54f041
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x54ecb4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54ecd8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54ecfc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54ed20
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54ed44
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54ed68
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54ed8c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54edb0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54f041
test ecx, ecx
jle 0x54f041
cmp dword [ebp + 0xc], 0
je 0x54ee27
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54efca
cmp dword [ebp + 0x20], 0
je 0x54ee27
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54efca
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54eec4
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x54eed9
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x270]
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
movzx eax, word [eax]
and eax, 0x7e0
sar eax, 5
imul eax, ebx
sar edx, 0x18
mov ebx, dword [ebp - 0x188]
shl edx, 0xb
test ebx, ebx
jns 0x54ef13
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x54ef29
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x18
mov ebx, dword [ebp - 0x270]
shl eax, 5
movzx ebx, byte [ebx + 2]
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
imul eax, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54ef61
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x54ef77
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x18
add dx, ax
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54edf1
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x54ec7a
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x54f534
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x54f4a5
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x54f12e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54f152
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54f176
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54f19a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54f1be
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54f1e2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54f206
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54f22a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54f4a5
test ecx, ecx
jle 0x54f4a5
cmp dword [ebp + 0xc], 0
je 0x54f2a1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54f42e
cmp dword [ebp + 0x20], 0
je 0x54f2a1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54f42e
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
cmp edx, dword [ebp - 0x38]
je 0x54f42e
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
and edx, 0xf800
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54f345
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x54f35a
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x188]
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 0x1b
movzx eax, word [eax]
shl edx, 0xb
and eax, 0x7e0
test ebx, ebx
jns 0x54f384
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x54f39a
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x15
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54f3c5
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x54f3db
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x10
add dx, ax
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54f26b
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x54f0f4
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x54f8ed
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x54f588
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54f5ac
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54f5d0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54f5f4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54f618
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54f63c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54f660
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54f684
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54f8ed
test ecx, ecx
jle 0x54f8ed
cmp dword [ebp + 0xc], 0
je 0x54f6fb
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54f876
cmp dword [ebp + 0x20], 0
je 0x54f6fb
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54f876
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
and edx, 0xf800
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x54f78d
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x54f7a2
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x188]
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 0x1b
movzx eax, word [eax]
shl edx, 0xb
and eax, 0x7e0
test ebx, ebx
jns 0x54f7cc
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x54f7e2
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x15
shl eax, 5
add dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x54f80d
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x54f823
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
sar eax, 0x10
add dx, ax
movzx eax, dx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x26c]
movzx eax, word [edx]
mov edx, dword [ebp - 0xc]
or eax, 0x8210820
and edx, 0xf7def7df
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x8210820
mov dword [ebp - 0x18], eax
mov ax, word [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr edx, 5
sub ax, dx
mov edx, dword [ebp - 0x26c]
and ax, word [ebp - 0x14]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54f6c5
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x54f54e
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x550c01
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x550371
cmp dword [ebp + 0x18], 0
je 0x54ff06
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x54fe77
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54f9f1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54fa15
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54fa39
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54fa5d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54fa81
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x54faa5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x54fac9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x54faed
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x54fe77
test ecx, ecx
jle 0x54fe77
cmp dword [ebp + 0xc], 0
je 0x54fb64
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x54fe00
cmp dword [ebp + 0x20], 0
je 0x54fb64
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x54fe00
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 2], 0xff
jne 0x54fce7
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x54fc15
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x160]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0xa
movzx ebx, word [ebx]
and dx, 0xf800
and ebx, 0x7e0
sar ebx, 5
test esi, esi
jns 0x54fc62
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
sar ebx, 0x11
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x54fcb1
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
sar ebx, 0x15
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
jmp 0x54fe00
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x54fd03
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x160]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 8
movzx ebx, byte [ebx + 2]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0xa
movzx ebx, word [ebx]
and dx, 0xf800
and ebx, 0x7e0
sar ebx, 5
test esi, esi
jns 0x54fd60
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 8
mov esi, dword [ebp - 0x270]
movzx esi, byte [esi + 2]
imul ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
sar ebx, 0x11
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x54fdbf
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx esi, byte [esi + 2]
sar ebx, 8
imul ebx, esi
movzx eax, byte [eax + 0x8efb38]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
sar ebx, 0x15
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x54fb2e
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54f9b7
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5502e2
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x54ff5a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x54ff7e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x54ffa2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x54ffc6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x54ffea
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55000e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x550032
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x550056
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5502e2
test ecx, ecx
jle 0x5502e2
cmp dword [ebp + 0xc], 0
je 0x5500cd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55026b
cmp dword [ebp + 0x20], 0
je 0x5500cd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55026b
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x55016e
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x160]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 8
movzx ebx, byte [ebx + 2]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0xa
movzx ebx, word [ebx]
and dx, 0xf800
and ebx, 0x7e0
sar ebx, 5
test esi, esi
jns 0x5501cb
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
sar ebx, 8
mov esi, dword [ebp - 0x270]
movzx esi, byte [esi + 2]
imul ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
sar ebx, 0x11
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x55022a
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
mov esi, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx esi, byte [esi + 2]
sar ebx, 8
imul ebx, esi
movzx eax, byte [eax + 0x8efb38]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
sar ebx, 0x15
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x550097
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x54ff20
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x5507c7
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x550738
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5503cf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5503f3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x550417
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55043b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55045f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x550483
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5504a7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5504cb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x550738
test ecx, ecx
jle 0x550738
cmp dword [ebp + 0xc], 0
je 0x550542
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5506c1
cmp dword [ebp + 0x20], 0
je 0x550542
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5506c1
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
cmp edx, dword [ebp - 0x38]
je 0x5506c1
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x5505f4
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x160]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0xa
movzx ebx, word [ebx]
and dx, 0xf800
and ebx, 0x7e0
sar ebx, 5
test esi, esi
jns 0x550641
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
sar ebx, 0x11
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x550690
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
sar ebx, 0x15
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x55050c
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x550395
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x550b72
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x55081b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55083f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x550863
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x550887
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5508ab
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5508cf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5508f3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x550917
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x550b72
test ecx, ecx
jle 0x550b72
cmp dword [ebp + 0xc], 0
je 0x55098e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x550afb
cmp dword [ebp + 0x20], 0
je 0x55098e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x550afb
mov ebx, eax
add ebx, ebx
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
sar edx, 0xb
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x550a2e
add ebx, 0x3fff
sar ebx, 0xe
mov esi, dword [ebp - 0x160]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
sar ebx, 0xb
imul edx, ebx
mov ebx, dword [ebp - 0x270]
sar edx, 0xa
movzx ebx, word [ebx]
and dx, 0xf800
and ebx, 0x7e0
sar ebx, 5
test esi, esi
jns 0x550a7b
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx esi, byte [eax]
movzx esi, byte [esi + 0x8efb38]
imul ebx, esi
mov esi, dword [ebp - 0x26c]
movzx esi, word [esi]
and esi, 0x7e0
sar esi, 5
imul ebx, esi
sar ebx, 0x11
and bx, 0x7e0
or dx, bx
mov ebx, dword [ebp - 0x270]
movzx ebx, word [ebx]
and ebx, 0x1f
mov esi, dword [ebp - 0x174]
test esi, esi
jns 0x550aca
add esi, 0x3fff
sar esi, 0xe
imul ebx, esi
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul ebx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
and eax, 0x1f
imul ebx, eax
sar ebx, 0x15
mov eax, dword [ebp - 0x26c]
or dx, bx
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x550958
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5507e1
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x551538
cmp dword [ebp + 0x18], 0
je 0x551111
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x551082
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x550c6c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x550c90
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x550cb4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x550cd8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x550cfc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x550d20
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x550d44
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x550d68
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x551082
test ecx, ecx
jle 0x551082
cmp dword [ebp + 0xc], 0
je 0x550ddf
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55100b
cmp dword [ebp + 0x20], 0
je 0x550ddf
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55100b
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 2], 0xff
jne 0x550f27
mov edx, dword [ebp - 0x270]
movzx eax, word [edx]
sar eax, 0xb
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x550e80
add edx, 0x3fff
sar edx, 0xe
mov ebx, dword [ebp - 0x160]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
sar edx, 0xb
imul edx
mov edx, dword [ebp - 0x270]
sar eax, 2
movzx edx, word [edx]
and ax, 0xf800
and edx, 0x7e0
sar edx, 5
test ebx, ebx
jns 0x550ebc
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul edx, ebx
sar edx, 9
and dx, 0x7e0
or ax, dx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
and edx, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x550efe
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
imul edx, ebx
sar edx, 0xd
or ax, dx
mov edx, dword [ebp - 0x26c]
mov word [edx], ax
jmp 0x55100b
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
sar eax, 0xb
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x550f43
add edx, 0x3fff
sar edx, 0xe
mov ebx, dword [ebp - 0x160]
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 2]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, word [edx]
sar edx, 0xb
imul edx
mov edx, dword [ebp - 0x270]
sar eax, 0xa
movzx edx, word [edx]
and ax, 0xf800
and edx, 0x7e0
sar edx, 5
test ebx, ebx
jns 0x550f8b
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul edx, ebx
sar edx, 0x11
and dx, 0x7e0
or ax, dx
mov edx, dword [ebp - 0x270]
movzx edx, word [edx]
and edx, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x550fda
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
imul edx, ebx
sar edx, 0x15
or ax, dx
mov edx, dword [ebp - 0x26c]
mov word [edx], ax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x550da9
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x550c32
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5514a9
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x551165
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x551189
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5511ad
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5511d1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5511f5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x551219
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55123d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x551261
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5514a9
test ecx, ecx
jle 0x5514a9
cmp dword [ebp + 0xc], 0
je 0x5512d8
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x551432
cmp dword [ebp + 0x20], 0
je 0x5512d8
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x551432
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x551368
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x160]
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 0xa
movzx eax, word [eax]
and dx, 0xf800
and eax, 0x7e0
sar eax, 5
test ebx, ebx
jns 0x5513b3
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul eax, ebx
sar eax, 0x11
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x551401
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 2]
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
imul eax, ebx
sar eax, 0x15
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5512a2
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55112b
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x551953
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5518c4
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x551596
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5515ba
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5515de
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x551602
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x551626
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55164a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55166e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x551692
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5518c4
test ecx, ecx
jle 0x5518c4
cmp dword [ebp + 0xc], 0
je 0x551709
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55184d
cmp dword [ebp + 0x20], 0
je 0x551709
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55184d
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
cmp edx, dword [ebp - 0x38]
je 0x55184d
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x5517aa
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x160]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 2
movzx eax, word [eax]
and dx, 0xf800
and eax, 0x7e0
sar eax, 5
test ebx, ebx
jns 0x5517e8
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul eax, ebx
sar eax, 9
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x551829
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
imul eax, ebx
sar eax, 0xd
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x5516d3
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55155c
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x551cc3
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5519a7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5519cb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5519ef
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x551a13
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x551a37
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x551a5b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x551a7f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x551aa3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x268], edx
add eax, eax
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x551cc3
test ecx, ecx
jle 0x551cc3
cmp dword [ebp + 0xc], 0
je 0x551b1a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x551c4c
cmp dword [ebp + 0x20], 0
je 0x551b1a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x551c4c
add eax, eax
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
movzx edx, word [eax]
sar edx, 0xb
mov eax, dword [ebp - 0x14c]
test eax, eax
jns 0x551ba9
add eax, 0x3fff
sar eax, 0xe
mov ebx, dword [ebp - 0x160]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax]
sar eax, 0xb
imul edx, eax
mov eax, dword [ebp - 0x270]
sar edx, 2
movzx eax, word [eax]
and dx, 0xf800
and eax, 0x7e0
sar eax, 5
test ebx, ebx
jns 0x551be7
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x7e0
sar ebx, 5
imul eax, ebx
sar eax, 9
and ax, 0x7e0
or dx, ax
mov eax, dword [ebp - 0x270]
movzx eax, word [eax]
and eax, 0x1f
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x551c28
add ebx, 0x3fff
sar ebx, 0xe
imul eax, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, word [ebx]
and ebx, 0x1f
imul eax, ebx
sar eax, 0xd
or dx, ax
mov eax, dword [ebp - 0x26c]
mov word [eax], dx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 2
test ecx, ecx
jg 0x551ae4
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55196d
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x20], 1
jne 0x55763c
mov edx, dword [0x662b84]
cmp edx, 4
ja case.default.0x545cee
jmp dword [edx*4 + 0x551d75]
cmp dword [ebp + 0x1c], 0
je 0x552691
cmp dword [ebp + 0x18], 0
je 0x552220
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x552191
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x551df1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x551e15
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x551e39
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x551e5d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x551e81
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x551ea5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x551ec9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x551eed
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x552191
test ecx, ecx
jle 0x552191
cmp dword [ebp + 0xc], 0
je 0x551f65
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55211a
cmp dword [ebp + 0x20], 0
je 0x551f65
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55211a
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x55211a
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x55201c
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x55207b
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x5520dd
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 2]
sar edx, 8
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x551f2f
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x551db7
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x552602
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x552274
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x552298
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5522bc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5522e0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x552304
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x552328
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55234c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x552370
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x552602
test ecx, ecx
jle 0x552602
cmp dword [ebp + 0xc], 0
je 0x5523e8
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55258b
cmp dword [ebp + 0x20], 0
je 0x5523e8
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55258b
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x55248d
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x5524ec
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x55254e
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 2]
sar edx, 8
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5523b2
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55223a
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x552a8d
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5529fe
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5526ef
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x552713
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x552737
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55275b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55277f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5527a3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5527c7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5527eb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5529fe
test ecx, ecx
jle 0x5529fe
cmp dword [ebp + 0xc], 0
je 0x552863
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x552987
cmp dword [ebp + 0x20], 0
je 0x552863
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x552987
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x552987
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x55290b
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 8
mov eax, dword [ebp - 0x26c]
mov byte [eax], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x552941
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x552976
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55282d
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5526b5
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x552ddd
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x552ae1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x552b05
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x552b29
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x552b4d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x552b71
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x552b95
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x552bb9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x552bdd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x552ddd
test ecx, ecx
jle 0x552ddd
cmp dword [ebp + 0xc], 0
je 0x552c55
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x552d66
cmp dword [ebp + 0x20], 0
je 0x552c55
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x552d66
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x552cea
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 8
mov eax, dword [ebp - 0x26c]
mov byte [eax], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x552d20
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x552d55
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x552c1f
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x552aa7
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x5537f8
cmp dword [ebp + 0x18], 0
je 0x553345
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5532b6
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x552ed4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x552ef8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x552f1c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x552f40
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x552f64
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x552f88
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x552fac
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x552fd0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5532b6
test ecx, ecx
jle 0x5532b6
cmp dword [ebp + 0xc], 0
je 0x553048
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55323f
cmp dword [ebp + 0x20], 0
je 0x553048
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55323f
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x55323f
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x5530ff
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x553123
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x553174
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x553199
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x5531ec
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x553211
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x553012
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x552e9a
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x553769
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x553399
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5533bd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5533e1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x553405
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x553429
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55344d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x553471
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x553495
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x553769
test ecx, ecx
jle 0x553769
cmp dword [ebp + 0xc], 0
je 0x55350d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5536f2
cmp dword [ebp + 0x20], 0
je 0x55350d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5536f2
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x5535b2
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x5535d6
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x553627
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55364c
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x55369f
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x5536c4
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5534d7
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55335f
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x553c8b
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x553bfc
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x553856
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55387a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55389e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5538c2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5538e6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55390a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55392e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x553952
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x553bfc
test ecx, ecx
jle 0x553bfc
cmp dword [ebp + 0xc], 0
je 0x5539ca
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x553b85
cmp dword [ebp + 0x20], 0
je 0x5539ca
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x553b85
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x553b85
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x553a72
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 8
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x553a95
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x553ad9
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x553afd
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x553b41
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x553b65
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x553994
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55381c
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x554072
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x553cdf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x553d03
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x553d27
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x553d4b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x553d6f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x553d93
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x553db7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x553ddb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x554072
test ecx, ecx
jle 0x554072
cmp dword [ebp + 0xc], 0
je 0x553e53
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x553ffb
cmp dword [ebp + 0x20], 0
je 0x553e53
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x553ffb
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x553ee8
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 8
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x553f0b
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x553f4f
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x553f73
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x553fb7
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x553fdb
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x553e1d
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x553ca5
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x554a75
cmp dword [ebp + 0x18], 0
je 0x5545ce
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x55453f
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x554169
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55418d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5541b1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5541d5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5541f9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55421d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x554241
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x554265
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55453f
test ecx, ecx
jle 0x55453f
cmp dword [ebp + 0xc], 0
je 0x5542dd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5544c8
cmp dword [ebp + 0x20], 0
je 0x5542dd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5544c8
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x5544c8
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x554394
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x5543b8
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x5543eb
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55440f
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x273], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x554442
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x554464
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5542a7
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55412f
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5549e6
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x554622
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x554646
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55466a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55468e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5546b2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5546d6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5546fa
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55471e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5549e6
test ecx, ecx
jle 0x5549e6
cmp dword [ebp + 0xc], 0
je 0x554796
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55496f
cmp dword [ebp + 0x20], 0
je 0x554796
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55496f
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x55483b
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55485f
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x554892
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x5548b6
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x273], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x5548e9
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55490b
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x554760
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5545e8
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x554efc
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x554e6d
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x554ad3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x554af7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x554b1b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x554b3f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x554b63
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x554b87
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x554bab
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x554bcf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x554e6d
test ecx, ecx
jle 0x554e6d
cmp dword [ebp + 0xc], 0
je 0x554c47
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x554df6
cmp dword [ebp + 0x20], 0
je 0x554c47
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x554df6
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x554df6
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x554cef
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x554d04
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x554d38
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x554d4d
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x554d7f
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x554d94
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x272], al
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x554c11
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x554a99
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5552d7
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x554f50
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x554f74
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x554f98
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x554fbc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x554fe0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x555004
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x555028
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55504c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5552d7
test ecx, ecx
jle 0x5552d7
cmp dword [ebp + 0xc], 0
je 0x5550c4
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x555260
cmp dword [ebp + 0x20], 0
je 0x5550c4
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x555260
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x555159
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x55516e
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x5551a2
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x5551b7
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x5551e9
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x5551fe
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x272], al
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55508e
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x554f16
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x555cae
cmp dword [ebp + 0x18], 0
je 0x55581d
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x55578e
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5553ce
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5553f2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x555416
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55543a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55545e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x555482
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5554a6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5554ca
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55578e
test ecx, ecx
jle 0x55578e
cmp dword [ebp + 0xc], 0
je 0x555542
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x555717
cmp dword [ebp + 0x20], 0
je 0x555542
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x555717
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x555717
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x5555f9
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55561d
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x555650
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x555674
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x273], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x5556a7
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x5556c9
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55550c
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x555394
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x555c1f
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x555871
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x555895
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5558b9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5558dd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x555901
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x555925
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x555949
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55596d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x555c1f
test ecx, ecx
jle 0x555c1f
cmp dword [ebp + 0xc], 0
je 0x5559e5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x555ba8
cmp dword [ebp + 0x20], 0
je 0x5559e5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x555ba8
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x555a8a
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x555aae
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x555ae1
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x555b05
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x273], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x555b38
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x555b5a
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5559af
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x555837
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x556120
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x556091
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x555d0c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x555d30
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x555d54
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x555d78
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x555d9c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x555dc0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x555de4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x555e08
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x556091
test ecx, ecx
jle 0x556091
cmp dword [ebp + 0xc], 0
je 0x555e80
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55601a
cmp dword [ebp + 0x20], 0
je 0x555e80
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55601a
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x55601a
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x555f28
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x555f3d
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x555f71
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x555f86
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x555fb8
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x555fcd
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x272], al
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
mov eax, dword [eax]
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x555e4a
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x555cd2
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x5564e6
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x556174
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x556198
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5561bc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5561e0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x556204
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x556228
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55624c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x556270
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5564e6
test ecx, ecx
jle 0x5564e6
cmp dword [ebp + 0xc], 0
je 0x5562e8
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55646f
cmp dword [ebp + 0x20], 0
je 0x5562e8
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55646f
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55637d
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x556392
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x5563c6
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x5563db
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55640d
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x556422
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x272], al
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
mov eax, dword [eax]
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5562b2
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x55613a
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x556e19
cmp dword [ebp + 0x18], 0
je 0x5569da
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x55694b
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x5565dd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x556601
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x556625
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x556649
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55666d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x556691
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5566b5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5566d9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55694b
test ecx, ecx
jle 0x55694b
cmp dword [ebp + 0xc], 0
je 0x556751
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5568d4
cmp dword [ebp + 0x20], 0
je 0x556751
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5568d4
mov ebx, dword [ebp - 0x258]
add ebx, eax
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x258]
movzx edx, byte [edx]
cmp edx, dword [ebp - 0x38]
je 0x5568d4
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x556808
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x556857
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x5568a8
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
sar edx, 0x18
mov eax, dword [ebp - 0x26c]
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55671b
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5565a3
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x556d8a
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x556a2e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x556a52
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x556a76
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x556a9a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x556abe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x556ae2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x556b06
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x556b2a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x556d8a
test ecx, ecx
jle 0x556d8a
cmp dword [ebp + 0xc], 0
je 0x556ba2
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x556d13
cmp dword [ebp + 0x20], 0
je 0x556ba2
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x556d13
mov esi, edx
mov ebx, dword [ebp - 0x258]
imul esi, dword [ebp - 0x28]
add ebx, eax
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x264]
add eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
jns 0x556c47
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 1]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
jns 0x556c96
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x264]
movzx edx, byte [edx]
movzx edx, byte [ebx + edx*4 + 2]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
jns 0x556ce7
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
sar edx, 0x18
mov eax, dword [ebp - 0x26c]
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x556b6c
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5569f4
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x557239
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5571aa
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x556e77
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x556e9b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x556ebf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x556ee3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x556f07
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x556f2b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x556f4f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x556f73
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5571aa
test ecx, ecx
jle 0x5571aa
cmp dword [ebp + 0xc], 0
je 0x556feb
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x557133
cmp dword [ebp + 0x20], 0
je 0x556feb
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x557133
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x258]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0x38]
je 0x557133
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x557093
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
imul edx, eax
sar edx, 0x10
mov eax, dword [ebp - 0x26c]
mov byte [eax], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x5570d5
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x557116
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
sar eax, 0x10
mov edx, dword [ebp - 0x26c]
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x556fb5
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x556e3d
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5575ad
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x55728d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5572b1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5572d5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5572f9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55731d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x557341
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x557365
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x557389
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5575ad
test ecx, ecx
jle 0x5575ad
cmp dword [ebp + 0xc], 0
je 0x557401
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x557536
cmp dword [ebp + 0x20], 0
je 0x557401
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x557536
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x264]
movzx edx, byte [eax + edx*4]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x557496
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
imul edx, eax
sar edx, 0x10
mov eax, dword [ebp - 0x26c]
mov byte [eax], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x264]
movzx eax, byte [edx + eax*4 + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x5574d8
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x264]
movzx eax, byte [eax]
movzx eax, byte [edx + eax*4 + 2]
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x557519
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
sar eax, 0x10
mov edx, dword [ebp - 0x26c]
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5573cb
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x557253
jmp case.default.0x545cee
mov eax, dword [0x662b84]
cmp eax, 4
ja case.default.0x545cee
jmp dword [eax*4 + 0x557651]
cmp dword [ebp + 0x1c], 0
je 0x55896f
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x5580a8
cmp dword [ebp + 0x18], 0
je 0x557c2b
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x557b9c
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5576da
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5576fe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x557722
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x557746
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55776a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55778e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5577b2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5577d6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x557b9c
test ecx, ecx
jle 0x557b9c
cmp dword [ebp + 0xc], 0
je 0x55784e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x557b25
cmp dword [ebp + 0x20], 0
je 0x55784e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x557b25
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0
je 0x557b25
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x5579fb
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
movzx edx, byte [edx]
jns 0x55790c
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x557961
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x5579b9
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 2]
sar edx, 8
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax + 2], dl
jmp 0x557b25
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
movzx edx, byte [edx]
jns 0x557a14
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x557a76
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x557adb
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 2]
sar edx, 8
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x557818
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5576a0
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x558019
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x557c7f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x557ca3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x557cc7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x557ceb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x557d0f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x557d33
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x557d57
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x557d7b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x558019
test ecx, ecx
jle 0x558019
cmp dword [ebp + 0xc], 0
je 0x557df3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x557fa2
cmp dword [ebp + 0x20], 0
je 0x557df3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x557fa2
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x174]
add eax, edx
mov edx, dword [ebp - 0x270]
test ebx, ebx
movzx edx, byte [edx]
jns 0x557e91
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x557ef3
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x557f58
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 2]
sar edx, 8
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x557dbd
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x557c45
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x558519
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x55848a
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x558106
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55812a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55814e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x558172
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x558196
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5581ba
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5581de
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x558202
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55848a
test ecx, ecx
jle 0x55848a
cmp dword [ebp + 0xc], 0
je 0x55827a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x558413
cmp dword [ebp + 0x20], 0
je 0x55827a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x558413
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
mov edx, dword [edx]
cmp edx, dword [ebp - 0x38]
je 0x558413
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
movzx edx, byte [edx]
jns 0x558329
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x55837e
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x5583d6
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 2]
sar edx, 8
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x558244
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5580cc
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5588e0
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x55856d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x558591
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5585b5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5585d9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5585fd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x558621
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x558645
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x558669
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5588e0
test ecx, ecx
jle 0x5588e0
cmp dword [ebp + 0xc], 0
je 0x5586e1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x558869
cmp dword [ebp + 0x20], 0
je 0x5586e1
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x558869
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x174]
add eax, edx
mov edx, dword [ebp - 0x270]
test ebx, ebx
movzx edx, byte [edx]
jns 0x55877f
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, byte [ebx]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x5587d4
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
movzx ebx, byte [ebx + 1]
sub edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 8
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 8
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x55882c
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
mov ebx, dword [ebp - 0x26c]
movzx eax, byte [eax + 0x8efb38]
movzx ebx, byte [ebx + 2]
sar edx, 8
sub edx, ebx
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5586ab
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x558533
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x5592ab
cmp dword [ebp + 0x18], 0
je 0x558e6a
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x558ddb
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x5589da
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5589fe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x558a22
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x558a46
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x558a6a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x558a8e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x558ab2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x558ad6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x558ddb
test ecx, ecx
jle 0x558ddb
cmp dword [ebp + 0xc], 0
je 0x558b4e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x558d64
cmp dword [ebp + 0x20], 0
je 0x558b4e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x558d64
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 3], 0
je 0x558d64
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x558c69
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x558bfc
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 8
mov eax, dword [ebp - 0x26c]
mov byte [eax], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x558c28
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x558c53
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
mov byte [edx + 2], al
jmp 0x558d64
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x174]
test edx, edx
movzx eax, byte [eax]
jns 0x558c82
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
movzx edx, byte [edx]
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x160]
test edx, edx
movzx eax, byte [eax + 1]
jns 0x558cd4
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
movzx edx, byte [edx + 1]
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x558d29
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
movzx edx, byte [edx + 2]
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x558b18
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5589a0
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x55921c
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x558ebe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x558ee2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x558f06
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x558f2a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x558f4e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x558f72
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x558f96
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x558fba
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55921c
test ecx, ecx
jle 0x55921c
cmp dword [ebp + 0xc], 0
je 0x559032
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5591a5
cmp dword [ebp + 0x20], 0
je 0x559032
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5591a5
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x5590c0
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x559115
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
movzx edx, byte [edx + 1]
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x55916a
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
movzx edx, byte [edx + 2]
sub eax, edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x558ffc
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x558e84
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x55968a
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5595fb
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x559309
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55932d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x559351
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x559375
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x559399
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5593bd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5593e1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x559405
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5595fb
test ecx, ecx
jle 0x5595fb
cmp dword [ebp + 0xc], 0
je 0x55947d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x559584
cmp dword [ebp + 0x20], 0
je 0x55947d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x559584
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
cmp edx, dword [ebp - 0x38]
je 0x559584
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x55951c
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 8
mov eax, dword [ebp - 0x26c]
mov byte [eax], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x559548
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x559573
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x559447
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5592cf
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x5599bf
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5596de
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x559702
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x559726
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55974a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55976e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x559792
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5597b6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5597da
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5599bf
test ecx, ecx
jle 0x5599bf
cmp dword [ebp + 0xc], 0
je 0x559852
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x559948
cmp dword [ebp + 0x20], 0
je 0x559852
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x559948
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x5598e0
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 8
mov eax, dword [ebp - 0x26c]
mov byte [eax], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x55990c
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x559937
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55981c
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5596a4
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x55aea2
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x55a557
cmp dword [ebp + 0x18], 0
je 0x55a098
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x55a009
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x559ac3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x559ae7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x559b0b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x559b2f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x559b53
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x559b77
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x559b9b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x559bbf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55a009
test ecx, ecx
jle 0x55a009
cmp dword [ebp + 0xc], 0
je 0x559c37
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x559f92
cmp dword [ebp + 0x20], 0
je 0x559c37
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x559f92
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0
je 0x559f92
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x559e26
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
movzx edx, byte [edx]
jns 0x559cf5
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x559d19
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x559d60
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x559d85
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x559dce
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x559df3
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
jmp 0x559f92
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
movzx edx, byte [edx]
jns 0x559e3f
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x559e63
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x18
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x559eb7
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x559edc
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x18
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x559f32
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x559f57
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x18
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x559c01
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x559a89
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x55a4c8
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x55a0ec
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55a110
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55a134
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55a158
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55a17c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55a1a0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55a1c4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55a1e8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55a4c8
test ecx, ecx
jle 0x55a4c8
cmp dword [ebp + 0xc], 0
je 0x55a260
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55a451
cmp dword [ebp + 0x20], 0
je 0x55a260
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55a451
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x174]
add eax, edx
mov edx, dword [ebp - 0x270]
test ebx, ebx
movzx edx, byte [edx]
jns 0x55a2fe
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55a322
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x18
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x55a376
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55a39b
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x18
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x55a3f1
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55a416
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x18
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55a22a
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55a0b2
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x55aa0a
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x55a97b
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x55a5b5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55a5d9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55a5fd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55a621
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55a645
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55a669
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55a68d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55a6b1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55a97b
test ecx, ecx
jle 0x55a97b
cmp dword [ebp + 0xc], 0
je 0x55a729
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55a904
cmp dword [ebp + 0x20], 0
je 0x55a729
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55a904
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
mov edx, dword [edx]
cmp edx, dword [ebp - 0x38]
je 0x55a904
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
movzx edx, byte [edx]
jns 0x55a7d8
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55a7fc
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x55a843
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55a868
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x55a8b1
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55a8d6
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55a6f3
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55a57b
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x55ae13
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x55aa5e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55aa82
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55aaa6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55aaca
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55aaee
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55ab12
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55ab36
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55ab5a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55ae13
test ecx, ecx
jle 0x55ae13
cmp dword [ebp + 0xc], 0
je 0x55abd2
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55ad9c
cmp dword [ebp + 0x20], 0
je 0x55abd2
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55ad9c
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x174]
add eax, edx
mov edx, dword [ebp - 0x270]
test ebx, ebx
movzx edx, byte [edx]
jns 0x55ac70
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55ac94
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x55acdb
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55ad00
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
shl ebx, 0x10
add edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x55ad49
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 2]
sub edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55ad6e
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55ab9c
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55aa24
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x55b8f3
cmp dword [ebp + 0x18], 0
je 0x55b473
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x55b3e4
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x55af0d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55af31
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55af55
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55af79
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55af9d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55afc1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55afe5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55b009
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55b3e4
test ecx, ecx
jle 0x55b3e4
cmp dword [ebp + 0xc], 0
je 0x55b081
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55b36d
cmp dword [ebp + 0x20], 0
je 0x55b081
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55b36d
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 3], 0
je 0x55b36d
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x55b233
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x55b12f
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 8
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55b152
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x55b18c
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55b1b0
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x55b1ea
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55b20e
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
jmp 0x55b36d
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x174]
test edx, edx
movzx eax, byte [eax]
jns 0x55b24c
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx]
sub eax, edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55b26f
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx]
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x160]
test edx, edx
movzx eax, byte [eax + 1]
jns 0x55b2b3
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55b2d7
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x55b31d
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55b341
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55b04b
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55aed3
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x55b864
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x55b4c7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55b4eb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55b50f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55b533
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55b557
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55b57b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55b59f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55b5c3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55b864
test ecx, ecx
jle 0x55b864
cmp dword [ebp + 0xc], 0
je 0x55b63b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55b7ed
cmp dword [ebp + 0x20], 0
je 0x55b63b
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55b7ed
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x55b6c9
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 8
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55b6ec
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
shl eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x10
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x55b733
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55b757
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x55b79d
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55b7c1
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55b605
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55b48d
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x55bd69
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x55bcda
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x55b951
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55b975
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55b999
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55b9bd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55b9e1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55ba05
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55ba29
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55ba4d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55bcda
test ecx, ecx
jle 0x55bcda
cmp dword [ebp + 0xc], 0
je 0x55bac5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55bc63
cmp dword [ebp + 0x20], 0
je 0x55bac5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55bc63
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
cmp edx, dword [ebp - 0x38]
je 0x55bc63
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x55bb64
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 8
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55bb87
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x55bbc1
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55bbe5
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x55bc1f
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55bc43
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55ba8f
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55b917
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x55c135
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x55bdbd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55bde1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55be05
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55be29
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55be4d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55be71
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55be95
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55beb9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55c135
test ecx, ecx
jle 0x55c135
cmp dword [ebp + 0xc], 0
je 0x55bf31
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55c0be
cmp dword [ebp + 0x20], 0
je 0x55bf31
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55c0be
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x55bfbf
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 8
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
sub edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55bfe2
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
shl eax, 8
add edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 8
mov byte [eax], dl
xor eax, eax
mov edx, dword [ebp - 0x270]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x55c01c
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
sub eax, edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55c040
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x55c07a
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 8
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
sub eax, edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55c09e
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
shl edx, 8
add eax, edx
mov edx, dword [ebp - 0x26c]
sar eax, 8
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55befb
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55bd83
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x55d5ee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x55ccbb
cmp dword [ebp + 0x18], 0
je 0x55c7ff
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x55c770
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x55c239
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55c25d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55c281
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55c2a5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55c2c9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55c2ed
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55c311
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55c335
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55c770
test ecx, ecx
jle 0x55c770
cmp dword [ebp + 0xc], 0
je 0x55c3ad
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55c6f9
cmp dword [ebp + 0x20], 0
je 0x55c3ad
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55c6f9
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0
je 0x55c6f9
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x55c590
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
movzx edx, byte [edx]
jns 0x55c46b
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55c48f
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x55c4b8
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55c4dc
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x273], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x55c505
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55c527
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
jmp 0x55c6f9
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
movzx edx, byte [edx]
jns 0x55c5a9
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55c5dd
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x55c606
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55c63a
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x273], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x55c663
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx ebx, byte [ebx + 3]
sar edx, 8
imul edx, ebx
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55c695
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55c377
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55c1ff
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x55cc2c
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x55c853
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55c877
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55c89b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55c8bf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55c8e3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55c907
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55c92b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55c94f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55cc2c
test ecx, ecx
jle 0x55cc2c
cmp dword [ebp + 0xc], 0
je 0x55c9c7
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55cbb5
cmp dword [ebp + 0x20], 0
je 0x55c9c7
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55cbb5
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x174]
add eax, edx
mov edx, dword [ebp - 0x270]
test ebx, ebx
movzx edx, byte [edx]
jns 0x55ca65
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55ca99
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x55cac2
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55caf6
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x273], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x55cb1f
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx ebx, byte [ebx + 3]
sar edx, 8
imul edx, ebx
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55cb51
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55c991
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55c819
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x55d162
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x55d0d3
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x55cd19
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55cd3d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55cd61
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55cd85
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55cda9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55cdcd
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55cdf1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55ce15
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55d0d3
test ecx, ecx
jle 0x55d0d3
cmp dword [ebp + 0xc], 0
je 0x55ce8d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55d05c
cmp dword [ebp + 0x20], 0
je 0x55ce8d
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55d05c
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
mov edx, dword [edx]
cmp edx, dword [ebp - 0x38]
je 0x55d05c
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
movzx edx, byte [edx]
jns 0x55cf3c
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55cf60
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x55cf89
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55cfad
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x273], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x55cfd6
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55cff8
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55ce57
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55ccdf
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x55d55f
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x55d1b6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55d1da
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55d1fe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55d222
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55d246
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55d26a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55d28e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55d2b2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55d55f
test ecx, ecx
jle 0x55d55f
cmp dword [ebp + 0xc], 0
je 0x55d32a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55d4e8
cmp dword [ebp + 0x20], 0
je 0x55d32a
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55d4e8
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x174]
add eax, edx
mov edx, dword [ebp - 0x270]
test ebx, ebx
movzx edx, byte [edx]
jns 0x55d3c8
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55d3ec
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x55d415
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55d439
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x273], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x55d462
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55d484
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefeff
mov eax, dword [eax]
and eax, 0xfefeff
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
and edx, 0x1010100
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55d2f4
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55d17c
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x55e01c
cmp dword [ebp + 0x18], 0
je 0x55dba8
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x55db19
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x55d659
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55d67d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55d6a1
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55d6c5
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55d6e9
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55d70d
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55d731
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55d755
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55db19
test ecx, ecx
jle 0x55db19
cmp dword [ebp + 0xc], 0
je 0x55d7cd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55daa2
cmp dword [ebp + 0x20], 0
je 0x55d7cd
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55daa2
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 3], 0
je 0x55daa2
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x55d973
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55d87b
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x55d890
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55d8ba
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x55d8cf
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x188]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x55d8f7
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x55d90c
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x272], al
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
jmp 0x55daa2
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x174]
test edx, edx
jns 0x55d98d
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55d9ae
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x18
mov byte [ebp - 0x274], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x160]
test edx, edx
movzx eax, byte [eax + 1]
jns 0x55d9d6
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55d9f7
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x18
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x55da1f
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55da40
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x18
mov byte [ebp - 0x272], al
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55d797
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55d61f
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x55df8d
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x55dbfc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55dc20
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55dc44
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55dc68
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55dc8c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55dcb0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55dcd4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55dcf8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55df8d
test ecx, ecx
jle 0x55df8d
cmp dword [ebp + 0xc], 0
je 0x55dd70
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55df16
cmp dword [ebp + 0x20], 0
je 0x55dd70
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55df16
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x55ddfe
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55de20
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x55de4a
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55de6b
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x18
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x55de93
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55deb4
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x18
mov byte [ebp - 0x272], al
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55dd3a
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55dbc2
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x55e486
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x55e3f7
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x55e07a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55e09e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55e0c2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55e0e6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55e10a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55e12e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55e152
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55e176
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55e3f7
test ecx, ecx
jle 0x55e3f7
cmp dword [ebp + 0xc], 0
je 0x55e1ee
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55e380
cmp dword [ebp + 0x20], 0
je 0x55e1ee
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55e380
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
cmp edx, dword [ebp - 0x38]
je 0x55e380
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55e28d
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x55e2a2
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55e2cc
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x55e2e1
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x188]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x55e309
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x55e31e
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x272], al
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55e1b8
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55e040
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x55e846
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x55e4da
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55e4fe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55e522
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55e546
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55e56a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55e58e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55e5b2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55e5d6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55e846
test ecx, ecx
jle 0x55e846
cmp dword [ebp + 0xc], 0
je 0x55e64e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55e7cf
cmp dword [ebp + 0x20], 0
je 0x55e64e
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55e7cf
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55e6dc
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x55e6f1
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55e71b
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x55e730
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x188]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x55e758
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x55e76d
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x272], al
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x274]
and eax, 0xfefeff
mov edx, dword [edx]
and edx, 0xfefeff
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 8
sub edx, eax
mov eax, dword [ebp - 0x26c]
or edx, dword [ebp - 0x14]
mov eax, dword [eax]
or eax, dword [ebp - 0x274]
and eax, 0x10100
or edx, eax
mov eax, dword [ebp - 0x26c]
mov dword [eax], edx
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55e618
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x55e4a0
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x55fc91
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x55f38a
cmp dword [ebp + 0x18], 0
je 0x55eee4
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x55ee55
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x55e94a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55e96e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55e992
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55e9b6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55e9da
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55e9fe
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55ea22
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55ea46
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55ee55
test ecx, ecx
jle 0x55ee55
cmp dword [ebp + 0xc], 0
je 0x55eabe
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55edde
cmp dword [ebp + 0x20], 0
je 0x55eabe
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55edde
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0
je 0x55edde
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x55ec8b
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
movzx edx, byte [edx]
jns 0x55eb7c
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55eba0
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x55ebc9
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55ebed
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x273], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x55ec16
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55ec38
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
jmp 0x55edde
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
movzx edx, byte [edx]
jns 0x55eca4
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55ecd8
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x55ed01
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55ed35
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x273], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x55ed5e
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx ebx, byte [ebx + 3]
sar edx, 8
imul edx, ebx
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55ed90
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55ea88
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x55e910
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x55f2fb
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x55ef38
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55ef5c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55ef80
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55efa4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55efc8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55efec
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55f010
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55f034
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55f2fb
test ecx, ecx
jle 0x55f2fb
cmp dword [ebp + 0xc], 0
je 0x55f0ac
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55f284
cmp dword [ebp + 0x20], 0
je 0x55f0ac
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55f284
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x174]
add eax, edx
mov edx, dword [ebp - 0x270]
test ebx, ebx
movzx edx, byte [edx]
jns 0x55f14a
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55f17e
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x55f1a7
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 8
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55f1db
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x273], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x55f204
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx eax, byte [eax]
movzx ebx, byte [ebx + 3]
sar edx, 8
imul edx, ebx
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55f236
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55f076
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x55eefe
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x55f81b
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x55f78c
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x55f3e8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55f40c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55f430
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55f454
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55f478
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55f49c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55f4c0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55f4e4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55f78c
test ecx, ecx
jle 0x55f78c
cmp dword [ebp + 0xc], 0
je 0x55f55c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55f715
cmp dword [ebp + 0x20], 0
je 0x55f55c
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55f715
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
mov edx, dword [edx]
cmp edx, dword [ebp - 0x38]
je 0x55f715
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
movzx edx, byte [edx]
jns 0x55f60b
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55f62f
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x55f658
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55f67c
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x273], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x55f6a5
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55f6c7
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55f526
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x55f3ae
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x55fc02
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x55f86f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55f893
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55f8b7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55f8db
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55f8ff
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55f923
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55f947
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55f96b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x55fc02
test ecx, ecx
jle 0x55fc02
cmp dword [ebp + 0xc], 0
je 0x55f9e3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x55fb8b
cmp dword [ebp + 0x20], 0
je 0x55f9e3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x55fb8b
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x174]
add eax, edx
mov edx, dword [ebp - 0x270]
test ebx, ebx
movzx edx, byte [edx]
jns 0x55fa81
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55faa5
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x55face
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x188]
test ebx, ebx
jns 0x55faf2
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
sar edx, 0x18
mov byte [ebp - 0x273], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x55fb1b
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55fb3d
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x18
mov byte [ebp - 0x272], dl
mov edx, dword [ebp - 0x26c]
mov eax, dword [edx]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55f9ad
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x55f835
jmp case.default.0x545cee
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x560682
cmp dword [ebp + 0x18], 0
je 0x560223
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x560194
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x55fcfc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x55fd20
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x55fd44
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x55fd68
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x55fd8c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x55fdb0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x55fdd4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x55fdf8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x560194
test ecx, ecx
jle 0x560194
cmp dword [ebp + 0xc], 0
je 0x55fe70
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x56011d
cmp dword [ebp + 0x20], 0
je 0x55fe70
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x56011d
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 3], 0
je 0x56011d
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x560001
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x55ff1e
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x55ff33
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x55ff5d
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x55ff72
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x188]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x55ff9a
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x55ffaf
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x272], al
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
mov eax, dword [eax]
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
jmp 0x56011d
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x56001a
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x56003c
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x560066
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x560087
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x18
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x5600af
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x5600d0
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x18
mov byte [ebp - 0x272], al
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
mov eax, dword [eax]
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x55fe3a
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x55fcc2
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x5605f3
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x560277
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x56029b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5602bf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5602e3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x560307
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x56032b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x56034f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x560373
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5605f3
test ecx, ecx
jle 0x5605f3
cmp dword [ebp + 0xc], 0
je 0x5603eb
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x56057c
cmp dword [ebp + 0x20], 0
je 0x5603eb
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x56057c
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x560479
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x56049b
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x18
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x5604c5
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x5604e6
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x18
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x56050e
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x56052f
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x18
mov byte [ebp - 0x272], al
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
mov eax, dword [eax]
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5603b5
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x56023d
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x560ad7
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x560a48
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x5606e0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x560704
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x560728
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x56074c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x560770
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x560794
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5607b8
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5607dc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x560a48
test ecx, ecx
jle 0x560a48
cmp dword [ebp + 0xc], 0
je 0x560854
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5609d1
cmp dword [ebp + 0x20], 0
je 0x560854
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5609d1
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
cmp edx, dword [ebp - 0x38]
je 0x5609d1
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x5608f3
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x560908
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x560932
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x560947
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x188]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x56096f
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x560984
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x272], al
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
mov eax, dword [eax]
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x56081e
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x5606a6
jmp case.default.0x545cee
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x560e82
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x560b2b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x560b4f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x560b73
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x560b97
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x560bbb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x560bdf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x560c03
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x560c27
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x560e82
test ecx, ecx
jle 0x560e82
cmp dword [ebp + 0xc], 0
je 0x560c9f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x560e0b
cmp dword [ebp + 0x20], 0
je 0x560c9f
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x560e0b
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x188]
test eax, eax
jns 0x560d2d
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x560d42
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
sar edx, 0x10
mov byte [ebp - 0x274], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x188]
test edx, edx
jns 0x560d6c
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x560d81
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x273], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x188]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x560da9
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x14c]
test edx, edx
jns 0x560dbe
add edx, 0x3fff
sar edx, 0xe
imul edx
sar eax, 0x10
mov byte [ebp - 0x272], al
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x274]
and edx, 0xfefefeff
mov eax, dword [eax]
or eax, 0x1010100
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 0x1010100
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
shr edx, 8
sub eax, edx
mov edx, dword [ebp - 0x26c]
and eax, dword [ebp - 0x14]
mov dword [edx], eax
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x118]
add dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x140]
add dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x154]
add dword [ebp - 0x14c], eax
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x190]
add dword [ebp - 0x188], edx
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x560c69
inc dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x104]
add dword [ebp - 0x10c], ecx
mov eax, dword [ebp - 0x11c]
add dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x130]
add dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x144]
add dword [ebp - 0x13c], ecx
mov eax, dword [ebp - 0x158]
add dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x16c]
add dword [ebp - 0x164], edx
mov ecx, dword [ebp - 0x180]
add dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x194]
add dword [ebp - 0x18c], eax
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x1a0], edx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jl 0x560af1
jmp case.default.0x545cee
cmp dword [ebp + 0x1c], 0
je 0x562123
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x28], 1
jne 0x5618c0
cmp dword [ebp + 0x18], 0
je 0x56146c
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0xf0]
cmp eax, dword [ebp - 0xec]
jge case.default.0x545cee
mov edx, dword [ebp - 0xf0]
movsx ecx, word [edx*4 + 0x637c56]
test ecx, ecx
je 0x5613dd
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x560f86
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x560faa
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x560fce
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x560ff2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x561016
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x56103a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x56105e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x561082
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x5613dd
test ecx, ecx
jle 0x5613dd
cmp dword [ebp + 0xc], 0
je 0x5610fa
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x561366
cmp dword [ebp + 0x20], 0
je 0x5610fa
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x561366
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
cmp byte [edx + 3], 0xff
jne 0x561265
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
movzx edx, byte [edx]
jns 0x5611a8
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x5611ed
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x561234
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
sar edx, 0x18
mov eax, dword [ebp - 0x26c]
mov byte [eax + 2], dl
jmp 0x561366
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
movzx edx, byte [edx]
jns 0x56127e
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
sar edx, 8
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x5612d3
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
sar edx, 8
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x56132a
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
sar edx, 8
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5610c4
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x560f4c
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x561831
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x5614c0
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5614e4
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x561508
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x56152c
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x561550
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x561574
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x561598
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x5615bc
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x561831
test ecx, ecx
jle 0x561831
cmp dword [ebp + 0xc], 0
je 0x561634
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5617ba
cmp dword [ebp + 0x20], 0
je 0x561634
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5617ba
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x174]
add eax, edx
mov edx, dword [ebp - 0x270]
test ebx, ebx
movzx edx, byte [edx]
jns 0x5616d2
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
sar edx, 8
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x561727
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
sar edx, 8
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x270]
movzx ebx, byte [ebx + 3]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x56177e
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
sar edx, 8
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
mov eax, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5615fe
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x561486
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x561cff
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x561c70
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x56191e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x561942
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x561966
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x56198a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5619ae
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x5619d2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x5619f6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x561a1a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x561c70
test ecx, ecx
jle 0x561c70
cmp dword [ebp + 0xc], 0
je 0x561a92
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x561bf9
cmp dword [ebp + 0x20], 0
je 0x561a92
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x561bf9
mov ebx, eax
shl ebx, 2
add ebx, dword [ebp - 0x258]
mov esi, edx
imul esi, dword [ebp - 0x28]
add ebx, esi
mov dword [ebp - 0x270], ebx
add eax, dword [ebp - 0x1a4]
imul edx, dword [ebp - 0x30]
add eax, edx
mov edx, dword [ebp - 0x270]
mov edx, dword [edx]
cmp edx, dword [ebp - 0x38]
je 0x561bf9
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x174]
test ebx, ebx
movzx edx, byte [edx]
jns 0x561b41
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x561b86
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x561bcd
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
sar edx, 0x18
mov eax, dword [ebp - 0x26c]
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x561a5c
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x5618e4
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x562094
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x561d53
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x561d77
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x561d9b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x561dbf
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x561de3
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x561e07
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x561e2b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x561e4f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x562094
test ecx, ecx
jle 0x562094
cmp dword [ebp + 0xc], 0
je 0x561ec7
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x56201d
cmp dword [ebp + 0x20], 0
je 0x561ec7
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x56201d
mov esi, edx
mov ebx, eax
imul esi, dword [ebp - 0x28]
shl ebx, 2
add ebx, dword [ebp - 0x258]
add ebx, esi
mov dword [ebp - 0x270], ebx
imul edx, dword [ebp - 0x30]
add eax, dword [ebp - 0x1a4]
mov ebx, dword [ebp - 0x174]
add eax, edx
mov edx, dword [ebp - 0x270]
test ebx, ebx
movzx edx, byte [edx]
jns 0x561f65
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x160]
test ebx, ebx
movzx edx, byte [edx + 1]
jns 0x561faa
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
xor ebx, ebx
mov bl, byte [eax]
movzx ebx, byte [ebx + 0x8efb38]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
movzx ebx, byte [ebx + 1]
imul edx, ebx
mov ebx, dword [ebp - 0x26c]
sar edx, 0x18
mov byte [ebx + 1], dl
mov edx, dword [ebp - 0x270]
mov ebx, dword [ebp - 0x14c]
test ebx, ebx
movzx edx, byte [edx + 2]
jns 0x561ff1
add ebx, 0x3fff
sar ebx, 0xe
imul edx, ebx
movzx eax, byte [eax]
movzx eax, byte [eax + 0x8efb38]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax + 2]
imul edx, eax
sar edx, 0x18
mov eax, dword [ebp - 0x26c]
mov byte [eax + 2], dl
dec ecx
mov edx, dword [ebp - 0x100]
add dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x561e91
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x561d19
jmp case.default.0x545cee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jne 0x562a08
cmp dword [ebp + 0x18], 0
je 0x5625fb
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jge case.default.0x545cee
mov eax, dword [ebp - 0xf0]
movsx ecx, word [eax*4 + 0x637c56]
test ecx, ecx
je 0x56256c
mov edx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x100]
movsx eax, word [edx*4 + 0x637c54]
mov edx, dword [ebp - 0x100]
imul edx, eax
sar ebx, 1
jns 0x56218e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x5621b2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x5621d6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5621fa
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x56221e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x562242
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x562266
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x56228a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x56256c
test ecx, ecx
jle 0x56256c
cmp dword [ebp + 0xc], 0
je 0x562302
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5624f5
cmp dword [ebp + 0x20], 0
je 0x562302
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5624f5
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp byte [eax + 3], 0xff
jne 0x56242f
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx]
mov edx, dword [ebp - 0x174]
test edx, edx
jns 0x5623a1
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x160]
test edx, edx
movzx eax, byte [eax + 1]
jns 0x5623d6
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x56240d
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
sar eax, 0x10
mov edx, dword [ebp - 0x26c]
mov byte [edx + 2], al
jmp 0x5624f5
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x174]
test edx, edx
movzx eax, byte [eax]
jns 0x562448
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x18
mov byte [edx], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x160]
test edx, edx
movzx eax, byte [eax + 1]
jns 0x562489
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x18
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x5624cc
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
sar eax, 0x18
mov edx, dword [ebp - 0x26c]
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x5622cc
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x562154
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x562979
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x56264f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x562673
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x562697
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x5626bb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x5626df
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x562703
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x562727
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x56274b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x562979
test ecx, ecx
jle 0x562979
cmp dword [ebp + 0xc], 0
je 0x5627c3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x562902
cmp dword [ebp + 0x20], 0
je 0x5627c3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x562902
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x562851
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x270]
movzx eax, byte [eax + 3]
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
imul edx, eax
sar edx, 0x18
mov eax, dword [ebp - 0x26c]
mov byte [eax], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x562896
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x18
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x5628d9
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x270]
movzx edx, byte [edx + 3]
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
sar eax, 0x18
mov edx, dword [ebp - 0x26c]
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x56278d
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x562615
jmp case.default.0x545cee
cmp dword [ebp + 0x18], 0
je 0x562e0b
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x562d7c
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x562a66
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x562a8a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x562aae
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x562ad2
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x562af6
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x562b1a
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x562b3e
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x562b62
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x562d7c
test ecx, ecx
jle 0x562d7c
cmp dword [ebp + 0xc], 0
je 0x562bda
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x562d05
cmp dword [ebp + 0x20], 0
je 0x562bda
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x562d05
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
mov edx, dword [eax]
cmp edx, dword [ebp - 0x38]
je 0x562d05
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x562c79
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
imul edx, eax
sar edx, 0x10
mov eax, dword [ebp - 0x26c]
mov byte [eax], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x562cb1
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x562ce8
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
sar eax, 0x10
mov edx, dword [ebp - 0x26c]
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x562ba4
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x562a2c
jmp case.default.0x545cee
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ebp - 0xec]
jge case.default.0x545cee
mov ecx, dword [ebp - 0xf0]
movsx ecx, word [ecx*4 + 0x637c56]
test ecx, ecx
je 0x563164
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x100]
movsx eax, word [eax*4 + 0x637c54]
imul edx, eax
sar ebx, 1
jns 0x562e5f
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x140]
imul edx, eax
sar ebx, 1
jns 0x562e83
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x118]
imul edx, eax
sar ebx, 1
jns 0x562ea7
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x114]
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x12c]
imul edx, eax
sar ebx, 1
jns 0x562ecb
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebp - 0x154]
imul edx, eax
sar ebx, 1
jns 0x562eef
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], edx
mov edx, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x168]
imul edx, eax
sar ebx, 1
jns 0x562f13
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x164]
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x17c]
mov ebx, dword [ebp - 0x17c]
imul edx, eax
sar ebx, 1
jns 0x562f37
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x190]
imul edx, eax
sar ebx, 1
jns 0x562f5b
adc ebx, 0
add edx, ebx
add edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], edx
mov edx, eax
add edx, edx
add edx, dword [ebp - 0x1a0]
shl eax, 2
mov dword [ebp - 0x268], edx
add eax, dword [ebp - 0x19c]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0xfc], 0
je 0x563164
test ecx, ecx
jle 0x563164
cmp dword [ebp + 0xc], 0
je 0x562fd3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
cmp ax, word [edx]
ja 0x5630ed
cmp dword [ebp + 0x20], 0
je 0x562fd3
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x268]
sar eax, 8
mov word [edx], ax
mov eax, 0x20000000
mov ebx, dword [ebp - 0x124]
cdq
idiv dword [ebp - 0xfc]
mov edx, eax
mov eax, dword [ebp - 0x110]
sar ebx, 0xa
mov esi, dword [ebp - 0xf8]
imul ebx, dword [ebp - 0xf8]
sar eax, 0xa
imul eax, dword [ebp - 0xf4]
imul ebx, edx
imul eax, edx
shr ebx, 0x13
mov edx, ebx
mov ebx, dword [ebp - 0xf4]
shr eax, 0x13
sub esi, edx
sub ebx, eax
dec esi
dec ebx
or ebx, eax
or ebx, edx
or ebx, esi
test ebx, 0x80000000
jne 0x5630ed
shl eax, 2
add eax, dword [ebp - 0x258]
imul edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0x174]
test eax, eax
jns 0x563061
add eax, 0x3fff
sar eax, 0xe
imul edx, eax
mov eax, dword [ebp - 0x26c]
movzx eax, byte [eax]
imul edx, eax
sar edx, 0x10
mov eax, dword [ebp - 0x26c]
mov byte [eax], dl
mov edx, dword [ebp - 0x270]
xor eax, eax
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x160]
test edx, edx
jns 0x563099
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 1]
imul edx
mov edx, dword [ebp - 0x26c]
sar eax, 0x10
mov byte [edx + 1], al
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x14c]
test edx, edx
movzx eax, byte [eax + 2]
jns 0x5630d0
add edx, 0x3fff
sar edx, 0xe
imul edx
mov edx, dword [ebp - 0x26c]
movzx edx, byte [edx + 2]
imul edx
sar eax, 0x10
mov edx, dword [ebp - 0x26c]
mov byte [edx + 2], al
dec ecx
mov eax, dword [ebp - 0x100]
add dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x12c]
add dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x140]
add dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x154]
add dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x168]
add dword [ebp - 0x160], eax
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x190]
add dword [ebp - 0x188], eax
add dword [ebp - 0x268], 2
add dword [ebp - 0x26c], 4
test ecx, ecx
jg 0x562f9d
inc dword [ebp - 0xf0]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x11c]
add dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x144]
add dword [ebp - 0x13c], edx
mov ecx, dword [ebp - 0x158]
add dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x16c]
add dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x180]
add dword [ebp - 0x178], edx
mov ecx, dword [ebp - 0x194]
add dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1a0], eax
mov edx, dword [ebp - 0x2c]
add dword [ebp - 0x19c], edx
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xec]
jl 0x562e25
cmp byte [ebp - 0x39], 0
je 0x563201
lea eax, [ebp - 0xac8]
push eax
call fcn.004796b8
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret