Function at 0x59723f
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x494
push esi
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xd4], 0
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x14]
mov edx, dword [eax]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
add ecx, 1
mov esi, dword [ebp + 0x14]
mov dword [esi], ecx
cmp edx, eax
jb 0x59728d
mov eax, 0xfffffff8
jmp 0x59fa51
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x24]
cmp eax, dword [edx + 8]
jb 0x5972a2
mov eax, 0xffffffeb
jmp 0x59fa51
mov ecx, dword [ebp + 0x18]
mov dword [ebp - 0x110], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x34]
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp + 0x20]
and ecx, 2
test ecx, ecx
je 0x5972dc
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0xe0], edx
mov eax, dword [ebp + 8]
mov dword [ebp - 0xdc], eax
lea ecx, [ebp - 0xe0]
mov dword [ebp + 0x1c], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x40], 0
je 0x597318
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x597318
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x54]
jbe 0x597318
mov eax, dword [ebp + 0x14]
mov dword [eax + 0x44], 1
cmp dword [ebp - 0x104], 0x50
jle 0x5974a9
mov ecx, dword [ebp - 0x104]
sub ecx, 0x50
mov dword [ebp - 0x108], ecx
cmp dword [ebp - 0x108], 0x64
jle 0x597356
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 4]
shl eax, 8
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 5]
or eax, edx
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x108]
shl eax, 1
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0xd0]
cmp edx, dword [ecx + 0x14]
jge 0x59749f
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0xd0]
mov eax, dword [ecx + edx*4]
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [edx + eax*4 + 4]
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x10]
sub eax, dword [ebp - 0x108]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x60]
mov dword [ebp - 0xf8], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
sub ecx, dword [eax + 0x4c]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x10]
sub eax, dword [ebp - 0x108]
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 0xc]
mov dword [edx + eax*4], ecx
mov eax, dword [ebp + 0x24]
add eax, 1
push eax
push 2
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
add edx, 3
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x597426
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0xf8]
mov dword [ecx + 0x60], edx
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 2]
or ecx, eax
mov edx, dword [ebp + 0xc]
add edx, ecx
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
cmp ecx, 0x41
je 0x5973e0
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 4]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0x1c]
mov dword [ecx + edx*4 + 4], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x10]
sub edx, dword [ebp - 0x108]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0xcc]
mov dword [ecx + edx*4], eax
xor eax, eax
jmp 0x59fa51
mov dword [ebp - 0x104], 0x50
mov ecx, dword [ebp - 0x104]
mov dword [ebp - 0x42c], ecx
cmp dword [ebp - 0x42c], 0x50
ja case.0x5974cf.51
mov edx, dword [ebp - 0x42c]
movzx eax, byte [edx + 0x59fb16]
jmp dword [eax*4 + 0x59fa56]
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 2]
or edx, ecx
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + edx]
cmp ecx, 0x41
je 0x59750a
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x20], 2
jmp 0x597267
mov eax, dword [ebp + 0x24]
add eax, 1
push eax
push 2
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
add edx, 3
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x597550
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 2]
or edx, ecx
mov eax, dword [ebp + 0xc]
add eax, edx
mov dword [ebp + 0xc], eax
jmp case.0x5974cf.80
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 3]
cmp edx, 0x4c
jne 0x59764f
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 4]
shl ecx, 8
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 5]
or ecx, eax
shl ecx, 1
mov dword [ebp - 0xd0], ecx
cmp dword [ebp - 0xd0], 0x1fffe
jne 0x5975bb
mov ecx, dword [ebp + 0x14]
xor edx, edx
cmp dword [ecx + 0x68], 0
setne dl
mov dword [ebp - 0x430], edx
jmp 0x5975fa
mov eax, dword [ebp - 0xd0]
cmp eax, dword [ebp + 0x10]
jge 0x5975e4
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0xd0]
cmp dword [edx + eax*4], 0
jl 0x5975e4
mov dword [ebp - 0x434], 1
jmp 0x5975ee
mov dword [ebp - 0x434], 0
mov ecx, dword [ebp - 0x434]
mov dword [ebp - 0x430], ecx
mov edx, dword [ebp - 0x430]
mov dword [ebp - 0xec], edx
cmp dword [ebp - 0xec], 0
je 0x59761b
mov dword [ebp - 0x438], 6
jmp 0x597637
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 2]
or ecx, eax
add ecx, 3
mov dword [ebp - 0x438], ecx
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0x438]
mov dword [ebp + 0xc], ecx
mov dword [ebp + 0x20], 2
jmp 0x597267
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 3
push 0
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
add eax, 3
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 1
jne 0x5976cf
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 4]
shl eax, 8
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 5]
or eax, edx
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + eax + 3]
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
cmp ecx, 0x41
jne 0x5976cd
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 2]
or eax, edx
mov ecx, dword [ebp + 0xc]
add ecx, eax
mov dword [ebp + 0xc], ecx
jmp 0x5976a5
jmp 0x5976fe
cmp dword [ebp - 0x11c], 0
je 0x5976e3
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 2]
or eax, edx
mov ecx, dword [ebp + 0xc]
add ecx, eax
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x20], 2
jmp 0x597267
mov eax, dword [ebp + 0xc]
add eax, 3
mov dword [ebp + 0xc], eax
jmp 0x59fa4c
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x68], 0
je 0x59779f
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x68]
cmp dword [eax + 4], 0
jne 0x59779f
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x68]
mov dword [ebp - 0x128], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x128]
mov edx, dword [ecx]
mov dword [eax + 0x68], edx
mov eax, dword [ebp - 0x128]
mov ecx, dword [eax + 0x14]
shl ecx, 2
push ecx
mov edx, dword [ebp - 0x128]
mov eax, dword [edx + 0x10]
push eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0xc]
push edx
call fcn.00579dc0
add esp, 0xc
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x128]
mov edx, dword [ecx + 0xc]
mov dword [eax + 0x54], edx
mov eax, dword [ebp - 0x110]
mov dword [ebp + 0x18], eax
mov ecx, dword [ebp - 0x128]
mov edx, dword [ecx + 8]
mov dword [ebp + 0xc], edx
jmp 0x59fa4c
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x3c], 0
je 0x5977ba
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x54]
jne 0x5977ba
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
mov dword [eax + 0x58], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov dword [edx + 0x5c], eax
mov eax, 1
jmp 0x59fa51
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 1]
mov dword [ebp + 0x18], edx
mov eax, dword [ebp + 0xc]
add eax, 2
mov dword [ebp + 0xc], eax
jmp 0x59fa4c
mov ecx, dword [ebp + 0x24]
add ecx, 1
push ecx
push 2
push 0
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
add edx, 3
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 1
jne 0x597829
jmp 0x597863
cmp dword [ebp - 0x11c], 0
je 0x59783d
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 2]
or edx, ecx
mov eax, dword [ebp + 0xc]
add eax, edx
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
cmp edx, 0x41
je case.0x5974cf.69
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
cmp ecx, 0x42
jne 0x597875
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 0x20]
and edx, 1
test edx, edx
je 0x597889
mov eax, 1
jmp 0x59fa51
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 2]
or ecx, eax
mov edx, dword [ebp + 0xc]
add edx, ecx
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
cmp ecx, 0x41
je 0x597889
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x5c]
mov dword [ebp + 0x10], ecx
jmp 0x5972dc
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 2
push 0
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
add eax, 3
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 1
jne 0x597906
xor eax, eax
jmp 0x59fa51
cmp dword [ebp - 0x11c], 0
je 0x59791a
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 2]
or eax, edx
mov ecx, dword [ebp + 0xc]
add ecx, eax
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
cmp eax, 0x41
je case.0x5974cf.70
mov ecx, dword [ebp + 0x20]
and ecx, 1
test ecx, ecx
je 0x597954
mov eax, 1
jmp 0x59fa51
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
jmp 0x5972dc
cmp dword [ebp - 0x118], 0
je 0x5979df
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 2]
or ecx, eax
mov dword [ebp - 0x100], ecx
mov dword [ebp - 0x18], 0
jmp 0x597996
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x100]
jae 0x5979dd
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x4c]
jae 0x5979bc
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
and ecx, 0xc0
cmp ecx, 0x80
jne 0x5979db
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
jmp 0x5979bc
jmp 0x59798d
jmp 0x597a0c
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 2]
or ecx, eax
mov edx, dword [ebp + 8]
sub edx, ecx
mov dword [ebp + 8], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x4c]
jae 0x597a0c
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
jmp 0x59fa4c
cmp dword [0x695788], 0
je 0x597b1b
mov dword [ebp - 0x158], 1
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 1]
mov dword [ebp - 0x154], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x4c]
mov dword [ebp - 0x14c], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x14]
mov edx, dword [eax + 0x50]
sub edx, dword [ecx + 0x4c]
mov dword [ebp - 0x148], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x14]
mov edx, dword [eax + 0x54]
sub edx, dword [ecx + 0x4c]
mov dword [ebp - 0x144], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
sub ecx, dword [eax + 0x4c]
mov dword [ebp - 0x140], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 2]
shl eax, 8
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 3]
or eax, edx
mov dword [ebp - 0x130], eax
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 4]
shl ecx, 8
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 5]
or ecx, eax
mov dword [ebp - 0x12c], ecx
mov eax, dword [ebp + 0x10]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x13c], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x60]
mov dword [ebp - 0x138], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x6c]
mov dword [ebp - 0x134], ecx
lea edx, [ebp - 0x158]
push edx
call dword [0x695788]
add esp, 4
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
jle 0x597b07
xor eax, eax
jmp 0x59fa51
cmp dword [ebp - 0x11c], 0
jge 0x597b1b
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp + 0xc]
add eax, 6
mov dword [ebp + 0xc], eax
jmp 0x59fa4c
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 2]
or edx, ecx
mov eax, dword [ebp + 0x14]
add edx, dword [eax + 0x48]
mov dword [ebp - 0x124], edx
mov ecx, dword [ebp - 0x124]
movzx edx, byte [ecx]
sub edx, 0x50
mov dword [ebp - 0x48], edx
cmp dword [ebp - 0x48], 0x64
jle 0x597b79
mov eax, dword [ebp - 0x124]
movzx ecx, byte [eax + 4]
shl ecx, 8
mov edx, dword [ebp - 0x124]
movzx eax, byte [edx + 5]
or ecx, eax
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x68]
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp + 0x14]
lea ecx, [ebp - 0x4c]
mov dword [eax + 0x68], ecx
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x38], edx
cmp dword [ebp - 0x38], 0x1e
jg 0x597bb4
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x3c], eax
jmp 0x597bd7
mov ecx, dword [ebp - 0x38]
shl ecx, 2
push ecx
call dword [0x64c6a0]
add esp, 4
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
jne 0x597bd7
mov eax, 0xfffffffa
jmp 0x59fa51
mov edx, dword [ebp - 0x38]
shl edx, 2
push edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0xc]
push ecx
mov edx, dword [ebp - 0x3c]
push edx
call fcn.0057e4e0
add esp, 0xc
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x54]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov dword [edx + 0x54], eax
mov ecx, dword [ebp + 0x24]
add ecx, 1
push ecx
push 2
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x124]
add eax, 3
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 1
jne 0x597c6e
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x4c]
mov dword [edx + 0x68], eax
mov ecx, dword [ebp - 0x3c]
lea edx, [ebp - 0xc8]
cmp ecx, edx
je 0x597c64
mov eax, dword [ebp - 0x3c]
push eax
call dword [0x64c6a4]
add esp, 4
mov eax, 1
jmp 0x59fa51
cmp dword [ebp - 0x11c], 0
je 0x597c82
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov ecx, dword [ebp + 0x14]
lea edx, [ebp - 0x4c]
mov dword [ecx + 0x68], edx
mov eax, dword [ebp - 0x38]
shl eax, 2
push eax
mov ecx, dword [ebp - 0x3c]
push ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
push eax
call fcn.0057e4e0
add esp, 0xc
mov ecx, dword [ebp - 0x124]
movzx edx, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp - 0x124]
movzx ecx, byte [eax + 2]
or edx, ecx
mov eax, dword [ebp - 0x124]
add eax, edx
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x124]
movzx edx, byte [ecx]
cmp edx, 0x41
je 0x597c03
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 0x68], ecx
mov edx, dword [ebp - 0x3c]
lea eax, [ebp - 0xc8]
cmp edx, eax
je 0x597d01
mov ecx, dword [ebp - 0x3c]
push ecx
call dword [0x64c6a4]
add esp, 4
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp + 8]
mov dword [ebp - 0xe8], eax
mov ecx, dword [ebp + 0x24]
add ecx, 1
push ecx
push 2
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
add eax, 3
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 1
jne 0x597d54
jmp 0x597d8e
cmp dword [ebp - 0x11c], 0
je 0x597d68
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 2]
or eax, edx
mov ecx, dword [ebp + 0xc]
add ecx, eax
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
cmp eax, 0x41
je 0x597d17
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
cmp edx, 0x4a
je 0x597dab
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
cmp ecx, 0x41
je 0x597dab
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 2]
or eax, edx
mov ecx, dword [ebp + 0xc]
add ecx, eax
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
cmp eax, 0x41
je 0x597dab
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x5c]
mov dword [ebp + 0x10], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x58]
mov dword [ebp + 8], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
cmp eax, 0x42
je 0x597df9
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0xe8]
jne 0x597e07
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
jmp 0x59fa4c
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 3]
cmp ecx, 0x12
jne 0x597e25
mov edx, dword [ebp + 0x18]
and edx, 0xfffffff8
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 4]
or edx, ecx
mov dword [ebp + 0x18], edx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
cmp eax, 0x44
jne 0x597e88
mov ecx, dword [ebp + 0x24]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
add eax, 3
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x597e76
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov edx, dword [ebp - 0x28]
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x20], 2
jmp 0x597267
mov eax, dword [ebp + 0x24]
add eax, 1
push eax
push 2
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0x28]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x597ecb
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov ecx, dword [ebp + 0xc]
add ecx, 3
mov dword [ebp + 0xc], ecx
mov dword [ebp + 0x20], 0
jmp 0x597267
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 2]
or eax, edx
mov ecx, dword [ebp + 0xc]
add ecx, eax
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
cmp eax, 0x41
je case.0x5974cf.65
jmp 0x59fa4c
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp - 0xd8], ecx
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 2
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0xd8]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x597f5d
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp - 0xd8]
movzx ecx, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp - 0xd8]
movzx eax, byte [edx + 2]
or ecx, eax
mov edx, dword [ebp - 0xd8]
add edx, ecx
mov dword [ebp - 0xd8], edx
mov eax, dword [ebp - 0xd8]
movzx ecx, byte [eax]
cmp ecx, 0x41
je 0x597f5d
mov edx, dword [ebp - 0xd8]
add edx, 3
mov dword [ebp + 0xc], edx
jmp 0x59fa4c
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0xd8]
movzx edx, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp - 0xd8]
movzx ecx, byte [eax + 2]
or edx, ecx
mov eax, dword [ebp - 0xd8]
add eax, edx
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0xd8]
movzx edx, byte [ecx]
cmp edx, 0x41
je 0x597faf
mov eax, dword [ebp + 0x24]
add eax, 1
push eax
push 2
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0xd8]
add edx, 3
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59802d
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x59fa4c
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 2]
or eax, edx
mov ecx, dword [ebp + 0xc]
sub ecx, eax
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx + 4]
mov dword [ebp - 0xe8], eax
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
mov dword [ebp + 0x1c], edx
mov eax, dword [ebp - 0x28]
movzx ecx, byte [eax]
cmp ecx, 0x45
je 0x5980a1
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
cmp eax, 0x46
je 0x5980a1
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ecx]
cmp edx, 0x47
je 0x5980a1
mov eax, dword [ebp - 0x28]
movzx ecx, byte [eax]
cmp ecx, 0x48
je 0x5980a1
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
cmp eax, 0x4a
jne 0x5980bd
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
mov dword [ecx + 0x58], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x5c], ecx
mov eax, 1
jmp 0x59fa51
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
cmp eax, 0x4b
je 0x598215
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ecx]
sub edx, 0x50
mov dword [ebp - 0x108], edx
cmp dword [ebp - 0x108], 0x64
jle 0x5980fd
mov eax, dword [ebp - 0x28]
movzx ecx, byte [eax + 4]
shl ecx, 8
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx + 5]
or ecx, eax
mov dword [ebp - 0x108], ecx
mov ecx, dword [ebp - 0x108]
shl ecx, 1
mov dword [ebp - 0xd0], ecx
cmp dword [ebp - 0x108], 0
jle 0x598215
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x108]
mov dword [edx + 0x60], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0xd0]
cmp edx, dword [ecx + 0x14]
jl 0x59813e
mov eax, dword [ebp + 0x14]
mov dword [eax + 0x28], 1
jmp 0x598192
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x10]
sub edx, dword [ebp - 0x108]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
mov esi, dword [ebp - 0xd0]
mov ecx, dword [ecx + edx*4]
mov dword [eax + esi*4], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
sub eax, dword [edx + 0x4c]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0xc]
mov ecx, dword [ebp - 0xd0]
mov dword [edx + ecx*4 + 4], eax
mov edx, dword [ebp + 0x10]
cmp edx, dword [ebp - 0xd0]
jg 0x598192
mov eax, dword [ebp - 0xd0]
add eax, 2
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x68], 0
je 0x598215
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + 4]
cmp ecx, dword [ebp - 0x108]
jne 0x598215
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x68]
mov dword [ebp - 0x15c], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x15c]
mov eax, dword [edx]
mov dword [ecx + 0x68], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x15c]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0x54], eax
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ecx + 0x14]
shl edx, 2
push edx
mov eax, dword [ebp - 0x15c]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
push eax
call fcn.0057e4e0
add esp, 0xc
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ecx + 8]
mov dword [ebp + 0xc], edx
mov eax, dword [ebp - 0x110]
mov dword [ebp + 0x18], eax
jmp 0x59fa4c
mov ecx, dword [ebp - 0x110]
mov dword [ebp + 0x18], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
cmp eax, 0x42
je 0x598234
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0xe8]
jne 0x598242
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
jmp 0x59fa4c
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
cmp ecx, 0x44
jne 0x5982a5
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 3
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x598293
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp - 0x28]
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x20], 2
jmp 0x597267
mov ecx, dword [ebp + 0x24]
add ecx, 1
push ecx
push 2
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x28]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x5982e8
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x20], 0
jmp 0x597267
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x2c], 0
je 0x598318
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x4c]
jne 0x598318
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 0x18]
and eax, 2
test eax, eax
je case.0x5974cf.1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x4c]
je 0x598388
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
je 0x598381
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x4c]
mov ecx, dword [ebp + 0x14]
add eax, dword [ecx + 0x18]
cmp dword [ebp + 8], eax
jb 0x598381
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
sub eax, dword [edx + 0x18]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
movzx eax, byte [edx + 0x1c]
cmp ecx, eax
jne 0x598381
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x18], 1
je 0x598388
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
sub eax, dword [edx + 0x18]
movzx ecx, byte [eax + 1]
mov edx, dword [ebp + 0x14]
movzx eax, byte [edx + 0x1d]
cmp ecx, eax
je 0x598388
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x59fa4c
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x4c]
je 0x5983a8
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x59fa4c
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x4c]
mov ecx, dword [ebp + 0x14]
add eax, dword [ecx + 0x64]
cmp dword [ebp + 8], eax
je 0x5983ce
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
jmp 0x59fa4c
mov eax, dword [ebp + 0x18]
and eax, 2
test eax, eax
je 0x598444
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x598426
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
movzx eax, byte [edx + 0x1c]
cmp ecx, eax
jne 0x59841d
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x18], 1
je 0x598424
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 1]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1d]
cmp eax, edx
je 0x598424
xor eax, eax
jmp 0x59fa51
jmp 0x598436
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x30], 0
je 0x598436
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x59fa4c
mov edx, dword [ebp + 0x14]
cmp dword [edx + 0x30], 0
je 0x598454
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x38], 0
jne case.0x5974cf.17
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
je 0x5984ac
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x14]
mov edx, dword [eax + 0x50]
sub edx, dword [ecx + 0x18]
cmp dword [ebp + 8], edx
jne 0x5984a5
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
movzx eax, byte [edx + 0x1c]
cmp ecx, eax
jne 0x5984a5
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x18], 1
je 0x5984ac
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 1]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1d]
cmp eax, edx
je 0x5984ac
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x59fa4c
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x5984cc
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x59fa4c
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
je 0x598529
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x14]
mov edx, dword [eax + 0x50]
sub edx, dword [ecx + 0x18]
cmp dword [ebp + 8], edx
jne 0x598522
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
movzx eax, byte [edx + 0x1c]
cmp ecx, eax
jne 0x598522
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x18], 1
je 0x598529
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 1]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1d]
cmp eax, edx
je 0x598529
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x59fa4c
cmp dword [ebp - 0x118], 0
je 0x5987cb
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x4c]
jne 0x59855e
mov dword [ebp - 0x114], 0
jmp 0x5986a4
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [ebp - 0x160], eax
mov ecx, dword [ebp - 0x160]
movzx edx, byte [ecx]
and edx, 0xc0
cmp edx, 0x80
jne 0x598592
mov eax, dword [ebp - 0x160]
sub eax, 1
mov dword [ebp - 0x160], eax
jmp 0x59856a
mov ecx, dword [ebp - 0x160]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x59865f
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 0x16c]
imul eax, eax, 6
mov dword [ebp - 0x168], eax
mov ecx, dword [ebp - 0x16c]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x168]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x164], 1
jmp 0x598618
mov eax, dword [ebp - 0x164]
add eax, 1
mov dword [ebp - 0x164], eax
mov ecx, dword [ebp - 0x164]
cmp ecx, dword [ebp - 0x16c]
jg 0x59865f
mov edx, dword [ebp - 0x168]
sub edx, 6
mov dword [ebp - 0x168], edx
mov eax, dword [ebp - 0x160]
add eax, dword [ebp - 0x164]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x168]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x598609
cmp dword [ebp - 0x100], 0x100
jae 0x59868e
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x24]
mov eax, dword [ebp - 0x100]
movzx ecx, byte [edx + eax]
and ecx, 0x10
test ecx, ecx
je 0x59868e
mov dword [ebp - 0x43c], 1
jmp 0x598698
mov dword [ebp - 0x43c], 0
mov edx, dword [ebp - 0x43c]
mov dword [ebp - 0x114], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x5986bb
mov dword [ebp - 0x24], 0
jmp 0x5987c6
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x100]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x598784
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x178]
imul ecx, ecx, 6
mov dword [ebp - 0x174], ecx
mov edx, dword [ebp - 0x178]
mov eax, dword [ebp - 0x100]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x174]
shl eax, cl
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x170], 1
jmp 0x598740
mov ecx, dword [ebp - 0x170]
add ecx, 1
mov dword [ebp - 0x170], ecx
mov edx, dword [ebp - 0x170]
cmp edx, dword [ebp - 0x178]
jg 0x598784
mov eax, dword [ebp - 0x174]
sub eax, 6
mov dword [ebp - 0x174], eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x170]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x174]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x598731
cmp dword [ebp - 0x100], 0x100
jae 0x5987b3
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x24]
mov eax, dword [ebp - 0x100]
movzx ecx, byte [edx + eax]
and ecx, 0x10
test ecx, ecx
je 0x5987b3
mov dword [ebp - 0x440], 1
jmp 0x5987bd
mov dword [ebp - 0x440], 0
mov edx, dword [ebp - 0x440]
mov dword [ebp - 0x24], edx
jmp 0x598851
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x4c]
je 0x5987fa
mov edx, dword [ebp + 8]
movzx eax, byte [edx - 1]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x24]
movzx eax, byte [edx + eax]
and eax, 0x10
test eax, eax
je 0x5987fa
mov dword [ebp - 0x444], 1
jmp 0x598804
mov dword [ebp - 0x444], 0
mov ecx, dword [ebp - 0x444]
mov dword [ebp - 0x114], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x59883e
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x24]
movzx edx, byte [ecx + edx]
and edx, 0x10
test edx, edx
je 0x59883e
mov dword [ebp - 0x448], 1
jmp 0x598848
mov dword [ebp - 0x448], 0
mov eax, dword [ebp - 0x448]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
cmp edx, 4
jne 0x59887b
mov ecx, dword [ebp - 0x24]
sub ecx, dword [ebp - 0x114]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x44c], ecx
jmp 0x59888f
mov edx, dword [ebp - 0x24]
xor eax, eax
cmp edx, dword [ebp - 0x114]
setne al
mov dword [ebp - 0x44c], eax
cmp dword [ebp - 0x44c], 0
je 0x59889f
xor eax, eax
jmp 0x59fa51
jmp 0x59fa4c
mov ecx, dword [ebp + 0x18]
and ecx, 4
test ecx, ecx
jne 0x5988f2
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x14]
mov ecx, dword [edx + 0x50]
sub ecx, dword [eax + 0x18]
cmp dword [ebp + 8], ecx
ja 0x5988f2
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1c]
cmp eax, edx
jne 0x5988f2
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x18], 1
je 0x5988eb
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 1]
mov eax, dword [ebp + 0x14]
movzx ecx, byte [eax + 0x1d]
cmp edx, ecx
jne 0x5988f2
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x50]
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
cmp eax, ecx
jb 0x59890f
xor eax, eax
jmp 0x59fa51
cmp dword [ebp - 0x118], 0
je 0x598940
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x598940
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
and eax, 0xc0
cmp eax, 0x80
jne 0x598940
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x598918
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
jmp 0x59fa4c
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 0x50]
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
cmp ecx, edx
jb 0x59896b
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x59fa4c
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x59898b
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
cmp dword [ebp - 0x118], 0
je 0x598a5d
mov ecx, dword [ebp - 0x100]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x598a5d
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x180], eax
mov ecx, dword [ebp - 0x180]
imul ecx, ecx, 6
mov dword [ebp - 0x17c], ecx
mov edx, dword [ebp - 0x180]
mov eax, dword [ebp - 0x100]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x17c]
shl eax, cl
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x180]
mov edx, dword [ebp - 0x180]
sub edx, 1
mov dword [ebp - 0x180], edx
test ecx, ecx
jle 0x598a5d
mov eax, dword [ebp - 0x17c]
sub eax, 6
mov dword [ebp - 0x17c], eax
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x17c]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x598a0b
cmp dword [ebp - 0x100], 0x100
jae 0x598a87
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x100]
movzx edx, byte [eax + ecx]
and edx, 4
test edx, edx
je 0x598a87
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x59fa4c
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x598aa7
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
cmp dword [ebp - 0x118], 0
je 0x598b77
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x598b77
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x188], edx
mov eax, dword [ebp - 0x188]
imul eax, eax, 6
mov dword [ebp - 0x184], eax
mov ecx, dword [ebp - 0x188]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x184]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x188]
mov ecx, dword [ebp - 0x188]
sub ecx, 1
mov dword [ebp - 0x188], ecx
test eax, eax
jle 0x598b77
mov edx, dword [ebp - 0x184]
sub edx, 6
mov dword [ebp - 0x184], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x184]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x598b25
cmp dword [ebp - 0x100], 0x100
jae 0x598b9a
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x100]
movzx edx, byte [eax + ecx]
and edx, 4
test edx, edx
jne 0x598ba1
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x59fa4c
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x598bc1
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
cmp dword [ebp - 0x118], 0
je 0x598c91
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x598c91
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x190], edx
mov eax, dword [ebp - 0x190]
imul eax, eax, 6
mov dword [ebp - 0x18c], eax
mov ecx, dword [ebp - 0x190]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x18c]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x190]
mov ecx, dword [ebp - 0x190]
sub ecx, 1
mov dword [ebp - 0x190], ecx
test eax, eax
jle 0x598c91
mov edx, dword [ebp - 0x18c]
sub edx, 6
mov dword [ebp - 0x18c], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x18c]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x598c3f
cmp dword [ebp - 0x100], 0x100
jae 0x598cbb
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x100]
movzx edx, byte [eax + ecx]
and edx, 1
test edx, edx
je 0x598cbb
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x59fa4c
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x598cdb
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
cmp dword [ebp - 0x118], 0
je 0x598dab
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x598dab
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x198], edx
mov eax, dword [ebp - 0x198]
imul eax, eax, 6
mov dword [ebp - 0x194], eax
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x194]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x198]
mov ecx, dword [ebp - 0x198]
sub ecx, 1
mov dword [ebp - 0x198], ecx
test eax, eax
jle 0x598dab
mov edx, dword [ebp - 0x194]
sub edx, 6
mov dword [ebp - 0x194], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x194]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x598d59
cmp dword [ebp - 0x100], 0x100
jae 0x598dce
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x100]
movzx edx, byte [eax + ecx]
and edx, 1
test edx, edx
jne 0x598dd5
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x59fa4c
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x598df5
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
cmp dword [ebp - 0x118], 0
je 0x598ec5
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x598ec5
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x1a0], edx
mov eax, dword [ebp - 0x1a0]
imul eax, eax, 6
mov dword [ebp - 0x19c], eax
mov ecx, dword [ebp - 0x1a0]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x19c]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x1a0]
mov ecx, dword [ebp - 0x1a0]
sub ecx, 1
mov dword [ebp - 0x1a0], ecx
test eax, eax
jle 0x598ec5
mov edx, dword [ebp - 0x19c]
sub edx, 6
mov dword [ebp - 0x19c], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x19c]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x598e73
cmp dword [ebp - 0x100], 0x100
jae 0x598eef
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x100]
movzx edx, byte [eax + ecx]
and edx, 0x10
test edx, edx
je 0x598eef
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x59fa4c
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x598f0f
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
cmp dword [ebp - 0x118], 0
je 0x598fdf
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x598fdf
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x1a8], edx
mov eax, dword [ebp - 0x1a8]
imul eax, eax, 6
mov dword [ebp - 0x1a4], eax
mov ecx, dword [ebp - 0x1a8]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x1a4]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x1a8]
sub ecx, 1
mov dword [ebp - 0x1a8], ecx
test eax, eax
jle 0x598fdf
mov edx, dword [ebp - 0x1a4]
sub edx, 6
mov dword [ebp - 0x1a4], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x1a4]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x598f8d
cmp dword [ebp - 0x100], 0x100
jae 0x599002
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x100]
movzx edx, byte [eax + ecx]
and edx, 0x10
test edx, edx
jne 0x599009
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x59fa4c
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x599029
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
cmp dword [ebp - 0x118], 0
je 0x5990f9
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x5990f9
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x1b0], edx
mov eax, dword [ebp - 0x1b0]
imul eax, eax, 6
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp - 0x1b0]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x1ac]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1b0]
sub ecx, 1
mov dword [ebp - 0x1b0], ecx
test eax, eax
jle 0x5990f9
mov edx, dword [ebp - 0x1ac]
sub edx, 6
mov dword [ebp - 0x1ac], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x1ac]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x5990a7
lea edx, [ebp - 0x1bc]
push edx
lea eax, [ebp - 0x1b8]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x1b4], eax
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 1]
mov dword [ebp - 0x450], eax
cmp dword [ebp - 0x450], 4
ja case.default.0x59913c
mov ecx, dword [ebp - 0x450]
jmp dword [ecx*4 + 0x59fb67]
cmp dword [ebp - 0x104], 0xd
jne 0x599153
xor eax, eax
jmp 0x59fa51
jmp 0x599234
cmp dword [ebp - 0x1b8], 9
je 0x59917f
cmp dword [ebp - 0x1b8], 5
je 0x59917f
cmp dword [ebp - 0x1b8], 8
je 0x59917f
mov dword [ebp - 0x454], 0
jmp 0x599189
mov dword [ebp - 0x454], 1
xor edx, edx
cmp dword [ebp - 0x104], 0xd
sete dl
cmp dword [ebp - 0x454], edx
jne 0x5991a4
xor eax, eax
jmp 0x59fa51
jmp 0x599234
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 2]
xor edx, edx
cmp ecx, dword [ebp - 0x1b4]
setne dl
xor eax, eax
cmp dword [ebp - 0x104], 0xe
sete al
cmp edx, eax
jne 0x5991d2
xor eax, eax
jmp 0x59fa51
jmp 0x599234
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 2]
xor eax, eax
cmp edx, dword [ebp - 0x1b8]
setne al
xor ecx, ecx
cmp dword [ebp - 0x104], 0xe
sete cl
cmp eax, ecx
jne 0x5991fd
xor eax, eax
jmp 0x59fa51
jmp 0x599234
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 2]
xor ecx, ecx
cmp eax, dword [ebp - 0x1bc]
setne cl
xor edx, edx
cmp dword [ebp - 0x104], 0xe
sete dl
cmp ecx, edx
jne 0x599228
xor eax, eax
jmp 0x59fa51
jmp 0x599234
mov eax, 0xfffffff2
jmp 0x59fa51
mov eax, dword [ebp + 0xc]
add eax, 3
mov dword [ebp + 0xc], eax
jmp 0x59fa4c
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x599254
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
cmp dword [ebp - 0x118], 0
je 0x599324
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x599324
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x1c4], edx
mov eax, dword [ebp - 0x1c4]
imul eax, eax, 6
mov dword [ebp - 0x1c0], eax
mov ecx, dword [ebp - 0x1c4]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x1c0]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x1c4]
mov ecx, dword [ebp - 0x1c4]
sub ecx, 1
mov dword [ebp - 0x1c4], ecx
test eax, eax
jle 0x599324
mov edx, dword [ebp - 0x1c0]
sub edx, 6
mov dword [ebp - 0x1c0], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x1c0]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x5992d2
lea edx, [ebp - 0x1d0]
push edx
lea eax, [ebp - 0x1cc]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x1c8], eax
cmp dword [ebp - 0x1c8], 2
jne 0x599357
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x5994a4
mov dword [ebp - 0x1d4], 1
cmp dword [ebp - 0x118], 0
jne 0x59938a
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
jmp 0x599465
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x599465
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x1e0], ecx
mov edx, dword [ebp - 0x1e0]
imul edx, edx, 6
mov dword [ebp - 0x1dc], edx
mov eax, dword [ebp - 0x1e0]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x1dc]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x1d8], 1
jmp 0x59940f
mov eax, dword [ebp - 0x1d8]
add eax, 1
mov dword [ebp - 0x1d8], eax
mov ecx, dword [ebp - 0x1d8]
cmp ecx, dword [ebp - 0x1e0]
jg 0x599453
mov edx, dword [ebp - 0x1dc]
sub edx, 6
mov dword [ebp - 0x1dc], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x1d8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x1dc]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x599400
mov ecx, dword [ebp - 0x1d4]
add ecx, dword [ebp - 0x1e0]
mov dword [ebp - 0x1d4], ecx
lea edx, [ebp - 0x1d0]
push edx
lea eax, [ebp - 0x1cc]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x1c8], eax
cmp dword [ebp - 0x1c8], 2
je 0x599493
jmp 0x5994a4
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x1d4]
mov dword [ebp + 8], edx
jmp 0x599357
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x59fa4c
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 2]
or edx, ecx
shl edx, 1
mov dword [ebp - 0xd0], edx
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
mov eax, dword [ebp - 0xd0]
cmp eax, dword [ebp + 0x10]
jge 0x59951a
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0xd0]
cmp dword [edx + eax*4], 0
jl 0x59951a
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xd0]
mov edx, dword [edx + eax*4 + 4]
sub edx, dword [ecx + esi*4]
mov dword [ebp - 0x458], edx
jmp 0x59952c
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x50]
sub ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp - 0x458], ecx
mov edx, dword [ebp - 0x458]
mov dword [ebp - 8], edx
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
mov dword [ebp - 0x45c], ecx
mov edx, dword [ebp - 0x45c]
sub edx, 0x33
mov dword [ebp - 0x45c], edx
cmp dword [ebp - 0x45c], 7
ja case.default.0x59956a
mov eax, dword [ebp - 0x45c]
movzx ecx, byte [eax + 0x59fb83]
jmp dword [ecx*4 + 0x59fb7b]
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
sub eax, 0x33
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp - 0x100]
and edx, 1
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x100]
movsx ecx, byte [eax + 0x61a700]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x100]
movsx eax, byte [edx + 0x61a708]
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0
jne 0x5995d1
mov dword [ebp - 0x120], 0x7fffffff
jmp 0x59966c
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
sub edx, 0x3a
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 2]
or ecx, eax
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 3]
shl edx, 8
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 4]
or edx, ecx
mov dword [ebp - 0x120], edx
cmp dword [ebp - 0x120], 0
jne 0x599629
mov dword [ebp - 0x120], 0x7fffffff
mov edx, dword [ebp + 0xc]
add edx, 5
mov dword [ebp + 0xc], edx
jmp 0x59966c
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0xd0]
push ecx
call fcn.0059fca7
add esp, 0x14
test eax, eax
jne 0x59965e
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 8]
add edx, dword [ebp - 8]
mov dword [ebp + 8], edx
jmp 0x5972dc
cmp dword [ebp - 8], 0
jne 0x599677
jmp 0x5972dc
mov dword [ebp - 0x18], 1
jmp 0x599689
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x5996c6
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0xd0]
push eax
call fcn.0059fca7
add esp, 0x14
test eax, eax
jne 0x5996bb
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 8]
mov dword [ebp + 8], ecx
jmp 0x599680
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp - 0x120]
jne 0x5996d6
jmp 0x5972dc
cmp dword [ebp - 0x14], 0
je 0x599777
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x5996f1
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x599734
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x599762
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0xd0]
push edx
call fcn.0059fca7
add esp, 0x14
test eax, eax
jne 0x599769
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 8]
add eax, dword [ebp - 8]
mov dword [ebp + 8], eax
jmp 0x5996e8
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x59978e
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x5997c9
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0xd0]
push eax
call fcn.0059fca7
add esp, 0x14
test eax, eax
jne 0x5997be
jmp 0x5997c9
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 8]
mov dword [ebp + 8], ecx
jmp 0x599785
mov edx, dword [ebp + 8]
cmp edx, dword [ebp - 0x2c]
jb 0x59981f
mov eax, dword [ebp + 0x24]
add eax, 1
push eax
push 0
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x599814
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov ecx, dword [ebp + 8]
sub ecx, dword [ebp - 8]
mov dword [ebp + 8], ecx
jmp 0x5997c9
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp - 0xf0], edx
mov eax, dword [ebp + 0xc]
add eax, 0x21
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
mov dword [ebp - 0x460], edx
mov eax, dword [ebp - 0x460]
sub eax, 0x33
mov dword [ebp - 0x460], eax
cmp dword [ebp - 0x460], 7
ja case.default.0x599870
mov ecx, dword [ebp - 0x460]
movzx edx, byte [ecx + 0x59fb93]
jmp dword [edx*4 + 0x59fb8b]
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
sub ecx, 0x33
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
mov eax, dword [ebp - 0x100]
and eax, 1
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x100]
movsx edx, byte [ecx + 0x61a700]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x100]
movsx ecx, byte [eax + 0x61a708]
mov dword [ebp - 0x120], ecx
cmp dword [ebp - 0x120], 0
jne 0x5998d7
mov dword [ebp - 0x120], 0x7fffffff
jmp 0x59994a
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
sub eax, 0x3a
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 2]
or edx, ecx
mov dword [ebp - 0x20], edx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 3]
shl eax, 8
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 4]
or eax, edx
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0
jne 0x59992c
mov dword [ebp - 0x120], 0x7fffffff
mov eax, dword [ebp + 0xc]
add eax, 5
mov dword [ebp + 0xc], eax
jmp 0x59994a
mov dword [ebp - 0x120], 1
mov ecx, dword [ebp - 0x120]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x118], 0
je 0x599a9f
mov dword [ebp - 0x18], 1
jmp 0x599969
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x599a9d
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x599987
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x599a4a
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x1e8], edx
mov eax, dword [ebp - 0x1e8]
imul eax, eax, 6
mov dword [ebp - 0x1e4], eax
mov ecx, dword [ebp - 0x1e8]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x1e4]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x1e8]
mov ecx, dword [ebp - 0x1e8]
sub ecx, 1
mov dword [ebp - 0x1e8], ecx
test eax, eax
jle 0x599a4a
mov edx, dword [ebp - 0x1e4]
sub edx, 6
mov dword [ebp - 0x1e4], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x1e4]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x5999f8
cmp dword [ebp - 0x100], 0xff
jbe 0x599a68
cmp dword [ebp - 0x104], 0x3b
jne 0x599a66
xor eax, eax
jmp 0x59fa51
jmp 0x599a98
mov edx, dword [ebp - 0x100]
shr edx, 3
mov eax, dword [ebp - 0xf0]
movzx edx, byte [eax + edx]
mov ecx, dword [ebp - 0x100]
and ecx, 7
mov eax, 1
shl eax, cl
and edx, eax
test edx, edx
jne 0x599a98
xor eax, eax
jmp 0x59fa51
jmp 0x599960
jmp 0x599b12
mov dword [ebp - 0x18], 1
jmp 0x599ab1
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
jg 0x599b12
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x599acb
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
mov edx, dword [ebp - 0x100]
shr edx, 3
mov eax, dword [ebp - 0xf0]
movzx edx, byte [eax + edx]
mov ecx, dword [ebp - 0x100]
and ecx, 7
mov eax, 1
shl eax, cl
and edx, eax
test edx, edx
jne 0x599b10
xor eax, eax
jmp 0x59fa51
jmp 0x599aa8
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x120]
jne 0x599b22
jmp 0x5972dc
cmp dword [ebp - 0x14], 0
je 0x599d7d
cmp dword [ebp - 0x118], 0
je 0x599cc2
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x599b4a
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp + 0x24]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x599b8d
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x599ba3
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x599baa
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x599c6f
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x1f0], ecx
mov edx, dword [ebp - 0x1f0]
imul edx, edx, 6
mov dword [ebp - 0x1ec], edx
mov eax, dword [ebp - 0x1f0]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x1ec]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1f0]
sub ecx, 1
mov dword [ebp - 0x1f0], ecx
test eax, eax
jle 0x599c6f
mov edx, dword [ebp - 0x1ec]
sub edx, 6
mov dword [ebp - 0x1ec], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x1ec]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x599c1d
cmp dword [ebp - 0x100], 0xff
jbe 0x599c8d
cmp dword [ebp - 0x104], 0x3b
jne 0x599c8b
xor eax, eax
jmp 0x59fa51
jmp 0x599cbd
mov edx, dword [ebp - 0x100]
shr edx, 3
mov eax, dword [ebp - 0xf0]
movzx edx, byte [eax + edx]
mov ecx, dword [ebp - 0x100]
and ecx, 7
mov eax, 1
shl eax, cl
and edx, eax
test edx, edx
jne 0x599cbd
xor eax, eax
jmp 0x59fa51
jmp 0x599b41
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x599cd3
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp + 0x24]
add eax, 1
push eax
push 0
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x599d16
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x599d2c
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x599d33
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x100]
shr ecx, 3
mov edx, dword [ebp - 0xf0]
movzx eax, byte [edx + ecx]
mov ecx, dword [ebp - 0x100]
and ecx, 7
mov edx, 1
shl edx, cl
and eax, edx
test eax, eax
jne 0x599d78
xor eax, eax
jmp 0x59fa51
jmp 0x599cca
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x118], 0
je 0x599f78
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x599da1
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x599efa
mov dword [ebp - 0x1f4], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x599dca
jmp 0x599efa
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x599ea5
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x200], ecx
mov edx, dword [ebp - 0x200]
imul edx, edx, 6
mov dword [ebp - 0x1fc], edx
mov eax, dword [ebp - 0x200]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x1fc]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x1f8], 1
jmp 0x599e4f
mov eax, dword [ebp - 0x1f8]
add eax, 1
mov dword [ebp - 0x1f8], eax
mov ecx, dword [ebp - 0x1f8]
cmp ecx, dword [ebp - 0x200]
jg 0x599e93
mov edx, dword [ebp - 0x1fc]
sub edx, 6
mov dword [ebp - 0x1fc], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x1f8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x1fc]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x599e40
mov ecx, dword [ebp - 0x1f4]
add ecx, dword [ebp - 0x200]
mov dword [ebp - 0x1f4], ecx
cmp dword [ebp - 0x100], 0xff
jbe 0x599ebe
cmp dword [ebp - 0x104], 0x3b
jne 0x599ebc
jmp 0x599efa
jmp 0x599ee9
mov edx, dword [ebp - 0x100]
shr edx, 3
mov eax, dword [ebp - 0xf0]
movzx edx, byte [eax + edx]
mov ecx, dword [ebp - 0x100]
and ecx, 7
mov eax, 1
shl eax, cl
and edx, eax
test edx, edx
jne 0x599ee9
jmp 0x599efa
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x1f4]
mov dword [ebp + 8], ecx
jmp 0x599d98
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x599f3d
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
cmp eax, ecx
jne 0x599f52
jmp 0x599f73
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
and ecx, 0xc0
cmp ecx, 0x80
jne 0x599f71
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
jmp 0x599f52
jmp 0x599efa
jmp 0x59a039
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x599f89
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x599fe3
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x599fa1
jmp 0x599fe3
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x100]
shr ecx, 3
mov edx, dword [ebp - 0xf0]
movzx eax, byte [edx + ecx]
mov ecx, dword [ebp - 0x100]
and ecx, 7
mov edx, 1
shl edx, cl
and eax, edx
test eax, eax
jne 0x599fd8
jmp 0x599fe3
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x599f80
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0x2c]
jb 0x59a039
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59a02e
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [ebp + 8], eax
jmp 0x599fe3
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 0xc]
add ecx, 3
mov dword [ebp - 0xf0], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 2]
or eax, edx
mov ecx, dword [ebp + 0xc]
add ecx, eax
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
mov dword [ebp - 0x464], eax
mov ecx, dword [ebp - 0x464]
sub ecx, 0x33
mov dword [ebp - 0x464], ecx
cmp dword [ebp - 0x464], 7
ja case.default.0x59a09c
mov edx, dword [ebp - 0x464]
movzx eax, byte [edx + 0x59fba3]
jmp dword [eax*4 + 0x59fb9b]
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
sub edx, 0x33
mov dword [ebp - 0x100], edx
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp - 0x100]
and ecx, 1
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x100]
movsx eax, byte [edx + 0x61a700]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x100]
movsx edx, byte [ecx + 0x61a708]
mov dword [ebp - 0x120], edx
cmp dword [ebp - 0x120], 0
jne 0x59a103
mov dword [ebp - 0x120], 0x7fffffff
jmp 0x59a176
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
sub ecx, 0x3a
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 2]
or eax, edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 3]
shl ecx, 8
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 4]
or ecx, eax
mov dword [ebp - 0x120], ecx
cmp dword [ebp - 0x120], 0
jne 0x59a158
mov dword [ebp - 0x120], 0x7fffffff
mov ecx, dword [ebp + 0xc]
add ecx, 5
mov dword [ebp + 0xc], ecx
jmp 0x59a176
mov dword [ebp - 0x120], 1
mov edx, dword [ebp - 0x120]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], 1
jmp 0x59a188
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x59a291
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x59a1a6
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x100]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x59a26b
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x208], eax
mov ecx, dword [ebp - 0x208]
imul ecx, ecx, 6
mov dword [ebp - 0x204], ecx
mov edx, dword [ebp - 0x208]
mov eax, dword [ebp - 0x100]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x204]
shl eax, cl
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x208]
mov edx, dword [ebp - 0x208]
sub edx, 1
mov dword [ebp - 0x208], edx
test ecx, ecx
jle 0x59a26b
mov eax, dword [ebp - 0x204]
sub eax, 6
mov dword [ebp - 0x204], eax
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x204]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59a219
mov edx, dword [ebp - 0xf0]
push edx
mov eax, dword [ebp - 0x100]
push eax
call fcn.005a7250
add esp, 8
test eax, eax
jne 0x59a28c
xor eax, eax
jmp 0x59fa51
jmp 0x59a17f
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x120]
jne 0x59a2a1
jmp 0x5972dc
cmp dword [ebp - 0x14], 0
je 0x59a407
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x59a2bc
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp + 0x24]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59a2ff
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x59a315
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x59a31c
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x59a3e1
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x210], ecx
mov edx, dword [ebp - 0x210]
imul edx, edx, 6
mov dword [ebp - 0x20c], edx
mov eax, dword [ebp - 0x210]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x20c]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x210]
sub ecx, 1
mov dword [ebp - 0x210], ecx
test eax, eax
jle 0x59a3e1
mov edx, dword [ebp - 0x20c]
sub edx, 6
mov dword [ebp - 0x20c], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x20c]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59a38f
mov edx, dword [ebp - 0xf0]
push edx
mov eax, dword [ebp - 0x100]
push eax
call fcn.005a7250
add esp, 8
test eax, eax
jne 0x59a402
xor eax, eax
jmp 0x59fa51
jmp 0x59a2b3
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x59a41e
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x59a54d
mov dword [ebp - 0x214], 1
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x59a447
jmp 0x59a54d
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x59a520
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x220], edx
mov eax, dword [ebp - 0x220]
imul eax, eax, 6
mov dword [ebp - 0x21c], eax
mov ecx, dword [ebp - 0x220]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x21c]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x218], 1
jmp 0x59a4ca
mov eax, dword [ebp - 0x218]
add eax, 1
mov dword [ebp - 0x218], eax
mov ecx, dword [ebp - 0x218]
cmp ecx, dword [ebp - 0x220]
jg 0x59a50e
mov edx, dword [ebp - 0x21c]
sub edx, 6
mov dword [ebp - 0x21c], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x218]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x21c]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59a4bb
mov ecx, dword [ebp - 0x214]
add ecx, dword [ebp - 0x220]
mov dword [ebp - 0x214], ecx
mov edx, dword [ebp - 0xf0]
push edx
mov eax, dword [ebp - 0x100]
push eax
call fcn.005a7250
add esp, 8
test eax, eax
jne 0x59a53c
jmp 0x59a54d
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x214]
mov dword [ebp + 8], ecx
jmp 0x59a415
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59a590
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
cmp eax, ecx
jne 0x59a5a5
jmp 0x59a5c6
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
and ecx, 0xc0
cmp ecx, 0x80
jne 0x59a5c4
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
jmp 0x59a5a5
jmp 0x59a54d
xor eax, eax
jmp 0x59fa51
cmp dword [ebp - 0x118], 0
je 0x59a70f
mov dword [ebp - 8], 1
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x59a6bd
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x22c], edx
mov eax, dword [ebp - 0x22c]
imul eax, eax, 6
mov dword [ebp - 0x228], eax
mov ecx, dword [ebp - 0x22c]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x228]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x224], 1
jmp 0x59a66d
mov eax, dword [ebp - 0x224]
add eax, 1
mov dword [ebp - 0x224], eax
mov ecx, dword [ebp - 0x224]
cmp ecx, dword [ebp - 0x22c]
jg 0x59a6b1
mov edx, dword [ebp - 0x228]
sub edx, 6
mov dword [ebp - 0x228], edx
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x224]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x228]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59a65e
mov ecx, dword [ebp - 8]
add ecx, dword [ebp - 0x22c]
mov dword [ebp - 8], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x50]
sub eax, dword [ebp + 8]
cmp dword [ebp - 8], eax
jle 0x59a6d2
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 8]
sub edx, 1
mov dword [ebp - 8], edx
test ecx, ecx
jle 0x59a70d
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
cmp eax, ecx
je 0x59a70b
xor eax, eax
jmp 0x59fa51
jmp 0x59a6d2
jmp 0x59a74e
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x50]
sub ecx, dword [ebp + 8]
cmp ecx, 1
jge 0x59a724
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 1]
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
cmp edx, eax
je 0x59a745
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 0xc]
add edx, 2
mov dword [ebp + 0xc], edx
jmp 0x59fa4c
cmp dword [ebp - 0x118], 0
je 0x59a9a2
mov dword [ebp - 8], 1
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x59a843
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x238], edx
mov eax, dword [ebp - 0x238]
imul eax, eax, 6
mov dword [ebp - 0x234], eax
mov ecx, dword [ebp - 0x238]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x234]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x230], 1
jmp 0x59a7f3
mov eax, dword [ebp - 0x230]
add eax, 1
mov dword [ebp - 0x230], eax
mov ecx, dword [ebp - 0x230]
cmp ecx, dword [ebp - 0x238]
jg 0x59a837
mov edx, dword [ebp - 0x234]
sub edx, 6
mov dword [ebp - 0x234], edx
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x230]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x234]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59a7e4
mov ecx, dword [ebp - 8]
add ecx, dword [ebp - 0x238]
mov dword [ebp - 8], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x50]
sub eax, dword [ebp + 8]
cmp dword [ebp - 8], eax
jle 0x59a858
xor eax, eax
jmp 0x59fa51
cmp dword [ebp - 0x100], 0x80
jae 0x59a8a6
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x20]
movzx edx, byte [ecx + edx]
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x20]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
cmp ecx, edx
je 0x59a8a1
xor eax, eax
jmp 0x59fa51
jmp 0x59a9a0
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x23c], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x23c]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x59a96b
mov edx, dword [ebp - 0x23c]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x244], eax
mov ecx, dword [ebp - 0x244]
imul ecx, ecx, 6
mov dword [ebp - 0x240], ecx
mov edx, dword [ebp - 0x244]
mov eax, dword [ebp - 0x23c]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x240]
shl eax, cl
mov dword [ebp - 0x23c], eax
mov ecx, dword [ebp - 0x244]
mov edx, dword [ebp - 0x244]
sub edx, 1
mov dword [ebp - 0x244], edx
test ecx, ecx
jle 0x59a96b
mov eax, dword [ebp - 0x240]
sub eax, 6
mov dword [ebp - 0x240], eax
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x240]
shl edx, cl
mov eax, dword [ebp - 0x23c]
or eax, edx
mov dword [ebp - 0x23c], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59a919
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 8]
mov dword [ebp + 0xc], edx
mov eax, dword [ebp - 0x100]
cmp eax, dword [ebp - 0x23c]
je 0x59a9a0
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a713e
add esp, 4
cmp dword [ebp - 0x23c], eax
je 0x59a9a0
xor eax, eax
jmp 0x59fa51
jmp 0x59a9f5
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x50]
sub eax, dword [ebp + 8]
cmp eax, 1
jge 0x59a9b7
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x20]
movzx edx, byte [ecx + edx]
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 1]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x20]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
cmp ecx, edx
je 0x59a9ec
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 0xc]
add ecx, 2
mov dword [ebp + 0xc], ecx
jmp 0x59fa4c
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 2]
or eax, edx
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp + 0xc]
add ecx, 3
mov dword [ebp + 0xc], ecx
jmp 0x59aac6
mov dword [ebp - 0x20], 0
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 2]
or eax, edx
mov dword [ebp - 0x120], eax
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
sub ecx, 0x1f
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
jmp 0x59aac6
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
sub ecx, 0x18
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
mov eax, dword [ebp - 0x100]
and eax, 1
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x100]
movsx edx, byte [ecx + 0x61a700]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x100]
movsx ecx, byte [eax + 0x61a708]
mov dword [ebp - 0x120], ecx
cmp dword [ebp - 0x120], 0
jne 0x59aac6
mov dword [ebp - 0x120], 0x7fffffff
cmp dword [ebp - 0x118], 0
je 0x59aeaa
mov dword [ebp - 8], 1
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0xf4], edx
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x59abb8
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x250], ecx
mov edx, dword [ebp - 0x250]
imul edx, edx, 6
mov dword [ebp - 0x24c], edx
mov eax, dword [ebp - 0x250]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x24c]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x248], 1
jmp 0x59ab68
mov eax, dword [ebp - 0x248]
add eax, 1
mov dword [ebp - 0x248], eax
mov ecx, dword [ebp - 0x248]
cmp ecx, dword [ebp - 0x250]
jg 0x59abac
mov edx, dword [ebp - 0x24c]
sub edx, 6
mov dword [ebp - 0x24c], edx
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x248]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x24c]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59ab59
mov ecx, dword [ebp - 8]
add ecx, dword [ebp - 0x250]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x20]
imul edx, dword [ebp - 8]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x50]
sub ecx, dword [ebp + 8]
cmp edx, ecx
jle 0x59abd3
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 8]
mov dword [ebp + 0xc], edx
cmp dword [ebp - 8], 1
jle 0x59aea8
mov dword [ebp - 0x258], 0
mov eax, dword [ebp + 0x18]
and eax, 1
test eax, eax
je 0x59ac3d
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a713e
add esp, 4
mov dword [ebp - 0x254], eax
cmp dword [ebp - 0x254], 0
jl 0x59ac3d
cmp dword [ebp - 0x254], 0
jl 0x59ac3d
lea edx, [ebp - 0x260]
push edx
mov eax, dword [ebp - 0x254]
push eax
call fcn.005a6fa0
add esp, 8
mov dword [ebp - 0x258], eax
mov dword [ebp - 0x18], 1
jmp 0x59ac4f
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
jg 0x59acc0
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0xf4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0057e8b0
add esp, 0xc
test eax, eax
jne 0x59ac7d
mov eax, dword [ebp + 8]
add eax, dword [ebp - 8]
mov dword [ebp + 8], eax
jmp 0x59acbe
cmp dword [ebp - 0x258], 0
jne 0x59ac8d
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp - 0x258]
push ecx
lea edx, [ebp - 0x260]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0057e8b0
add esp, 0xc
test eax, eax
je 0x59acb2
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x258]
mov dword [ebp + 8], ecx
jmp 0x59ac46
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp - 0x120]
jne 0x59acd0
jmp 0x5972dc
cmp dword [ebp - 0x14], 0
je 0x59adb7
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59aceb
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59ad2e
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59ad44
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x59ad4b
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0xf4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0057e8b0
add esp, 0xc
test eax, eax
jne 0x59ad71
mov eax, dword [ebp + 8]
add eax, dword [ebp - 8]
mov dword [ebp + 8], eax
jmp 0x59adb2
cmp dword [ebp - 0x258], 0
jne 0x59ad81
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp - 0x258]
push ecx
lea edx, [ebp - 0x260]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0057e8b0
add esp, 0xc
test eax, eax
je 0x59ada6
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x258]
mov dword [ebp + 8], ecx
jmp 0x59ace2
mov edx, dword [ebp + 8]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59adce
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x59ae4b
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x50]
sub ecx, dword [ebp - 8]
cmp dword [ebp + 8], ecx
jbe 0x59ade9
jmp 0x59ae4b
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0xf4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0057e8b0
add esp, 0xc
test eax, eax
jne 0x59ae0f
mov edx, dword [ebp + 8]
add edx, dword [ebp - 8]
mov dword [ebp + 8], edx
jmp 0x59ae46
cmp dword [ebp - 0x258], 0
jne 0x59ae1a
jmp 0x59ae4b
mov eax, dword [ebp - 0x258]
push eax
lea ecx, [ebp - 0x260]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0057e8b0
add esp, 0xc
test eax, eax
je 0x59ae3a
jmp 0x59ae4b
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x258]
mov dword [ebp + 8], eax
jmp 0x59adc5
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0x2c]
jb 0x59aea1
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59ae96
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp + 8]
sub eax, dword [ebp - 8]
mov dword [ebp + 8], eax
jmp 0x59ae4b
xor eax, eax
jmp 0x59fa51
jmp 0x59aed4
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x50]
sub edx, dword [ebp + 8]
cmp dword [ebp - 0x20], edx
jle 0x59aebf
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0x18]
and eax, 1
test eax, eax
je 0x59b0a0
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x20]
mov eax, dword [ebp - 0x100]
movzx ecx, byte [edx + eax]
mov dword [ebp - 0x100], ecx
mov dword [ebp - 0x18], 1
jmp 0x59af0a
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x59af3e
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x20]
movzx edx, byte [ecx + edx]
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
cmp eax, edx
je 0x59af3c
xor eax, eax
jmp 0x59fa51
jmp 0x59af01
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp - 0x120]
jne 0x59af4e
jmp 0x5972dc
cmp dword [ebp - 0x14], 0
je 0x59aff1
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59af69
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59afac
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59afe5
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x59afe5
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x20]
movzx ecx, byte [eax + ecx]
mov edx, dword [ebp - 0x100]
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
cmp edx, ecx
je 0x59afec
xor eax, eax
jmp 0x59fa51
jmp 0x59af60
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x59b008
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x59b043
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x59b036
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x20]
movzx edx, byte [ecx + edx]
cmp dword [ebp - 0x100], edx
je 0x59b038
jmp 0x59b043
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x59afff
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0x2c]
jb 0x59b099
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [ebp + 8], eax
cmp dword [ebp - 0x11c], 0
je 0x59b097
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
jmp 0x59b043
xor eax, eax
jmp 0x59fa51
mov dword [ebp - 0x18], 1
jmp 0x59b0b2
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
jg 0x59b0dc
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x100]
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
cmp edx, ecx
je 0x59b0da
xor eax, eax
jmp 0x59fa51
jmp 0x59b0a9
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x120]
jne 0x59b0ec
jmp 0x5972dc
cmp dword [ebp - 0x14], 0
je 0x59b185
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x59b107
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp + 0x24]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59b14a
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x59b179
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x59b179
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x100]
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
cmp ecx, eax
je 0x59b180
xor eax, eax
jmp 0x59fa51
jmp 0x59b0fe
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x59b19c
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59b1cd
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x59b1c0
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
cmp dword [ebp - 0x100], ecx
je 0x59b1c2
jmp 0x59b1cd
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
jmp 0x59b193
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 0x2c]
jb 0x59b223
mov ecx, dword [ebp + 0x24]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
cmp dword [ebp - 0x11c], 0
je 0x59b221
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
jmp 0x59b1cd
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x59b23c
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
cmp dword [ebp - 0x118], 0
je 0x59b315
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x59b315
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x268], edx
mov eax, dword [ebp - 0x268]
imul eax, eax, 6
mov dword [ebp - 0x264], eax
mov ecx, dword [ebp - 0x268]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x264]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x268]
mov ecx, dword [ebp - 0x268]
sub ecx, 1
mov dword [ebp - 0x268], ecx
test eax, eax
jle 0x59b315
mov edx, dword [ebp - 0x264]
sub edx, 6
mov dword [ebp - 0x264], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x264]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59b2c3
mov edx, dword [ebp + 0x18]
and edx, 1
test edx, edx
je 0x59b36d
cmp dword [ebp - 0x100], 0x100
jae 0x59b341
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x20]
mov edx, dword [ebp - 0x100]
movzx eax, byte [ecx + edx]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x20]
movzx edx, byte [ecx + edx]
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
cmp edx, eax
jne 0x59b36b
xor eax, eax
jmp 0x59fa51
jmp 0x59b38d
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x100]
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
cmp eax, ecx
jne 0x59b38d
xor eax, eax
jmp 0x59fa51
jmp 0x59fa4c
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 2]
or ecx, eax
mov dword [ebp - 0x120], ecx
mov ecx, dword [ebp - 0x120]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
jmp 0x59b45e
mov dword [ebp - 0x20], 0
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 2]
or ecx, eax
mov dword [ebp - 0x120], ecx
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
sub edx, 0x28
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp + 0xc]
add eax, 3
mov dword [ebp + 0xc], eax
jmp 0x59b45e
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
sub edx, 0x21
mov dword [ebp - 0x100], edx
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp - 0x100]
and ecx, 1
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x100]
movsx eax, byte [edx + 0x61a700]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x100]
movsx edx, byte [ecx + 0x61a708]
mov dword [ebp - 0x120], edx
cmp dword [ebp - 0x120], 0
jne 0x59b45e
mov dword [ebp - 0x120], 0x7fffffff
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x50]
sub ecx, dword [ebp + 8]
cmp dword [ebp - 0x20], ecx
jle 0x59b473
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0x18]
and edx, 1
test edx, edx
je 0x59badb
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x20]
mov edx, dword [ebp - 0x100]
movzx eax, byte [ecx + edx]
mov dword [ebp - 0x100], eax
cmp dword [ebp - 0x118], 0
je 0x59b5d8
mov dword [ebp - 0x18], 1
jmp 0x59b4cb
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
jg 0x59b5d6
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x26c], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
mov eax, dword [ebp - 0x26c]
and eax, 0xc0
cmp eax, 0xc0
jne 0x59b59a
mov ecx, dword [ebp - 0x26c]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x274], edx
mov eax, dword [ebp - 0x274]
imul eax, eax, 6
mov dword [ebp - 0x270], eax
mov ecx, dword [ebp - 0x274]
mov edx, dword [ebp - 0x26c]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x270]
shl edx, cl
mov dword [ebp - 0x26c], edx
mov eax, dword [ebp - 0x274]
mov ecx, dword [ebp - 0x274]
sub ecx, 1
mov dword [ebp - 0x274], ecx
test eax, eax
jle 0x59b59a
mov edx, dword [ebp - 0x270]
sub edx, 6
mov dword [ebp - 0x270], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x270]
shl edx, cl
mov eax, dword [ebp - 0x26c]
or eax, edx
mov dword [ebp - 0x26c], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59b548
cmp dword [ebp - 0x26c], 0x100
jge 0x59b5bc
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x20]
mov ecx, dword [ebp - 0x26c]
movzx edx, byte [eax + ecx]
mov dword [ebp - 0x26c], edx
mov eax, dword [ebp - 0x100]
cmp eax, dword [ebp - 0x26c]
jne 0x59b5d1
xor eax, eax
jmp 0x59fa51
jmp 0x59b4c2
jmp 0x59b61e
mov dword [ebp - 0x18], 1
jmp 0x59b5ea
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
jg 0x59b61e
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x20]
movzx ecx, byte [eax + ecx]
mov edx, dword [ebp - 0x100]
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
cmp edx, ecx
jne 0x59b61c
xor eax, eax
jmp 0x59fa51
jmp 0x59b5e1
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x120]
jne 0x59b62e
jmp 0x5972dc
cmp dword [ebp - 0x14], 0
je 0x59b849
cmp dword [ebp - 0x118], 0
je 0x59b7b0
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x59b656
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp + 0x24]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59b699
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov dword [ebp - 0x278], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
mov edx, dword [ebp - 0x278]
and edx, 0xc0
cmp edx, 0xc0
jne 0x59b75e
mov eax, dword [ebp - 0x278]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x280], ecx
mov edx, dword [ebp - 0x280]
imul edx, edx, 6
mov dword [ebp - 0x27c], edx
mov eax, dword [ebp - 0x280]
mov edx, dword [ebp - 0x278]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x27c]
shl edx, cl
mov dword [ebp - 0x278], edx
mov eax, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x280]
sub ecx, 1
mov dword [ebp - 0x280], ecx
test eax, eax
jle 0x59b75e
mov edx, dword [ebp - 0x27c]
sub edx, 6
mov dword [ebp - 0x27c], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x27c]
shl edx, cl
mov eax, dword [ebp - 0x278]
or eax, edx
mov dword [ebp - 0x278], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59b70c
cmp dword [ebp - 0x278], 0x100
jge 0x59b780
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x20]
mov ecx, dword [ebp - 0x278]
movzx edx, byte [eax + ecx]
mov dword [ebp - 0x278], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59b7a4
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x59b7a4
mov eax, dword [ebp - 0x100]
cmp eax, dword [ebp - 0x278]
jne 0x59b7ab
xor eax, eax
jmp 0x59fa51
jmp 0x59b64d
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x59b7c1
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp + 0x24]
add eax, 1
push eax
push 0
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59b804
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x59b83d
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x59b83d
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x20]
movzx edx, byte [ecx + edx]
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
cmp eax, edx
jne 0x59b844
xor eax, eax
jmp 0x59fa51
jmp 0x59b7b8
mov edx, dword [ebp + 8]
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x118], 0
je 0x59ba32
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59b86d
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x59b9b4
mov dword [ebp - 0x288], 1
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x59b896
jmp 0x59b9b4
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov dword [ebp - 0x284], eax
mov ecx, dword [ebp - 0x284]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x59b971
mov edx, dword [ebp - 0x284]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x294], eax
mov ecx, dword [ebp - 0x294]
imul ecx, ecx, 6
mov dword [ebp - 0x290], ecx
mov edx, dword [ebp - 0x294]
mov eax, dword [ebp - 0x284]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x290]
shl eax, cl
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x28c], 1
jmp 0x59b91b
mov ecx, dword [ebp - 0x28c]
add ecx, 1
mov dword [ebp - 0x28c], ecx
mov edx, dword [ebp - 0x28c]
cmp edx, dword [ebp - 0x294]
jg 0x59b95f
mov eax, dword [ebp - 0x290]
sub eax, 6
mov dword [ebp - 0x290], eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x28c]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x290]
shl edx, cl
mov eax, dword [ebp - 0x284]
or eax, edx
mov dword [ebp - 0x284], eax
jmp 0x59b90c
mov ecx, dword [ebp - 0x288]
add ecx, dword [ebp - 0x294]
mov dword [ebp - 0x288], ecx
cmp dword [ebp - 0x284], 0x100
jge 0x59b993
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x20]
mov ecx, dword [ebp - 0x284]
movzx edx, byte [eax + ecx]
mov dword [ebp - 0x284], edx
mov eax, dword [ebp - 0x100]
cmp eax, dword [ebp - 0x284]
jne 0x59b9a3
jmp 0x59b9b4
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x288]
mov dword [ebp + 8], ecx
jmp 0x59b864
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59b9f7
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
cmp eax, ecx
jne 0x59ba0c
jmp 0x59ba2d
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
and ecx, 0xc0
cmp ecx, 0x80
jne 0x59ba2b
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
jmp 0x59ba0c
jmp 0x59b9b4
jmp 0x59bad4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59ba43
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x59ba7e
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x59ba71
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x20]
movzx eax, byte [edx + eax]
cmp dword [ebp - 0x100], eax
jne 0x59ba73
jmp 0x59ba7e
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59ba3a
mov edx, dword [ebp + 8]
cmp edx, dword [ebp - 0x2c]
jb 0x59bad4
mov eax, dword [ebp + 0x24]
add eax, 1
push eax
push 0
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59bac9
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov ecx, dword [ebp + 8]
sub ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59ba7e
xor eax, eax
jmp 0x59fa51
cmp dword [ebp - 0x118], 0
je 0x59bbe7
mov dword [ebp - 0x18], 1
jmp 0x59bafa
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x59bbe5
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x298], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x298]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x59bbcb
mov edx, dword [ebp - 0x298]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x2a0], eax
mov ecx, dword [ebp - 0x2a0]
imul ecx, ecx, 6
mov dword [ebp - 0x29c], ecx
mov edx, dword [ebp - 0x2a0]
mov eax, dword [ebp - 0x298]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x29c]
shl eax, cl
mov dword [ebp - 0x298], eax
mov ecx, dword [ebp - 0x2a0]
mov edx, dword [ebp - 0x2a0]
sub edx, 1
mov dword [ebp - 0x2a0], edx
test ecx, ecx
jle 0x59bbcb
mov eax, dword [ebp - 0x29c]
sub eax, 6
mov dword [ebp - 0x29c], eax
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x29c]
shl edx, cl
mov eax, dword [ebp - 0x298]
or eax, edx
mov dword [ebp - 0x298], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59bb79
mov edx, dword [ebp - 0x100]
cmp edx, dword [ebp - 0x298]
jne 0x59bbe0
xor eax, eax
jmp 0x59fa51
jmp 0x59baf1
jmp 0x59bc23
mov dword [ebp - 0x18], 1
jmp 0x59bbf9
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x59bc23
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x100]
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
cmp ecx, eax
jne 0x59bc21
xor eax, eax
jmp 0x59fa51
jmp 0x59bbf0
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x120]
jne 0x59bc33
jmp 0x5972dc
cmp dword [ebp - 0x14], 0
je 0x59be22
cmp dword [ebp - 0x118], 0
je 0x59bd93
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x59bc5b
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp + 0x24]
add eax, 1
push eax
push 0
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59bc9e
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x2a4], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x2a4]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x59bd63
mov edx, dword [ebp - 0x2a4]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x2ac], eax
mov ecx, dword [ebp - 0x2ac]
imul ecx, ecx, 6
mov dword [ebp - 0x2a8], ecx
mov edx, dword [ebp - 0x2ac]
mov eax, dword [ebp - 0x2a4]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x2a8]
shl eax, cl
mov dword [ebp - 0x2a4], eax
mov ecx, dword [ebp - 0x2ac]
mov edx, dword [ebp - 0x2ac]
sub edx, 1
mov dword [ebp - 0x2ac], edx
test ecx, ecx
jle 0x59bd63
mov eax, dword [ebp - 0x2a8]
sub eax, 6
mov dword [ebp - 0x2a8], eax
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x2a8]
shl edx, cl
mov eax, dword [ebp - 0x2a4]
or eax, edx
mov dword [ebp - 0x2a4], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59bd11
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x59bd87
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x59bd87
mov edx, dword [ebp - 0x100]
cmp edx, dword [ebp - 0x2a4]
jne 0x59bd8e
xor eax, eax
jmp 0x59fa51
jmp 0x59bc52
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59bda4
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59bde7
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59be16
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x59be16
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x100]
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
cmp edx, ecx
jne 0x59be1d
xor eax, eax
jmp 0x59fa51
jmp 0x59bd9b
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x118], 0
je 0x59bfe5
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x59be46
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x59bf69
mov dword [ebp - 0x2b4], 1
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x59be6f
jmp 0x59bf69
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x2b0], edx
mov eax, dword [ebp - 0x2b0]
and eax, 0xc0
cmp eax, 0xc0
jne 0x59bf48
mov ecx, dword [ebp - 0x2b0]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x2c0], edx
mov eax, dword [ebp - 0x2c0]
imul eax, eax, 6
mov dword [ebp - 0x2bc], eax
mov ecx, dword [ebp - 0x2c0]
mov edx, dword [ebp - 0x2b0]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x2bc]
shl edx, cl
mov dword [ebp - 0x2b0], edx
mov dword [ebp - 0x2b8], 1
jmp 0x59bef2
mov eax, dword [ebp - 0x2b8]
add eax, 1
mov dword [ebp - 0x2b8], eax
mov ecx, dword [ebp - 0x2b8]
cmp ecx, dword [ebp - 0x2c0]
jg 0x59bf36
mov edx, dword [ebp - 0x2bc]
sub edx, 6
mov dword [ebp - 0x2bc], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x2b8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x2bc]
shl edx, cl
mov eax, dword [ebp - 0x2b0]
or eax, edx
mov dword [ebp - 0x2b0], eax
jmp 0x59bee3
mov ecx, dword [ebp - 0x2b4]
add ecx, dword [ebp - 0x2c0]
mov dword [ebp - 0x2b4], ecx
mov edx, dword [ebp - 0x100]
cmp edx, dword [ebp - 0x2b0]
jne 0x59bf58
jmp 0x59bf69
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x2b4]
mov dword [ebp + 8], eax
jmp 0x59be3d
mov ecx, dword [ebp + 0x24]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59bfac
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 8]
sub ecx, 1
mov dword [ebp + 8], ecx
cmp edx, eax
jne 0x59bfc1
jmp 0x59bfe0
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
and eax, 0xc0
cmp eax, 0x80
jne 0x59bfde
mov ecx, dword [ebp + 8]
sub ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59bfc1
jmp 0x59bf69
jmp 0x59c07d
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x59bff6
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x59c027
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x59c01a
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
cmp dword [ebp - 0x100], edx
jne 0x59c01c
jmp 0x59c027
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x59bfed
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0x2c]
jb 0x59c07d
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59c072
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [ebp + 8], eax
jmp 0x59c027
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 2]
or edx, ecx
mov dword [ebp - 0x120], edx
mov edx, dword [ebp - 0x120]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x14], 1
mov eax, dword [ebp + 0xc]
add eax, 3
mov dword [ebp + 0xc], eax
jmp 0x59c157
mov dword [ebp - 0x20], 0
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 2]
or edx, ecx
mov dword [ebp - 0x120], edx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
sub eax, 0x31
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp + 0xc]
add ecx, 3
mov dword [ebp + 0xc], ecx
jmp 0x59c157
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
sub eax, 0x2a
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp - 0x100]
and edx, 1
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x100]
movsx ecx, byte [eax + 0x61a700]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x100]
movsx eax, byte [edx + 0x61a708]
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0
jne 0x59c157
mov dword [ebp - 0x120], 0x7fffffff
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
cmp dword [ebp - 0xc], 0xe
je 0x59c175
cmp dword [ebp - 0xc], 0xd
jne 0x59c1ad
xor ecx, ecx
cmp dword [ebp - 0xc], 0xd
sete cl
mov dword [ebp - 0xfc], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x59c1b4
mov dword [ebp - 0x30], 0xffffffff
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x50]
sub eax, dword [ebp + 8]
cmp dword [ebp - 0x20], eax
jle 0x59c1c9
xor eax, eax
jmp 0x59fa51
cmp dword [ebp - 0x20], 0
jle 0x59d179
cmp dword [ebp - 0x30], 0
jl 0x59c829
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x468], ecx
cmp dword [ebp - 0x468], 4
ja case.default.0x59c1f9
mov edx, dword [ebp - 0x468]
jmp dword [edx*4 + 0x59fbab]
cmp dword [ebp - 0xfc], 0
je 0x59c210
xor eax, eax
jmp 0x59fa51
mov dword [ebp - 0x18], 1
jmp 0x59c222
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x59c30a
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x59c240
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x100]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x59c305
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0x2c8]
imul ecx, ecx, 6
mov dword [ebp - 0x2c4], ecx
mov edx, dword [ebp - 0x2c8]
mov eax, dword [ebp - 0x100]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x2c4]
shl eax, cl
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x2c8]
mov edx, dword [ebp - 0x2c8]
sub edx, 1
mov dword [ebp - 0x2c8], edx
test ecx, ecx
jle 0x59c305
mov eax, dword [ebp - 0x2c4]
sub eax, 6
mov dword [ebp - 0x2c4], eax
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x2c4]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59c2b3
jmp 0x59c219
jmp 0x59c824
mov dword [ebp - 0x18], 1
jmp 0x59c321
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x59c46a
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x59c33f
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x59c402
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x2d0], edx
mov eax, dword [ebp - 0x2d0]
imul eax, eax, 6
mov dword [ebp - 0x2cc], eax
mov ecx, dword [ebp - 0x2d0]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x2cc]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x2d0]
mov ecx, dword [ebp - 0x2d0]
sub ecx, 1
mov dword [ebp - 0x2d0], ecx
test eax, eax
jle 0x59c402
mov edx, dword [ebp - 0x2cc]
sub edx, 6
mov dword [ebp - 0x2cc], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x2cc]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59c3b0
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10c], 9
je 0x59c446
cmp dword [ebp - 0x10c], 5
je 0x59c446
cmp dword [ebp - 0x10c], 8
je 0x59c446
mov dword [ebp - 0x46c], 0
jmp 0x59c450
mov dword [ebp - 0x46c], 1
mov edx, dword [ebp - 0x46c]
cmp edx, dword [ebp - 0xfc]
jne 0x59c465
xor eax, eax
jmp 0x59fa51
jmp 0x59c318
jmp 0x59c824
mov dword [ebp - 0x18], 1
jmp 0x59c481
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x59c5a3
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x59c49f
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x100]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x59c564
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x2d8], eax
mov ecx, dword [ebp - 0x2d8]
imul ecx, ecx, 6
mov dword [ebp - 0x2d4], ecx
mov edx, dword [ebp - 0x2d8]
mov eax, dword [ebp - 0x100]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x2d4]
shl eax, cl
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x2d8]
mov edx, dword [ebp - 0x2d8]
sub edx, 1
mov dword [ebp - 0x2d8], edx
test ecx, ecx
jle 0x59c564
mov eax, dword [ebp - 0x2d4]
sub eax, 6
mov dword [ebp - 0x2d4], eax
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x2d4]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59c512
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp - 0xe4]
neg edx
sbb edx, edx
inc edx
cmp edx, dword [ebp - 0xfc]
jne 0x59c59e
xor eax, eax
jmp 0x59fa51
jmp 0x59c478
jmp 0x59c824
mov dword [ebp - 0x18], 1
jmp 0x59c5ba
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x59c6df
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x59c5d8
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x100]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x59c69d
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x2e0], eax
mov ecx, dword [ebp - 0x2e0]
imul ecx, ecx, 6
mov dword [ebp - 0x2dc], ecx
mov edx, dword [ebp - 0x2e0]
mov eax, dword [ebp - 0x100]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x2dc]
shl eax, cl
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x2e0]
mov edx, dword [ebp - 0x2e0]
sub edx, 1
mov dword [ebp - 0x2e0], edx
test ecx, ecx
jle 0x59c69d
mov eax, dword [ebp - 0x2dc]
sub eax, 6
mov dword [ebp - 0x2dc], eax
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x2dc]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59c64b
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10c]
sub edx, dword [ebp - 0xe4]
neg edx
sbb edx, edx
inc edx
cmp edx, dword [ebp - 0xfc]
jne 0x59c6da
xor eax, eax
jmp 0x59fa51
jmp 0x59c5b1
jmp 0x59c824
mov dword [ebp - 0x18], 1
jmp 0x59c6f6
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x59c818
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x59c714
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x100]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x59c7d9
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x2e8], eax
mov ecx, dword [ebp - 0x2e8]
imul ecx, ecx, 6
mov dword [ebp - 0x2e4], ecx
mov edx, dword [ebp - 0x2e8]
mov eax, dword [ebp - 0x100]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x2e4]
shl eax, cl
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x2e8]
mov edx, dword [ebp - 0x2e8]
sub edx, 1
mov dword [ebp - 0x2e8], edx
test ecx, ecx
jle 0x59c7d9
mov eax, dword [ebp - 0x2e4]
sub eax, 6
mov dword [ebp - 0x2e4], eax
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x2e4]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59c787
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x34]
sub edx, dword [ebp - 0xe4]
neg edx
sbb edx, edx
inc edx
cmp edx, dword [ebp - 0xfc]
jne 0x59c813
xor eax, eax
jmp 0x59fa51
jmp 0x59c6ed
jmp 0x59c824
mov eax, 0xfffffff2
jmp 0x59fa51
jmp 0x59d179
cmp dword [ebp - 0xc], 0xf
jne 0x59ca9b
mov dword [ebp - 0x18], 1
jmp 0x59c845
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x59ca96
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
cmp dword [ebp - 0x118], 0
je 0x59c923
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x59c923
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x2f0], ecx
mov edx, dword [ebp - 0x2f0]
imul edx, edx, 6
mov dword [ebp - 0x2ec], edx
mov eax, dword [ebp - 0x2f0]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x2ec]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x2f0]
mov ecx, dword [ebp - 0x2f0]
sub ecx, 1
mov dword [ebp - 0x2f0], ecx
test eax, eax
jle 0x59c923
mov edx, dword [ebp - 0x2ec]
sub edx, 6
mov dword [ebp - 0x2ec], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x2ec]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59c8d1
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jne 0x59c94d
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x59ca91
mov dword [ebp - 0x2f4], 1
cmp dword [ebp - 0x118], 0
jne 0x59c980
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
jmp 0x59ca5b
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x59ca5b
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x300], ecx
mov edx, dword [ebp - 0x300]
imul edx, edx, 6
mov dword [ebp - 0x2fc], edx
mov eax, dword [ebp - 0x300]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x2fc]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x2f8], 1
jmp 0x59ca05
mov eax, dword [ebp - 0x2f8]
add eax, 1
mov dword [ebp - 0x2f8], eax
mov ecx, dword [ebp - 0x2f8]
cmp ecx, dword [ebp - 0x300]
jg 0x59ca49
mov edx, dword [ebp - 0x2fc]
sub edx, 6
mov dword [ebp - 0x2fc], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x2f8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x2fc]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59c9f6
mov ecx, dword [ebp - 0x2f4]
add ecx, dword [ebp - 0x300]
mov dword [ebp - 0x2f4], ecx
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
je 0x59ca80
jmp 0x59ca91
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x2f4]
mov dword [ebp + 8], edx
jmp 0x59c94d
jmp 0x59c83c
jmp 0x59d179
cmp dword [ebp - 0x118], 0
je 0x59cf02
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x470], eax
mov ecx, dword [ebp - 0x470]
sub ecx, 5
mov dword [ebp - 0x470], ecx
cmp dword [ebp - 0x470], 7
ja case.default.0x59cad3
mov edx, dword [ebp - 0x470]
jmp dword [edx*4 + 0x59fbbf]
mov dword [ebp - 0x18], 1
jmp 0x59caec
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x59cb87
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x59cb4a
mov ecx, dword [ebp + 0x18]
and ecx, 4
test ecx, ecx
jne 0x59cb51
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x14]
mov ecx, dword [edx + 0x50]
sub ecx, dword [eax + 0x18]
cmp dword [ebp + 8], ecx
ja 0x59cb51
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1c]
cmp eax, edx
jne 0x59cb51
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x18], 1
je 0x59cb4a
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 1]
mov eax, dword [ebp + 0x14]
movzx ecx, byte [eax + 0x1d]
cmp edx, ecx
jne 0x59cb51
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x59cb82
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
and eax, 0xc0
cmp eax, 0x80
jne 0x59cb82
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59cb5a
jmp 0x59cae3
jmp 0x59cefd
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x20]
mov dword [ebp + 8], edx
jmp 0x59cefd
mov dword [ebp - 0x18], 1
jmp 0x59cbac
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x59ccbe
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x59cbca
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x100]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x59cc8f
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x308], eax
mov ecx, dword [ebp - 0x308]
imul ecx, ecx, 6
mov dword [ebp - 0x304], ecx
mov edx, dword [ebp - 0x308]
mov eax, dword [ebp - 0x100]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x304]
shl eax, cl
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x308]
mov edx, dword [ebp - 0x308]
sub edx, 1
mov dword [ebp - 0x308], edx
test ecx, ecx
jle 0x59cc8f
mov eax, dword [ebp - 0x304]
sub eax, 6
mov dword [ebp - 0x304], eax
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x304]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59cc3d
cmp dword [ebp - 0x100], 0x80
jae 0x59ccb9
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x100]
movzx edx, byte [eax + ecx]
and edx, 4
test edx, edx
je 0x59ccb9
xor eax, eax
jmp 0x59fa51
jmp 0x59cba3
jmp 0x59cefd
mov dword [ebp - 0x18], 1
jmp 0x59ccd5
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x59cd1f
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x59cd16
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
cmp edx, 0x80
jge 0x59cd16
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
movzx ecx, byte [eax + ecx]
and ecx, 4
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
test ecx, ecx
jne 0x59cd1d
xor eax, eax
jmp 0x59fa51
jmp 0x59cccc
jmp 0x59cefd
mov dword [ebp - 0x18], 1
jmp 0x59cd36
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x59cda8
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x59cd77
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
cmp edx, 0x80
jge 0x59cd7e
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
movzx ecx, byte [eax + ecx]
and ecx, 1
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
test ecx, ecx
je 0x59cd7e
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x59cda6
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
and eax, 0xc0
cmp eax, 0x80
jne 0x59cda6
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59cd7e
jmp 0x59cd2d
jmp 0x59cefd
mov dword [ebp - 0x18], 1
jmp 0x59cdbf
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x59ce09
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x59ce00
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
cmp ecx, 0x80
jge 0x59ce00
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x24]
movzx eax, byte [edx + eax]
and eax, 1
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
test eax, eax
jne 0x59ce07
xor eax, eax
jmp 0x59fa51
jmp 0x59cdb6
jmp 0x59cefd
mov dword [ebp - 0x18], 1
jmp 0x59ce20
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x59ce94
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x59ce61
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
cmp ecx, 0x80
jge 0x59ce68
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x24]
movzx eax, byte [edx + eax]
and eax, 0x10
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
test eax, eax
je 0x59ce68
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x59ce92
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
and edx, 0xc0
cmp edx, 0x80
jne 0x59ce92
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x59ce68
jmp 0x59ce17
jmp 0x59cefd
mov dword [ebp - 0x18], 1
jmp 0x59cea8
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
jg 0x59cef1
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x59cee8
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
cmp eax, 0x80
jge 0x59cee8
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x24]
movzx edx, byte [ecx + edx]
and edx, 0x10
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
test edx, edx
jne 0x59ceef
xor eax, eax
jmp 0x59fa51
jmp 0x59ce9f
jmp 0x59cefd
mov eax, 0xfffffff2
jmp 0x59fa51
jmp 0x59d179
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x474], ecx
mov edx, dword [ebp - 0x474]
sub edx, 5
mov dword [ebp - 0x474], edx
cmp dword [ebp - 0x474], 7
ja case.default.0x59cf2d
mov eax, dword [ebp - 0x474]
jmp dword [eax*4 + 0x59fbdf]
mov ecx, dword [ebp + 0x18]
and ecx, 4
test ecx, ecx
jne 0x59cfa9
mov dword [ebp - 0x18], 1
jmp 0x59cf50
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x59cfa7
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x14]
mov eax, dword [ecx + 0x50]
sub eax, dword [edx + 0x18]
cmp dword [ebp + 8], eax
ja 0x59cf9c
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x14]
movzx ecx, byte [eax + 0x1c]
cmp edx, ecx
jne 0x59cf9c
mov edx, dword [ebp + 0x14]
cmp dword [edx + 0x18], 1
je 0x59cf95
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 1]
mov edx, dword [ebp + 0x14]
movzx eax, byte [edx + 0x1d]
cmp ecx, eax
jne 0x59cf9c
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59cf47
jmp 0x59cfb2
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x20]
mov dword [ebp + 8], edx
jmp 0x59d179
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x20]
mov dword [ebp + 8], eax
jmp 0x59d179
mov dword [ebp - 0x18], 1
jmp 0x59cfd7
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
jg 0x59d008
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
movzx ecx, byte [eax + ecx]
and ecx, 4
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
test ecx, ecx
je 0x59d006
xor eax, eax
jmp 0x59fa51
jmp 0x59cfce
jmp 0x59d179
mov dword [ebp - 0x18], 1
jmp 0x59d01f
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x59d050
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x24]
movzx eax, byte [edx + eax]
and eax, 4
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
test eax, eax
jne 0x59d04e
xor eax, eax
jmp 0x59fa51
jmp 0x59d016
jmp 0x59d179
mov dword [ebp - 0x18], 1
jmp 0x59d067
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x59d098
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x24]
movzx edx, byte [ecx + edx]
and edx, 1
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
test edx, edx
je 0x59d096
xor eax, eax
jmp 0x59fa51
jmp 0x59d05e
jmp 0x59d179
mov dword [ebp - 0x18], 1
jmp 0x59d0af
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
jg 0x59d0e0
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
movzx ecx, byte [eax + ecx]
and ecx, 1
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
test ecx, ecx
jne 0x59d0de
xor eax, eax
jmp 0x59fa51
jmp 0x59d0a6
jmp 0x59d179
mov dword [ebp - 0x18], 1
jmp 0x59d0f7
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x59d128
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x24]
movzx eax, byte [edx + eax]
and eax, 0x10
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
test eax, eax
je 0x59d126
xor eax, eax
jmp 0x59fa51
jmp 0x59d0ee
jmp 0x59d179
mov dword [ebp - 0x18], 1
jmp 0x59d13c
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x59d16d
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x24]
movzx edx, byte [ecx + edx]
and edx, 0x10
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
test edx, edx
jne 0x59d16b
xor eax, eax
jmp 0x59fa51
jmp 0x59d133
jmp 0x59d179
mov eax, 0xfffffff2
jmp 0x59fa51
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x120]
jne 0x59d189
jmp 0x5972dc
cmp dword [ebp - 0x14], 0
je 0x59e097
cmp dword [ebp - 0x30], 0
jl 0x59d90f
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x478], edx
cmp dword [ebp - 0x478], 4
ja case.default.0x59d1b9
mov eax, dword [ebp - 0x478]
jmp dword [eax*4 + 0x59fbff]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x59d1d1
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp + 0x24]
add eax, 1
push eax
push 0
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59d214
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x59d22a
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x59d231
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x100]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x59d2f6
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x310], eax
mov ecx, dword [ebp - 0x310]
imul ecx, ecx, 6
mov dword [ebp - 0x30c], ecx
mov edx, dword [ebp - 0x310]
mov eax, dword [ebp - 0x100]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x30c]
shl eax, cl
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x310]
mov edx, dword [ebp - 0x310]
sub edx, 1
mov dword [ebp - 0x310], edx
test ecx, ecx
jle 0x59d2f6
mov eax, dword [ebp - 0x30c]
sub eax, 6
mov dword [ebp - 0x30c], eax
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x30c]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59d2a4
cmp dword [ebp - 0xfc], 0
je 0x59d306
xor eax, eax
jmp 0x59fa51
jmp 0x59d1c8
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x59d31c
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp + 0x24]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59d35f
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x59d375
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x59d37c
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x59d441
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x318], ecx
mov edx, dword [ebp - 0x318]
imul edx, edx, 6
mov dword [ebp - 0x314], edx
mov eax, dword [ebp - 0x318]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x314]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x318]
mov ecx, dword [ebp - 0x318]
sub ecx, 1
mov dword [ebp - 0x318], ecx
test eax, eax
jle 0x59d441
mov edx, dword [ebp - 0x314]
sub edx, 6
mov dword [ebp - 0x314], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x314]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59d3ef
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10c], 9
je 0x59d485
cmp dword [ebp - 0x10c], 5
je 0x59d485
cmp dword [ebp - 0x10c], 8
je 0x59d485
mov dword [ebp - 0x47c], 0
jmp 0x59d48f
mov dword [ebp - 0x47c], 1
mov edx, dword [ebp - 0x47c]
cmp edx, dword [ebp - 0xfc]
jne 0x59d4a4
xor eax, eax
jmp 0x59fa51
jmp 0x59d313
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59d4ba
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59d4fd
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59d513
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x59d51a
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x59d5dd
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x320], edx
mov eax, dword [ebp - 0x320]
imul eax, eax, 6
mov dword [ebp - 0x31c], eax
mov ecx, dword [ebp - 0x320]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x31c]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x320]
mov ecx, dword [ebp - 0x320]
sub ecx, 1
mov dword [ebp - 0x320], ecx
test eax, eax
jle 0x59d5dd
mov edx, dword [ebp - 0x31c]
sub edx, 6
mov dword [ebp - 0x31c], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x31c]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59d58b
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp - 0xe4]
neg edx
sbb edx, edx
inc edx
cmp edx, dword [ebp - 0xfc]
jne 0x59d617
xor eax, eax
jmp 0x59fa51
jmp 0x59d4b1
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59d62d
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59d670
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59d686
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x59d68d
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x59d750
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x328], edx
mov eax, dword [ebp - 0x328]
imul eax, eax, 6
mov dword [ebp - 0x324], eax
mov ecx, dword [ebp - 0x328]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x324]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x328]
mov ecx, dword [ebp - 0x328]
sub ecx, 1
mov dword [ebp - 0x328], ecx
test eax, eax
jle 0x59d750
mov edx, dword [ebp - 0x324]
sub edx, 6
mov dword [ebp - 0x324], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x324]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59d6fe
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10c]
sub edx, dword [ebp - 0xe4]
neg edx
sbb edx, edx
inc edx
cmp edx, dword [ebp - 0xfc]
jne 0x59d78d
xor eax, eax
jmp 0x59fa51
jmp 0x59d624
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59d7a3
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59d7e6
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59d7fc
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x59d803
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x59d8c6
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x330], edx
mov eax, dword [ebp - 0x330]
imul eax, eax, 6
mov dword [ebp - 0x32c], eax
mov ecx, dword [ebp - 0x330]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x32c]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x330]
mov ecx, dword [ebp - 0x330]
sub ecx, 1
mov dword [ebp - 0x330], ecx
test eax, eax
jle 0x59d8c6
mov edx, dword [ebp - 0x32c]
sub edx, 6
mov dword [ebp - 0x32c], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x32c]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59d874
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x34]
sub edx, dword [ebp - 0xe4]
neg edx
sbb edx, edx
inc edx
cmp edx, dword [ebp - 0xfc]
jne 0x59d900
xor eax, eax
jmp 0x59fa51
jmp 0x59d79a
mov eax, 0xfffffff2
jmp 0x59fa51
cmp dword [ebp - 0xc], 0xf
jne 0x59dbcd
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59d92a
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59d96d
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59d983
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x59d98a
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
cmp dword [ebp - 0x118], 0
je 0x59da5a
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x59da5a
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x61aa38]
mov dword [ebp - 0x338], edx
mov eax, dword [ebp - 0x338]
imul eax, eax, 6
mov dword [ebp - 0x334], eax
mov ecx, dword [ebp - 0x338]
mov edx, dword [ebp - 0x100]
and edx, dword [ecx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x334]
shl edx, cl
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x338]
mov ecx, dword [ebp - 0x338]
sub ecx, 1
mov dword [ebp - 0x338], ecx
test eax, eax
jle 0x59da5a
mov edx, dword [ebp - 0x334]
sub edx, 6
mov dword [ebp - 0x334], edx
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x334]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59da08
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jne 0x59da84
xor eax, eax
jmp 0x59fa51
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x59dbc8
mov dword [ebp - 0x33c], 1
cmp dword [ebp - 0x118], 0
jne 0x59dab7
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
jmp 0x59db92
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x59db92
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x348], ecx
mov edx, dword [ebp - 0x348]
imul edx, edx, 6
mov dword [ebp - 0x344], edx
mov eax, dword [ebp - 0x348]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x344]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x340], 1
jmp 0x59db3c
mov eax, dword [ebp - 0x340]
add eax, 1
mov dword [ebp - 0x340], eax
mov ecx, dword [ebp - 0x340]
cmp ecx, dword [ebp - 0x348]
jg 0x59db80
mov edx, dword [ebp - 0x344]
sub edx, 6
mov dword [ebp - 0x344], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x340]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x344]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59db2d
mov ecx, dword [ebp - 0x33c]
add ecx, dword [ebp - 0x348]
mov dword [ebp - 0x33c], ecx
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
je 0x59dbb7
jmp 0x59dbc8
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x33c]
mov dword [ebp + 8], edx
jmp 0x59da84
jmp 0x59d921
cmp dword [ebp - 0x118], 0
je 0x59deb9
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59dbeb
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp + 0x24]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59dc2e
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59dc91
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x59dc91
cmp dword [ebp - 0xc], 0xb
jne 0x59dc98
mov eax, dword [ebp + 0x18]
and eax, 4
test eax, eax
jne 0x59dc98
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x14]
mov eax, dword [ecx + 0x50]
sub eax, dword [edx + 0x18]
cmp dword [ebp + 8], eax
ja 0x59dc98
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x14]
movzx ecx, byte [eax + 0x1c]
cmp edx, ecx
jne 0x59dc98
mov edx, dword [ebp + 0x14]
cmp dword [edx + 0x18], 1
je 0x59dc91
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 1]
mov edx, dword [ebp + 0x14]
movzx eax, byte [edx + 0x1d]
cmp ecx, eax
jne 0x59dc98
xor eax, eax
jmp 0x59fa51
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x100]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x59dd5d
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x350], eax
mov ecx, dword [ebp - 0x350]
imul ecx, ecx, 6
mov dword [ebp - 0x34c], ecx
mov edx, dword [ebp - 0x350]
mov eax, dword [ebp - 0x100]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x34c]
shl eax, cl
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x350]
mov edx, dword [ebp - 0x350]
sub edx, 1
mov dword [ebp - 0x350], edx
test ecx, ecx
jle 0x59dd5d
mov eax, dword [ebp - 0x34c]
sub eax, 6
mov dword [ebp - 0x34c], eax
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x34c]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59dd0b
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x480], edx
mov eax, dword [ebp - 0x480]
sub eax, 5
mov dword [ebp - 0x480], eax
cmp dword [ebp - 0x480], 7
ja case.default.0x59dd88
mov ecx, dword [ebp - 0x480]
jmp dword [ecx*4 + 0x59fc13]
jmp 0x59deb4
jmp 0x59deb4
cmp dword [ebp - 0x100], 0x100
jae 0x59ddc3
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x100]
movzx edx, byte [eax + ecx]
and edx, 4
test edx, edx
je 0x59ddc3
xor eax, eax
jmp 0x59fa51
jmp 0x59deb4
cmp dword [ebp - 0x100], 0x100
jae 0x59ddeb
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x24]
mov edx, dword [ebp - 0x100]
movzx eax, byte [ecx + edx]
and eax, 4
test eax, eax
jne 0x59ddf2
xor eax, eax
jmp 0x59fa51
jmp 0x59deb4
cmp dword [ebp - 0x100], 0x100
jae 0x59de21
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x24]
mov eax, dword [ebp - 0x100]
movzx ecx, byte [edx + eax]
and ecx, 1
test ecx, ecx
je 0x59de21
xor eax, eax
jmp 0x59fa51
jmp 0x59deb4
cmp dword [ebp - 0x100], 0x100
jae 0x59de49
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x100]
movzx edx, byte [eax + ecx]
and edx, 1
test edx, edx
jne 0x59de50
xor eax, eax
jmp 0x59fa51
jmp 0x59deb4
cmp dword [ebp - 0x100], 0x100
jae 0x59de7c
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x24]
mov edx, dword [ebp - 0x100]
movzx eax, byte [ecx + edx]
and eax, 0x10
test eax, eax
je 0x59de7c
xor eax, eax
jmp 0x59fa51
jmp 0x59deb4
cmp dword [ebp - 0x100], 0x100
jae 0x59dea1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x24]
mov eax, dword [ebp - 0x100]
movzx ecx, byte [edx + eax]
and ecx, 0x10
test ecx, ecx
jne 0x59dea8
xor eax, eax
jmp 0x59fa51
jmp 0x59deb4
mov eax, 0xfffffff2
jmp 0x59fa51
jmp 0x59dbe2
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x59deca
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp + 0x24]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59df0d
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x59df6a
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x59df6a
mov edx, dword [ebp + 0x18]
and edx, 4
test edx, edx
jne 0x59df71
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x14]
mov edx, dword [eax + 0x50]
sub edx, dword [ecx + 0x18]
cmp dword [ebp + 8], edx
ja 0x59df71
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
movzx eax, byte [edx + 0x1c]
cmp ecx, eax
jne 0x59df71
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x18], 1
je 0x59df6a
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 1]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1d]
cmp eax, edx
jne 0x59df71
xor eax, eax
jmp 0x59fa51
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x484], eax
mov ecx, dword [ebp - 0x484]
sub ecx, 5
mov dword [ebp - 0x484], ecx
cmp dword [ebp - 0x484], 7
ja case.default.0x59dfb1
mov edx, dword [ebp - 0x484]
jmp dword [edx*4 + 0x59fc33]
jmp 0x59e092
jmp 0x59e092
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x24]
mov edx, dword [ebp - 0x100]
movzx eax, byte [ecx + edx]
and eax, 4
test eax, eax
je 0x59dfe0
xor eax, eax
jmp 0x59fa51
jmp 0x59e092
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x24]
mov eax, dword [ebp - 0x100]
movzx ecx, byte [edx + eax]
and ecx, 4
test ecx, ecx
jne 0x59e003
xor eax, eax
jmp 0x59fa51
jmp 0x59e092
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x100]
movzx edx, byte [eax + ecx]
and edx, 1
test edx, edx
je 0x59e026
xor eax, eax
jmp 0x59fa51
jmp 0x59e092
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x24]
mov edx, dword [ebp - 0x100]
movzx eax, byte [ecx + edx]
and eax, 1
test eax, eax
jne 0x59e046
xor eax, eax
jmp 0x59fa51
jmp 0x59e092
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x24]
mov eax, dword [ebp - 0x100]
movzx ecx, byte [edx + eax]
and ecx, 0x10
test ecx, ecx
je 0x59e066
xor eax, eax
jmp 0x59fa51
jmp 0x59e092
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x100]
movzx edx, byte [eax + ecx]
and edx, 0x10
test edx, edx
jne 0x59e086
xor eax, eax
jmp 0x59fa51
jmp 0x59e092
mov eax, 0xfffffff2
jmp 0x59fa51
jmp 0x59dec1
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x30], 0
jl 0x59e823
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x488], ecx
cmp dword [ebp - 0x488], 4
ja case.default.0x59e0c3
mov edx, dword [ebp - 0x488]
jmp dword [edx*4 + 0x59fc53]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59e0db
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x59e1fb
mov dword [ebp - 0x354], 1
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x59e104
jmp 0x59e1fb
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x100]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x59e1df
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x360], eax
mov ecx, dword [ebp - 0x360]
imul ecx, ecx, 6
mov dword [ebp - 0x35c], ecx
mov edx, dword [ebp - 0x360]
mov eax, dword [ebp - 0x100]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x35c]
shl eax, cl
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x358], 1
jmp 0x59e189
mov ecx, dword [ebp - 0x358]
add ecx, 1
mov dword [ebp - 0x358], ecx
mov edx, dword [ebp - 0x358]
cmp edx, dword [ebp - 0x360]
jg 0x59e1cd
mov eax, dword [ebp - 0x35c]
sub eax, 6
mov dword [ebp - 0x35c], eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x358]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x35c]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59e17a
mov ecx, dword [ebp - 0x354]
add ecx, dword [ebp - 0x360]
mov dword [ebp - 0x354], ecx
cmp dword [ebp - 0xfc], 0
je 0x59e1ea
jmp 0x59e1fb
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x354]
mov dword [ebp + 8], edx
jmp 0x59e0d2
jmp case.default.0x59e0c3
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59e211
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x59e384
mov dword [ebp - 0x364], 1
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x59e23a
jmp 0x59e384
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x100]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x59e315
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x370], eax
mov ecx, dword [ebp - 0x370]
imul ecx, ecx, 6
mov dword [ebp - 0x36c], ecx
mov edx, dword [ebp - 0x370]
mov eax, dword [ebp - 0x100]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x36c]
shl eax, cl
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x368], 1
jmp 0x59e2bf
mov ecx, dword [ebp - 0x368]
add ecx, 1
mov dword [ebp - 0x368], ecx
mov edx, dword [ebp - 0x368]
cmp edx, dword [ebp - 0x370]
jg 0x59e303
mov eax, dword [ebp - 0x36c]
sub eax, 6
mov dword [ebp - 0x36c], eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x368]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x36c]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59e2b0
mov ecx, dword [ebp - 0x364]
add ecx, dword [ebp - 0x370]
mov dword [ebp - 0x364], ecx
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10c], 9
je 0x59e359
cmp dword [ebp - 0x10c], 5
je 0x59e359
cmp dword [ebp - 0x10c], 8
je 0x59e359
mov dword [ebp - 0x48c], 0
jmp 0x59e363
mov dword [ebp - 0x48c], 1
mov edx, dword [ebp - 0x48c]
cmp edx, dword [ebp - 0xfc]
jne 0x59e373
jmp 0x59e384
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x364]
mov dword [ebp + 8], eax
jmp 0x59e208
jmp case.default.0x59e0c3
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x59e39a
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59e4e4
mov dword [ebp - 0x374], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x59e3c3
jmp 0x59e4e4
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x59e49e
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x380], ecx
mov edx, dword [ebp - 0x380]
imul edx, edx, 6
mov dword [ebp - 0x37c], edx
mov eax, dword [ebp - 0x380]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x37c]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x378], 1
jmp 0x59e448
mov eax, dword [ebp - 0x378]
add eax, 1
mov dword [ebp - 0x378], eax
mov ecx, dword [ebp - 0x378]
cmp ecx, dword [ebp - 0x380]
jg 0x59e48c
mov edx, dword [ebp - 0x37c]
sub edx, 6
mov dword [ebp - 0x37c], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x378]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x37c]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59e439
mov ecx, dword [ebp - 0x374]
add ecx, dword [ebp - 0x380]
mov dword [ebp - 0x374], ecx
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp - 0xe4]
neg edx
sbb edx, edx
inc edx
cmp edx, dword [ebp - 0xfc]
jne 0x59e4d3
jmp 0x59e4e4
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x374]
mov dword [ebp + 8], eax
jmp 0x59e391
jmp case.default.0x59e0c3
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x59e4fa
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59e647
mov dword [ebp - 0x384], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x59e523
jmp 0x59e647
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x59e5fe
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x390], ecx
mov edx, dword [ebp - 0x390]
imul edx, edx, 6
mov dword [ebp - 0x38c], edx
mov eax, dword [ebp - 0x390]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x38c]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x388], 1
jmp 0x59e5a8
mov eax, dword [ebp - 0x388]
add eax, 1
mov dword [ebp - 0x388], eax
mov ecx, dword [ebp - 0x388]
cmp ecx, dword [ebp - 0x390]
jg 0x59e5ec
mov edx, dword [ebp - 0x38c]
sub edx, 6
mov dword [ebp - 0x38c], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x388]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x38c]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59e599
mov ecx, dword [ebp - 0x384]
add ecx, dword [ebp - 0x390]
mov dword [ebp - 0x384], ecx
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10c]
sub edx, dword [ebp - 0xe4]
neg edx
sbb edx, edx
inc edx
cmp edx, dword [ebp - 0xfc]
jne 0x59e636
jmp 0x59e647
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x384]
mov dword [ebp + 8], eax
jmp 0x59e4f1
jmp case.default.0x59e0c3
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x59e65d
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge case.default.0x59e0c3
mov dword [ebp - 0x394], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x59e686
jmp case.default.0x59e0c3
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x59e761
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x3a0], ecx
mov edx, dword [ebp - 0x3a0]
imul edx, edx, 6
mov dword [ebp - 0x39c], edx
mov eax, dword [ebp - 0x3a0]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x39c]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x398], 1
jmp 0x59e70b
mov eax, dword [ebp - 0x398]
add eax, 1
mov dword [ebp - 0x398], eax
mov ecx, dword [ebp - 0x398]
cmp ecx, dword [ebp - 0x3a0]
jg 0x59e74f
mov edx, dword [ebp - 0x39c]
sub edx, 6
mov dword [ebp - 0x39c], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x398]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x39c]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59e6fc
mov ecx, dword [ebp - 0x394]
add ecx, dword [ebp - 0x3a0]
mov dword [ebp - 0x394], ecx
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x34]
sub edx, dword [ebp - 0xe4]
neg edx
sbb edx, edx
inc edx
cmp edx, dword [ebp - 0xfc]
jne 0x59e796
jmp case.default.0x59e0c3
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x394]
mov dword [ebp + 8], eax
jmp 0x59e654
mov ecx, dword [ebp + 0x24]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59e7ea
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 8]
sub ecx, 1
mov dword [ebp + 8], ecx
cmp edx, eax
jne 0x59e7ff
jmp 0x59e81e
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
and eax, 0xc0
cmp eax, 0x80
jne 0x59e81c
mov ecx, dword [ebp + 8]
sub ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59e7ff
jmp case.default.0x59e0c3
jmp 0x59fa41
cmp dword [ebp - 0xc], 0xf
jne 0x59ec56
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x59e83e
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x59eaa0
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x59e85d
jmp 0x59eaa0
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
cmp dword [ebp - 0x118], 0
je 0x59e92f
mov ecx, dword [ebp - 0x100]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x59e92f
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x3a8], eax
mov ecx, dword [ebp - 0x3a8]
imul ecx, ecx, 6
mov dword [ebp - 0x3a4], ecx
mov edx, dword [ebp - 0x3a8]
mov eax, dword [ebp - 0x100]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x3a4]
shl eax, cl
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x3a8]
mov edx, dword [ebp - 0x3a8]
sub edx, 1
mov dword [ebp - 0x3a8], edx
test ecx, ecx
jle 0x59e92f
mov eax, dword [ebp - 0x3a4]
sub eax, 6
mov dword [ebp - 0x3a4], eax
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x3a4]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59e8dd
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jne 0x59e957
jmp 0x59eaa0
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x59ea9b
mov dword [ebp - 0x3ac], 1
cmp dword [ebp - 0x118], 0
jne 0x59e98a
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
jmp 0x59ea65
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x59ea65
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x3b8], ecx
mov edx, dword [ebp - 0x3b8]
imul edx, edx, 6
mov dword [ebp - 0x3b4], edx
mov eax, dword [ebp - 0x3b8]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x3b4]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x3b0], 1
jmp 0x59ea0f
mov eax, dword [ebp - 0x3b0]
add eax, 1
mov dword [ebp - 0x3b0], eax
mov ecx, dword [ebp - 0x3b0]
cmp ecx, dword [ebp - 0x3b8]
jg 0x59ea53
mov edx, dword [ebp - 0x3b4]
sub edx, 6
mov dword [ebp - 0x3b4], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x3b0]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x3b4]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59ea00
mov ecx, dword [ebp - 0x3ac]
add ecx, dword [ebp - 0x3b8]
mov dword [ebp - 0x3ac], ecx
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
je 0x59ea8a
jmp 0x59ea9b
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x3ac]
mov dword [ebp + 8], edx
jmp 0x59e957
jmp 0x59e835
mov eax, dword [ebp + 0x24]
add eax, 1
push eax
push 0
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59eae3
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [ebp + 8], eax
cmp ecx, edx
jne 0x59eafb
jmp 0x59ec51
mov dword [ebp - 0x3bc], 1
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
and edx, 0xc0
cmp edx, 0x80
jne 0x59eb24
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [ebp + 8], eax
jmp 0x59eb05
cmp dword [ebp - 0x118], 0
jne 0x59eb3e
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
jmp 0x59ec19
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x59ec19
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x3c8], ecx
mov edx, dword [ebp - 0x3c8]
imul edx, edx, 6
mov dword [ebp - 0x3c4], edx
mov eax, dword [ebp - 0x3c8]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x3c4]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x3c0], 1
jmp 0x59ebc3
mov eax, dword [ebp - 0x3c0]
add eax, 1
mov dword [ebp - 0x3c0], eax
mov ecx, dword [ebp - 0x3c0]
cmp ecx, dword [ebp - 0x3c8]
jg 0x59ec07
mov edx, dword [ebp - 0x3c4]
sub edx, 6
mov dword [ebp - 0x3c4], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x3c0]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x3c4]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59ebb4
mov ecx, dword [ebp - 0x3bc]
add ecx, dword [ebp - 0x3c8]
mov dword [ebp - 0x3bc], ecx
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005a7040
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
je 0x59ec3e
jmp 0x59ec4c
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
jmp 0x59eafb
jmp 0x59eaa0
jmp 0x59fa41
cmp dword [ebp - 0x118], 0
je 0x59f71b
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x490], eax
mov ecx, dword [ebp - 0x490]
sub ecx, 5
mov dword [ebp - 0x490], ecx
cmp dword [ebp - 0x490], 7
ja case.default.0x59ec8e
mov edx, dword [ebp - 0x490]
jmp dword [edx*4 + 0x59fc67]
cmp dword [ebp - 0x120], 0x7fffffff
jge 0x59edb8
mov eax, dword [ebp + 0x18]
and eax, 4
test eax, eax
jne 0x59ed57
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x59ecc4
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59ed55
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x59ed1b
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x14]
mov edx, dword [eax + 0x50]
sub edx, dword [ecx + 0x18]
cmp dword [ebp + 8], edx
ja 0x59ed1d
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
movzx eax, byte [edx + 0x1c]
cmp ecx, eax
jne 0x59ed1d
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x18], 1
je 0x59ed1b
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 1]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1d]
cmp eax, edx
jne 0x59ed1d
jmp 0x59ed55
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x59ed50
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
and ecx, 0xc0
cmp ecx, 0x80
jne 0x59ed50
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
jmp 0x59ed26
jmp 0x59ecbb
jmp 0x59edb3
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59ed68
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x59edb3
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x59ed80
jmp 0x59edb3
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x59edb1
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
and eax, 0xc0
cmp eax, 0x80
jne 0x59edb1
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59ed89
jmp 0x59ed5f
jmp 0x59ee73
mov edx, dword [ebp + 0x18]
and edx, 4
test edx, edx
jne 0x59ee38
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59edd3
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x59ee33
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x59ee26
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x14]
mov ecx, dword [edx + 0x50]
sub ecx, dword [eax + 0x18]
cmp dword [ebp + 8], ecx
ja 0x59ee28
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1c]
cmp eax, edx
jne 0x59ee28
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x18], 1
je 0x59ee26
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 1]
mov eax, dword [ebp + 0x14]
movzx ecx, byte [eax + 0x1d]
cmp edx, ecx
jne 0x59ee28
jmp 0x59ee33
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
jmp 0x59edca
jmp 0x59f69f
mov eax, dword [ebp - 0x120]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x50]
sub edx, dword [ebp + 8]
cmp dword [ebp - 0x100], edx
jbe 0x59ee67
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x50]
sub ecx, dword [ebp + 8]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x100]
mov dword [ebp + 8], edx
jmp 0x59f69f
mov eax, dword [ebp - 0x120]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x50]
sub edx, dword [ebp + 8]
cmp dword [ebp - 0x100], edx
jbe 0x59eea7
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x50]
sub ecx, dword [ebp + 8]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x100]
mov dword [ebp + 8], edx
jmp 0x59f69f
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59eec9
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x59f003
mov dword [ebp - 0x3cc], 1
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x59eef2
jmp 0x59f003
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x100]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x59efcd
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x61aa38]
mov dword [ebp - 0x3d8], eax
mov ecx, dword [ebp - 0x3d8]
imul ecx, ecx, 6
mov dword [ebp - 0x3d4], ecx
mov edx, dword [ebp - 0x3d8]
mov eax, dword [ebp - 0x100]
and eax, dword [edx*4 + 0x61aa20]
mov ecx, dword [ebp - 0x3d4]
shl eax, cl
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x3d0], 1
jmp 0x59ef77
mov ecx, dword [ebp - 0x3d0]
add ecx, 1
mov dword [ebp - 0x3d0], ecx
mov edx, dword [ebp - 0x3d0]
cmp edx, dword [ebp - 0x3d8]
jg 0x59efbb
mov eax, dword [ebp - 0x3d4]
sub eax, 6
mov dword [ebp - 0x3d4], eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x3d0]
movzx edx, byte [ecx]
and edx, 0x3f
mov ecx, dword [ebp - 0x3d4]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59ef68
mov ecx, dword [ebp - 0x3cc]
add ecx, dword [ebp - 0x3d8]
mov dword [ebp - 0x3cc], ecx
cmp dword [ebp - 0x100], 0x100
jae 0x59eff2
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x100]
movzx edx, byte [eax + ecx]
and edx, 4
test edx, edx
je 0x59eff2
jmp 0x59f003
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x3cc]
mov dword [ebp + 8], eax
jmp 0x59eec0
jmp 0x59f69f
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x59f019
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59f153
mov dword [ebp - 0x3dc], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x59f042
jmp 0x59f153
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x59f11d
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x3e8], ecx
mov edx, dword [ebp - 0x3e8]
imul edx, edx, 6
mov dword [ebp - 0x3e4], edx
mov eax, dword [ebp - 0x3e8]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x3e4]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x3e0], 1
jmp 0x59f0c7
mov eax, dword [ebp - 0x3e0]
add eax, 1
mov dword [ebp - 0x3e0], eax
mov ecx, dword [ebp - 0x3e0]
cmp ecx, dword [ebp - 0x3e8]
jg 0x59f10b
mov edx, dword [ebp - 0x3e4]
sub edx, 6
mov dword [ebp - 0x3e4], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x3e0]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x3e4]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59f0b8
mov ecx, dword [ebp - 0x3dc]
add ecx, dword [ebp - 0x3e8]
mov dword [ebp - 0x3dc], ecx
cmp dword [ebp - 0x100], 0x100
jae 0x59f140
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x100]
movzx edx, byte [eax + ecx]
and edx, 4
test edx, edx
jne 0x59f142
jmp 0x59f153
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x3dc]
mov dword [ebp + 8], eax
jmp 0x59f010
jmp 0x59f69f
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x59f169
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59f2a3
mov dword [ebp - 0x3ec], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x59f192
jmp 0x59f2a3
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x59f26d
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x3f8], ecx
mov edx, dword [ebp - 0x3f8]
imul edx, edx, 6
mov dword [ebp - 0x3f4], edx
mov eax, dword [ebp - 0x3f8]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x3f4]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x3f0], 1
jmp 0x59f217
mov eax, dword [ebp - 0x3f0]
add eax, 1
mov dword [ebp - 0x3f0], eax
mov ecx, dword [ebp - 0x3f0]
cmp ecx, dword [ebp - 0x3f8]
jg 0x59f25b
mov edx, dword [ebp - 0x3f4]
sub edx, 6
mov dword [ebp - 0x3f4], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x3f0]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x3f4]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59f208
mov ecx, dword [ebp - 0x3ec]
add ecx, dword [ebp - 0x3f8]
mov dword [ebp - 0x3ec], ecx
cmp dword [ebp - 0x100], 0x100
jae 0x59f292
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x100]
movzx edx, byte [eax + ecx]
and edx, 1
test edx, edx
je 0x59f292
jmp 0x59f2a3
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x3ec]
mov dword [ebp + 8], eax
jmp 0x59f160
jmp 0x59f69f
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x59f2b9
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59f3f3
mov dword [ebp - 0x3fc], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x59f2e2
jmp 0x59f3f3
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x59f3bd
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x408], ecx
mov edx, dword [ebp - 0x408]
imul edx, edx, 6
mov dword [ebp - 0x404], edx
mov eax, dword [ebp - 0x408]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x404]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x400], 1
jmp 0x59f367
mov eax, dword [ebp - 0x400]
add eax, 1
mov dword [ebp - 0x400], eax
mov ecx, dword [ebp - 0x400]
cmp ecx, dword [ebp - 0x408]
jg 0x59f3ab
mov edx, dword [ebp - 0x404]
sub edx, 6
mov dword [ebp - 0x404], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x400]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x404]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59f358
mov ecx, dword [ebp - 0x3fc]
add ecx, dword [ebp - 0x408]
mov dword [ebp - 0x3fc], ecx
cmp dword [ebp - 0x100], 0x100
jae 0x59f3e0
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x100]
movzx edx, byte [eax + ecx]
and edx, 1
test edx, edx
jne 0x59f3e2
jmp 0x59f3f3
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x3fc]
mov dword [ebp + 8], eax
jmp 0x59f2b0
jmp 0x59f69f
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x59f409
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59f543
mov dword [ebp - 0x40c], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x59f432
jmp 0x59f543
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x59f50d
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x418], ecx
mov edx, dword [ebp - 0x418]
imul edx, edx, 6
mov dword [ebp - 0x414], edx
mov eax, dword [ebp - 0x418]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x414]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x410], 1
jmp 0x59f4b7
mov eax, dword [ebp - 0x410]
add eax, 1
mov dword [ebp - 0x410], eax
mov ecx, dword [ebp - 0x410]
cmp ecx, dword [ebp - 0x418]
jg 0x59f4fb
mov edx, dword [ebp - 0x414]
sub edx, 6
mov dword [ebp - 0x414], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x410]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x414]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59f4a8
mov ecx, dword [ebp - 0x40c]
add ecx, dword [ebp - 0x418]
mov dword [ebp - 0x40c], ecx
cmp dword [ebp - 0x100], 0x100
jae 0x59f532
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x100]
movzx edx, byte [eax + ecx]
and edx, 0x10
test edx, edx
je 0x59f532
jmp 0x59f543
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x40c]
mov dword [ebp + 8], eax
jmp 0x59f400
jmp 0x59f69f
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x59f559
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59f693
mov dword [ebp - 0x41c], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x59f582
jmp 0x59f693
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x59f65d
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x61aa38]
mov dword [ebp - 0x428], ecx
mov edx, dword [ebp - 0x428]
imul edx, edx, 6
mov dword [ebp - 0x424], edx
mov eax, dword [ebp - 0x428]
mov edx, dword [ebp - 0x100]
and edx, dword [eax*4 + 0x61aa20]
mov ecx, dword [ebp - 0x424]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x420], 1
jmp 0x59f607
mov eax, dword [ebp - 0x420]
add eax, 1
mov dword [ebp - 0x420], eax
mov ecx, dword [ebp - 0x420]
cmp ecx, dword [ebp - 0x428]
jg 0x59f64b
mov edx, dword [ebp - 0x424]
sub edx, 6
mov dword [ebp - 0x424], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x420]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x424]
shl edx, cl
mov eax, dword [ebp - 0x100]
or eax, edx
mov dword [ebp - 0x100], eax
jmp 0x59f5f8
mov ecx, dword [ebp - 0x41c]
add ecx, dword [ebp - 0x428]
mov dword [ebp - 0x41c], ecx
cmp dword [ebp - 0x100], 0x100
jae 0x59f680
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x100]
movzx edx, byte [eax + ecx]
and edx, 0x10
test edx, edx
jne 0x59f682
jmp 0x59f693
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x41c]
mov dword [ebp + 8], eax
jmp 0x59f550
jmp 0x59f69f
mov eax, 0xfffffff2
jmp 0x59fa51
mov ecx, dword [ebp + 0x24]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x59f6e2
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 8]
sub ecx, 1
mov dword [ebp + 8], ecx
cmp edx, eax
jne 0x59f6f7
jmp 0x59f716
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
and eax, 0xc0
cmp eax, 0x80
jne 0x59f714
mov ecx, dword [ebp + 8]
sub ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59f6f7
jmp 0x59f69f
jmp 0x59fa41
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x494], edx
mov eax, dword [ebp - 0x494]
sub eax, 5
mov dword [ebp - 0x494], eax
cmp dword [ebp - 0x494], 7
ja case.default.0x59f746
mov ecx, dword [ebp - 0x494]
jmp dword [ecx*4 + 0x59fc87]
mov edx, dword [ebp + 0x18]
and edx, 4
test edx, edx
jne case.0x59f746.7
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59f768
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x59f7c8
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x59f7bb
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x14]
mov ecx, dword [edx + 0x50]
sub ecx, dword [eax + 0x18]
cmp dword [ebp + 8], ecx
ja 0x59f7bd
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1c]
cmp eax, edx
jne 0x59f7bd
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x18], 1
je 0x59f7bb
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 1]
mov eax, dword [ebp + 0x14]
movzx ecx, byte [eax + 0x1d]
cmp edx, ecx
jne 0x59f7bd
jmp 0x59f7c8
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
jmp 0x59f75f
jmp 0x59f9ee
mov eax, dword [ebp - 0x120]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x50]
sub edx, dword [ebp + 8]
cmp dword [ebp - 0x100], edx
jbe 0x59f7fc
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x50]
sub ecx, dword [ebp + 8]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x100]
mov dword [ebp + 8], edx
jmp 0x59f9ee
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59f81e
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x59f858
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x59f84b
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x24]
movzx eax, byte [edx + eax]
and eax, 4
test eax, eax
je 0x59f84d
jmp 0x59f858
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59f815
jmp 0x59f9ee
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x59f86e
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x59f8a8
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x59f89b
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x24]
movzx edx, byte [ecx + edx]
and edx, 4
test edx, edx
jne 0x59f89d
jmp 0x59f8a8
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x59f865
jmp 0x59f9ee
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x59f8be
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59f8f8
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x59f8eb
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
movzx ecx, byte [eax + ecx]
and ecx, 1
test ecx, ecx
je 0x59f8ed
jmp 0x59f8f8
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
jmp 0x59f8b5
jmp 0x59f9ee
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x59f90e
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x59f948
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x59f93b
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x24]
movzx eax, byte [edx + eax]
and eax, 1
test eax, eax
jne 0x59f93d
jmp 0x59f948
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x59f905
jmp 0x59f9ee
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x59f95e
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x59f998
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x59f98b
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x24]
movzx edx, byte [ecx + edx]
and edx, 0x10
test edx, edx
je 0x59f98d
jmp 0x59f998
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x59f955
jmp 0x59f9ee
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x59f9ab
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x59f9e5
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x59f9d8
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x24]
movzx ecx, byte [eax + ecx]
and ecx, 0x10
test ecx, ecx
jne 0x59f9da
jmp 0x59f9e5
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
jmp 0x59f9a2
jmp 0x59f9ee
mov eax, 0xfffffff2
jmp 0x59fa51
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 0x2c]
jb 0x59fa41
mov ecx, dword [ebp + 0x24]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059723f
add esp, 0x20
mov dword [ebp - 0x11c], eax
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
cmp dword [ebp - 0x11c], 0
je 0x59fa3f
mov eax, dword [ebp - 0x11c]
jmp 0x59fa51
jmp 0x59f9ee
xor eax, eax
jmp 0x59fa51
mov eax, 0xfffffffb
jmp 0x59fa51
jmp 0x5972dc
pop esi
mov esp, ebp
pop ebp
ret