Function at 0x405adf
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 0x405b2d
mov eax, 0xfffffff8
jmp 0x40e2f1
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x24]
cmp eax, dword [edx + 8]
jb 0x405b42
mov eax, 0xffffffeb
jmp 0x40e2f1
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 0x405b7c
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 0x405bb8
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x405bb8
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x54]
jbe 0x405bb8
mov eax, dword [ebp + 0x14]
mov dword [eax + 0x44], 1
cmp dword [ebp - 0x104], 0x50
jle 0x405d49
mov ecx, dword [ebp - 0x104]
sub ecx, 0x50
mov dword [ebp - 0x108], ecx
cmp dword [ebp - 0x108], 0x64
jle 0x405bf6
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 0x405d3f
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x405cc6
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
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 0x405c80
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 0x40e2f1
mov dword [ebp - 0x104], 0x50
mov ecx, dword [ebp - 0x104]
mov dword [ebp - 0x42c], ecx
cmp dword [ebp - 0x42c], 0x50
ja case.0x405d6f.51
mov edx, dword [ebp - 0x42c]
movzx eax, byte [edx + 0x40e3b6]
jmp dword [eax*4 + 0x40e2f6]
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 0x405daa
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x20], 2
jmp 0x405b07
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x405df0
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
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.0x405d6f.80
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 3]
cmp edx, 0x4c
jne 0x405eef
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 0x405e5b
mov ecx, dword [ebp + 0x14]
xor edx, edx
cmp dword [ecx + 0x68], 0
setne dl
mov dword [ebp - 0x430], edx
jmp 0x405e9a
mov eax, dword [ebp - 0xd0]
cmp eax, dword [ebp + 0x10]
jge 0x405e84
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0xd0]
cmp dword [edx + eax*4], 0
jl 0x405e84
mov dword [ebp - 0x434], 1
jmp 0x405e8e
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 0x405ebb
mov dword [ebp - 0x438], 6
jmp 0x405ed7
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 0x405b07
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 1
jne 0x405f6f
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 0x405f6d
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 0x405f45
jmp 0x405f9e
cmp dword [ebp - 0x11c], 0
je 0x405f83
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
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 0x405b07
mov eax, dword [ebp + 0xc]
add eax, 3
mov dword [ebp + 0xc], eax
jmp 0x40e2ec
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x68], 0
je 0x40603f
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x68]
cmp dword [eax + 4], 0
jne 0x40603f
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.00416d20
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 0x40e2ec
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x3c], 0
je 0x40605a
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x54]
jne 0x40605a
xor eax, eax
jmp 0x40e2f1
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 0x40e2f1
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 0x40e2ec
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 1
jne 0x4060c9
jmp 0x406103
cmp dword [ebp - 0x11c], 0
je 0x4060dd
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
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.0x405d6f.69
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
cmp ecx, 0x42
jne 0x406115
xor eax, eax
jmp 0x40e2f1
mov edx, dword [ebp + 0x20]
and edx, 1
test edx, edx
je 0x406129
mov eax, 1
jmp 0x40e2f1
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 0x406129
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 0x405b7c
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 1
jne 0x4061a6
xor eax, eax
jmp 0x40e2f1
cmp dword [ebp - 0x11c], 0
je 0x4061ba
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
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.0x405d6f.70
mov ecx, dword [ebp + 0x20]
and ecx, 1
test ecx, ecx
je 0x4061f4
mov eax, 1
jmp 0x40e2f1
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
jmp 0x405b7c
cmp dword [ebp - 0x118], 0
je 0x40627f
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 0x406236
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x100]
jae 0x40627d
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 0x40625c
xor eax, eax
jmp 0x40e2f1
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
and ecx, 0xc0
cmp ecx, 0x80
jne 0x40627b
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
jmp 0x40625c
jmp 0x40622d
jmp 0x4062ac
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 0x4062ac
xor eax, eax
jmp 0x40e2f1
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
jmp 0x40e2ec
cmp dword [0x4294c8], 0
je 0x4063bb
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 [0x4294c8]
add esp, 4
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
jle 0x4063a7
xor eax, eax
jmp 0x40e2f1
cmp dword [ebp - 0x11c], 0
jge 0x4063bb
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov eax, dword [ebp + 0xc]
add eax, 6
mov dword [ebp + 0xc], eax
jmp 0x40e2ec
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 0x406419
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 0x406454
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x3c], eax
jmp 0x406477
mov ecx, dword [ebp - 0x38]
shl ecx, 2
push ecx
call dword [0x41fab0]
add esp, 4
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
jne 0x406477
mov eax, 0xfffffffa
jmp 0x40e2f1
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.00416930
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 1
jne 0x40650e
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 0x406504
mov eax, dword [ebp - 0x3c]
push eax
call dword [0x41fab4]
add esp, 4
mov eax, 1
jmp 0x40e2f1
cmp dword [ebp - 0x11c], 0
je 0x406522
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
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.00416930
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 0x4064a3
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 0x4065a1
mov ecx, dword [ebp - 0x3c]
push ecx
call dword [0x41fab4]
add esp, 4
xor eax, eax
jmp 0x40e2f1
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 1
jne 0x4065f4
jmp 0x40662e
cmp dword [ebp - 0x11c], 0
je 0x406608
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
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 0x4065b7
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
cmp edx, 0x4a
je 0x40664b
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
cmp ecx, 0x41
je 0x40664b
xor eax, eax
jmp 0x40e2f1
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 0x40664b
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 0x406699
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0xe8]
jne 0x4066a7
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
jmp 0x40e2ec
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 3]
cmp ecx, 0x12
jne 0x4066c5
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 0x406728
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x406716
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov edx, dword [ebp - 0x28]
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x20], 2
jmp 0x405b07
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40676b
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov ecx, dword [ebp + 0xc]
add ecx, 3
mov dword [ebp + 0xc], ecx
mov dword [ebp + 0x20], 0
jmp 0x405b07
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.0x405d6f.65
jmp 0x40e2ec
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x4067fd
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
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 0x4067fd
mov edx, dword [ebp - 0xd8]
add edx, 3
mov dword [ebp + 0xc], edx
jmp 0x40e2ec
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 0x40684f
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x4068cd
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x40e2ec
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 0x406941
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
cmp eax, 0x46
je 0x406941
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ecx]
cmp edx, 0x47
je 0x406941
mov eax, dword [ebp - 0x28]
movzx ecx, byte [eax]
cmp ecx, 0x48
je 0x406941
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
cmp eax, 0x4a
jne 0x40695d
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 0x40e2f1
mov edx, dword [ebp - 0x28]
movzx eax, byte [edx]
cmp eax, 0x4b
je 0x406ab5
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ecx]
sub edx, 0x50
mov dword [ebp - 0x108], edx
cmp dword [ebp - 0x108], 0x64
jle 0x40699d
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 0x406ab5
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 0x4069de
mov eax, dword [ebp + 0x14]
mov dword [eax + 0x28], 1
jmp 0x406a32
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 0x406a32
mov eax, dword [ebp - 0xd0]
add eax, 2
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x68], 0
je 0x406ab5
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + 4]
cmp ecx, dword [ebp - 0x108]
jne 0x406ab5
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.00416930
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 0x40e2ec
mov ecx, dword [ebp - 0x110]
mov dword [ebp + 0x18], ecx
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
cmp eax, 0x42
je 0x406ad4
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0xe8]
jne 0x406ae2
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
jmp 0x40e2ec
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
cmp ecx, 0x44
jne 0x406b45
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x406b33
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov eax, dword [ebp - 0x28]
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x20], 2
jmp 0x405b07
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x406b88
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x20], 0
jmp 0x405b07
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x2c], 0
je 0x406bb8
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x4c]
jne 0x406bb8
xor eax, eax
jmp 0x40e2f1
mov eax, dword [ebp + 0x18]
and eax, 2
test eax, eax
je case.0x405d6f.1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x4c]
je 0x406c28
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
je 0x406c21
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 0x406c21
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 0x406c21
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x18], 1
je 0x406c28
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 0x406c28
xor eax, eax
jmp 0x40e2f1
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x40e2ec
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x4c]
je 0x406c48
xor eax, eax
jmp 0x40e2f1
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x40e2ec
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 0x406c6e
xor eax, eax
jmp 0x40e2f1
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
jmp 0x40e2ec
mov eax, dword [ebp + 0x18]
and eax, 2
test eax, eax
je 0x406ce4
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x406cc6
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
movzx eax, byte [edx + 0x1c]
cmp ecx, eax
jne 0x406cbd
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x18], 1
je 0x406cc4
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 1]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1d]
cmp eax, edx
je 0x406cc4
xor eax, eax
jmp 0x40e2f1
jmp 0x406cd6
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x30], 0
je 0x406cd6
xor eax, eax
jmp 0x40e2f1
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x40e2ec
mov edx, dword [ebp + 0x14]
cmp dword [edx + 0x30], 0
je 0x406cf4
xor eax, eax
jmp 0x40e2f1
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x38], 0
jne case.0x405d6f.17
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
je 0x406d4c
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 0x406d45
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
movzx eax, byte [edx + 0x1c]
cmp ecx, eax
jne 0x406d45
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x18], 1
je 0x406d4c
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 1]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1d]
cmp eax, edx
je 0x406d4c
xor eax, eax
jmp 0x40e2f1
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x40e2ec
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x406d6c
xor eax, eax
jmp 0x40e2f1
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x40e2ec
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
je 0x406dc9
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 0x406dc2
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
movzx eax, byte [edx + 0x1c]
cmp ecx, eax
jne 0x406dc2
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x18], 1
je 0x406dc9
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 1]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1d]
cmp eax, edx
je 0x406dc9
xor eax, eax
jmp 0x40e2f1
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x40e2ec
cmp dword [ebp - 0x118], 0
je 0x40706b
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x4c]
jne 0x406dfe
mov dword [ebp - 0x114], 0
jmp 0x406f44
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 0x406e32
mov eax, dword [ebp - 0x160]
sub eax, 1
mov dword [ebp - 0x160], eax
jmp 0x406e0a
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 0x406eff
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x168]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x164], 1
jmp 0x406eb8
mov eax, dword [ebp - 0x164]
add eax, 1
mov dword [ebp - 0x164], eax
mov ecx, dword [ebp - 0x164]
cmp ecx, dword [ebp - 0x16c]
jg 0x406eff
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 0x406ea9
cmp dword [ebp - 0x100], 0x100
jae 0x406f2e
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 0x406f2e
mov dword [ebp - 0x43c], 1
jmp 0x406f38
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 0x406f5b
mov dword [ebp - 0x24], 0
jmp 0x407066
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 0x407024
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x174]
shl eax, cl
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x170], 1
jmp 0x406fe0
mov ecx, dword [ebp - 0x170]
add ecx, 1
mov dword [ebp - 0x170], ecx
mov edx, dword [ebp - 0x170]
cmp edx, dword [ebp - 0x178]
jg 0x407024
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 0x406fd1
cmp dword [ebp - 0x100], 0x100
jae 0x407053
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 0x407053
mov dword [ebp - 0x440], 1
jmp 0x40705d
mov dword [ebp - 0x440], 0
mov edx, dword [ebp - 0x440]
mov dword [ebp - 0x24], edx
jmp 0x4070f1
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x4c]
je 0x40709a
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 0x40709a
mov dword [ebp - 0x444], 1
jmp 0x4070a4
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 0x4070de
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 0x4070de
mov dword [ebp - 0x448], 1
jmp 0x4070e8
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 0x40711b
mov ecx, dword [ebp - 0x24]
sub ecx, dword [ebp - 0x114]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x44c], ecx
jmp 0x40712f
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 0x40713f
xor eax, eax
jmp 0x40e2f1
jmp 0x40e2ec
mov ecx, dword [ebp + 0x18]
and ecx, 4
test ecx, ecx
jne 0x407192
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 0x407192
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1c]
cmp eax, edx
jne 0x407192
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x18], 1
je 0x40718b
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 1]
mov eax, dword [ebp + 0x14]
movzx ecx, byte [eax + 0x1d]
cmp edx, ecx
jne 0x407192
xor eax, eax
jmp 0x40e2f1
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 0x4071af
xor eax, eax
jmp 0x40e2f1
cmp dword [ebp - 0x118], 0
je 0x4071e0
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x4071e0
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
and eax, 0xc0
cmp eax, 0x80
jne 0x4071e0
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x4071b8
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
jmp 0x40e2ec
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 0x40720b
xor eax, eax
jmp 0x40e2f1
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x40e2ec
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x40722b
xor eax, eax
jmp 0x40e2f1
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 0x4072fd
mov ecx, dword [ebp - 0x100]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x4072fd
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
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 0x4072fd
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 0x4072ab
cmp dword [ebp - 0x100], 0x100
jae 0x407327
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 0x407327
xor eax, eax
jmp 0x40e2f1
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x40e2ec
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x407347
xor eax, eax
jmp 0x40e2f1
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 0x407417
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x407417
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
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 0x407417
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 0x4073c5
cmp dword [ebp - 0x100], 0x100
jae 0x40743a
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 0x407441
xor eax, eax
jmp 0x40e2f1
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x40e2ec
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x407461
xor eax, eax
jmp 0x40e2f1
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 0x407531
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x407531
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
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 0x407531
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 0x4074df
cmp dword [ebp - 0x100], 0x100
jae 0x40755b
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 0x40755b
xor eax, eax
jmp 0x40e2f1
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x40e2ec
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x40757b
xor eax, eax
jmp 0x40e2f1
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 0x40764b
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x40764b
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
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 0x40764b
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 0x4075f9
cmp dword [ebp - 0x100], 0x100
jae 0x40766e
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 0x407675
xor eax, eax
jmp 0x40e2f1
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x40e2ec
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x407695
xor eax, eax
jmp 0x40e2f1
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 0x407765
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x407765
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
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 0x407765
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 0x407713
cmp dword [ebp - 0x100], 0x100
jae 0x40778f
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 0x40778f
xor eax, eax
jmp 0x40e2f1
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x40e2ec
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x4077af
xor eax, eax
jmp 0x40e2f1
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 0x40787f
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x40787f
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
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 0x40787f
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 0x40782d
cmp dword [ebp - 0x100], 0x100
jae 0x4078a2
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 0x4078a9
xor eax, eax
jmp 0x40e2f1
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x40e2ec
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x4078c9
xor eax, eax
jmp 0x40e2f1
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 0x407999
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x407999
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
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 0x407999
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 0x407947
lea edx, [ebp - 0x1bc]
push edx
lea eax, [ebp - 0x1b8]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.004158e0
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.0x4079dc
mov ecx, dword [ebp - 0x450]
jmp dword [ecx*4 + 0x40e407]
cmp dword [ebp - 0x104], 0xd
jne 0x4079f3
xor eax, eax
jmp 0x40e2f1
jmp 0x407ad4
cmp dword [ebp - 0x1b8], 9
je 0x407a1f
cmp dword [ebp - 0x1b8], 5
je 0x407a1f
cmp dword [ebp - 0x1b8], 8
je 0x407a1f
mov dword [ebp - 0x454], 0
jmp 0x407a29
mov dword [ebp - 0x454], 1
xor edx, edx
cmp dword [ebp - 0x104], 0xd
sete dl
cmp dword [ebp - 0x454], edx
jne 0x407a44
xor eax, eax
jmp 0x40e2f1
jmp 0x407ad4
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 0x407a72
xor eax, eax
jmp 0x40e2f1
jmp 0x407ad4
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 0x407a9d
xor eax, eax
jmp 0x40e2f1
jmp 0x407ad4
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 0x407ac8
xor eax, eax
jmp 0x40e2f1
jmp 0x407ad4
mov eax, 0xfffffff2
jmp 0x40e2f1
mov eax, dword [ebp + 0xc]
add eax, 3
mov dword [ebp + 0xc], eax
jmp 0x40e2ec
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x407af4
xor eax, eax
jmp 0x40e2f1
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 0x407bc4
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x407bc4
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
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 0x407bc4
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 0x407b72
lea edx, [ebp - 0x1d0]
push edx
lea eax, [ebp - 0x1cc]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.004158e0
add esp, 0xc
mov dword [ebp - 0x1c8], eax
cmp dword [ebp - 0x1c8], 2
jne 0x407bf7
xor eax, eax
jmp 0x40e2f1
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x407d44
mov dword [ebp - 0x1d4], 1
cmp dword [ebp - 0x118], 0
jne 0x407c2a
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
jmp 0x407d05
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 0x407d05
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x1dc]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x1d8], 1
jmp 0x407caf
mov eax, dword [ebp - 0x1d8]
add eax, 1
mov dword [ebp - 0x1d8], eax
mov ecx, dword [ebp - 0x1d8]
cmp ecx, dword [ebp - 0x1e0]
jg 0x407cf3
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 0x407ca0
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.004158e0
add esp, 0xc
mov dword [ebp - 0x1c8], eax
cmp dword [ebp - 0x1c8], 2
je 0x407d33
jmp 0x407d44
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x1d4]
mov dword [ebp + 8], edx
jmp 0x407bf7
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x40e2ec
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 0x407dba
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0xd0]
cmp dword [edx + eax*4], 0
jl 0x407dba
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 0x407dcc
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.0x407e0a
mov eax, dword [ebp - 0x45c]
movzx ecx, byte [eax + 0x40e423]
jmp dword [ecx*4 + 0x40e41b]
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 + 0x41d210]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x100]
movsx eax, byte [edx + 0x41d218]
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0
jne 0x407e71
mov dword [ebp - 0x120], closesocket
jmp 0x407f0c
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 0x407ec9
mov dword [ebp - 0x120], closesocket
mov edx, dword [ebp + 0xc]
add edx, 5
mov dword [ebp + 0xc], edx
jmp 0x407f0c
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.0040e547
add esp, 0x14
test eax, eax
jne 0x407efe
xor eax, eax
jmp 0x40e2f1
mov edx, dword [ebp + 8]
add edx, dword [ebp - 8]
mov dword [ebp + 8], edx
jmp 0x405b7c
cmp dword [ebp - 8], 0
jne 0x407f17
jmp 0x405b7c
mov dword [ebp - 0x18], 1
jmp 0x407f29
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x407f66
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.0040e547
add esp, 0x14
test eax, eax
jne 0x407f5b
xor eax, eax
jmp 0x40e2f1
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 8]
mov dword [ebp + 8], ecx
jmp 0x407f20
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp - 0x120]
jne 0x407f76
jmp 0x405b7c
cmp dword [ebp - 0x14], 0
je 0x408017
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x407f91
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x407fd4
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x408002
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.0040e547
add esp, 0x14
test eax, eax
jne 0x408009
xor eax, eax
jmp 0x40e2f1
mov eax, dword [ebp + 8]
add eax, dword [ebp - 8]
mov dword [ebp + 8], eax
jmp 0x407f88
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x40802e
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x408069
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.0040e547
add esp, 0x14
test eax, eax
jne 0x40805e
jmp 0x408069
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 8]
mov dword [ebp + 8], ecx
jmp 0x408025
mov edx, dword [ebp + 8]
cmp edx, dword [ebp - 0x2c]
jb 0x4080bf
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x4080b4
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov ecx, dword [ebp + 8]
sub ecx, dword [ebp - 8]
mov dword [ebp + 8], ecx
jmp 0x408069
xor eax, eax
jmp 0x40e2f1
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.0x408110
mov ecx, dword [ebp - 0x460]
movzx edx, byte [ecx + 0x40e433]
jmp dword [edx*4 + 0x40e42b]
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 + 0x41d210]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x100]
movsx ecx, byte [eax + 0x41d218]
mov dword [ebp - 0x120], ecx
cmp dword [ebp - 0x120], 0
jne 0x408177
mov dword [ebp - 0x120], closesocket
jmp 0x4081ea
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 0x4081cc
mov dword [ebp - 0x120], closesocket
mov eax, dword [ebp + 0xc]
add eax, 5
mov dword [ebp + 0xc], eax
jmp 0x4081ea
mov dword [ebp - 0x120], 1
mov ecx, dword [ebp - 0x120]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x118], 0
je 0x40833f
mov dword [ebp - 0x18], 1
jmp 0x408209
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x40833d
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x408227
xor eax, eax
jmp 0x40e2f1
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 0x4082ea
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
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 0x4082ea
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 0x408298
cmp dword [ebp - 0x100], 0xff
jbe 0x408308
cmp dword [ebp - 0x104], 0x3b
jne 0x408306
xor eax, eax
jmp 0x40e2f1
jmp 0x408338
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 0x408338
xor eax, eax
jmp 0x40e2f1
jmp 0x408200
jmp 0x4083b2
mov dword [ebp - 0x18], 1
jmp 0x408351
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
jg 0x4083b2
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x40836b
xor eax, eax
jmp 0x40e2f1
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 0x4083b0
xor eax, eax
jmp 0x40e2f1
jmp 0x408348
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x120]
jne 0x4083c2
jmp 0x405b7c
cmp dword [ebp - 0x14], 0
je 0x40861d
cmp dword [ebp - 0x118], 0
je 0x408562
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x4083ea
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40842d
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x408443
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x40844a
xor eax, eax
jmp 0x40e2f1
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 0x40850f
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
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 0x40850f
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 0x4084bd
cmp dword [ebp - 0x100], 0xff
jbe 0x40852d
cmp dword [ebp - 0x104], 0x3b
jne 0x40852b
xor eax, eax
jmp 0x40e2f1
jmp 0x40855d
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 0x40855d
xor eax, eax
jmp 0x40e2f1
jmp 0x4083e1
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x408573
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x4085b6
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x4085cc
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x4085d3
xor eax, eax
jmp 0x40e2f1
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 0x408618
xor eax, eax
jmp 0x40e2f1
jmp 0x40856a
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x118], 0
je 0x408818
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x408641
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x40879a
mov dword [ebp - 0x1f4], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x40866a
jmp 0x40879a
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 0x408745
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x1fc]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x1f8], 1
jmp 0x4086ef
mov eax, dword [ebp - 0x1f8]
add eax, 1
mov dword [ebp - 0x1f8], eax
mov ecx, dword [ebp - 0x1f8]
cmp ecx, dword [ebp - 0x200]
jg 0x408733
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 0x4086e0
mov ecx, dword [ebp - 0x1f4]
add ecx, dword [ebp - 0x200]
mov dword [ebp - 0x1f4], ecx
cmp dword [ebp - 0x100], 0xff
jbe 0x40875e
cmp dword [ebp - 0x104], 0x3b
jne 0x40875c
jmp 0x40879a
jmp 0x408789
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 0x408789
jmp 0x40879a
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x1f4]
mov dword [ebp + 8], ecx
jmp 0x408638
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x4087dd
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
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 0x4087f2
jmp 0x408813
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
and ecx, 0xc0
cmp ecx, 0x80
jne 0x408811
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
jmp 0x4087f2
jmp 0x40879a
jmp 0x4088d9
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x408829
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x408883
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x408841
jmp 0x408883
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 0x408878
jmp 0x408883
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x408820
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0x2c]
jb 0x4088d9
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x4088ce
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [ebp + 8], eax
jmp 0x408883
xor eax, eax
jmp 0x40e2f1
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.0x40893c
mov edx, dword [ebp - 0x464]
movzx eax, byte [edx + 0x40e443]
jmp dword [eax*4 + 0x40e43b]
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 + 0x41d210]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x100]
movsx edx, byte [ecx + 0x41d218]
mov dword [ebp - 0x120], edx
cmp dword [ebp - 0x120], 0
jne 0x4089a3
mov dword [ebp - 0x120], closesocket
jmp 0x408a16
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 0x4089f8
mov dword [ebp - 0x120], closesocket
mov ecx, dword [ebp + 0xc]
add ecx, 5
mov dword [ebp + 0xc], ecx
jmp 0x408a16
mov dword [ebp - 0x120], 1
mov edx, dword [ebp - 0x120]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], 1
jmp 0x408a28
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x408b31
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x408a46
xor eax, eax
jmp 0x40e2f1
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 0x408b0b
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
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 0x408b0b
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 0x408ab9
mov edx, dword [ebp - 0xf0]
push edx
mov eax, dword [ebp - 0x100]
push eax
call fcn.00415af0
add esp, 8
test eax, eax
jne 0x408b2c
xor eax, eax
jmp 0x40e2f1
jmp 0x408a1f
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x120]
jne 0x408b41
jmp 0x405b7c
cmp dword [ebp - 0x14], 0
je 0x408ca7
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x408b5c
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x408b9f
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x408bb5
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x408bbc
xor eax, eax
jmp 0x40e2f1
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 0x408c81
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
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 0x408c81
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 0x408c2f
mov edx, dword [ebp - 0xf0]
push edx
mov eax, dword [ebp - 0x100]
push eax
call fcn.00415af0
add esp, 8
test eax, eax
jne 0x408ca2
xor eax, eax
jmp 0x40e2f1
jmp 0x408b53
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x408cbe
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x408ded
mov dword [ebp - 0x214], 1
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x408ce7
jmp 0x408ded
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 0x408dc0
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x21c]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x218], 1
jmp 0x408d6a
mov eax, dword [ebp - 0x218]
add eax, 1
mov dword [ebp - 0x218], eax
mov ecx, dword [ebp - 0x218]
cmp ecx, dword [ebp - 0x220]
jg 0x408dae
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 0x408d5b
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.00415af0
add esp, 8
test eax, eax
jne 0x408ddc
jmp 0x408ded
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x214]
mov dword [ebp + 8], ecx
jmp 0x408cb5
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x408e30
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
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 0x408e45
jmp 0x408e66
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
and ecx, 0xc0
cmp ecx, 0x80
jne 0x408e64
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
jmp 0x408e45
jmp 0x408ded
xor eax, eax
jmp 0x40e2f1
cmp dword [ebp - 0x118], 0
je 0x408faf
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 0x408f5d
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x228]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x224], 1
jmp 0x408f0d
mov eax, dword [ebp - 0x224]
add eax, 1
mov dword [ebp - 0x224], eax
mov ecx, dword [ebp - 0x224]
cmp ecx, dword [ebp - 0x22c]
jg 0x408f51
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 0x408efe
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 0x408f72
xor eax, eax
jmp 0x40e2f1
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 8]
sub edx, 1
mov dword [ebp - 8], edx
test ecx, ecx
jle 0x408fad
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 0x408fab
xor eax, eax
jmp 0x40e2f1
jmp 0x408f72
jmp 0x408fee
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x50]
sub ecx, dword [ebp + 8]
cmp ecx, 1
jge 0x408fc4
xor eax, eax
jmp 0x40e2f1
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 0x408fe5
xor eax, eax
jmp 0x40e2f1
mov edx, dword [ebp + 0xc]
add edx, 2
mov dword [ebp + 0xc], edx
jmp 0x40e2ec
cmp dword [ebp - 0x118], 0
je 0x409242
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 0x4090e3
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x234]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x230], 1
jmp 0x409093
mov eax, dword [ebp - 0x230]
add eax, 1
mov dword [ebp - 0x230], eax
mov ecx, dword [ebp - 0x230]
cmp ecx, dword [ebp - 0x238]
jg 0x4090d7
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 0x409084
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 0x4090f8
xor eax, eax
jmp 0x40e2f1
cmp dword [ebp - 0x100], 0x80
jae 0x409146
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 0x409141
xor eax, eax
jmp 0x40e2f1
jmp 0x409240
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 0x40920b
mov edx, dword [ebp - 0x23c]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
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 0x40920b
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 0x4091b9
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 0x409240
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.004159de
add esp, 4
cmp dword [ebp - 0x23c], eax
je 0x409240
xor eax, eax
jmp 0x40e2f1
jmp 0x409295
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x50]
sub eax, dword [ebp + 8]
cmp eax, 1
jge 0x409257
xor eax, eax
jmp 0x40e2f1
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 0x40928c
xor eax, eax
jmp 0x40e2f1
mov ecx, dword [ebp + 0xc]
add ecx, 2
mov dword [ebp + 0xc], ecx
jmp 0x40e2ec
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 0x409366
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 0x409366
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 + 0x41d210]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x100]
movsx ecx, byte [eax + 0x41d218]
mov dword [ebp - 0x120], ecx
cmp dword [ebp - 0x120], 0
jne 0x409366
mov dword [ebp - 0x120], closesocket
cmp dword [ebp - 0x118], 0
je 0x40974a
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 0x409458
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x24c]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x248], 1
jmp 0x409408
mov eax, dword [ebp - 0x248]
add eax, 1
mov dword [ebp - 0x248], eax
mov ecx, dword [ebp - 0x248]
cmp ecx, dword [ebp - 0x250]
jg 0x40944c
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 0x4093f9
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 0x409473
xor eax, eax
jmp 0x40e2f1
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 8]
mov dword [ebp + 0xc], edx
cmp dword [ebp - 8], 1
jle 0x409748
mov dword [ebp - 0x258], 0
mov eax, dword [ebp + 0x18]
and eax, 1
test eax, eax
je 0x4094dd
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.004159de
add esp, 4
mov dword [ebp - 0x254], eax
cmp dword [ebp - 0x254], 0
jl 0x4094dd
cmp dword [ebp - 0x254], 0
jl 0x4094dd
lea edx, [ebp - 0x260]
push edx
mov eax, dword [ebp - 0x254]
push eax
call fcn.00415840
add esp, 8
mov dword [ebp - 0x258], eax
mov dword [ebp - 0x18], 1
jmp 0x4094ef
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
jg 0x409560
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0xf4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00416c70
add esp, 0xc
test eax, eax
jne 0x40951d
mov eax, dword [ebp + 8]
add eax, dword [ebp - 8]
mov dword [ebp + 8], eax
jmp 0x40955e
cmp dword [ebp - 0x258], 0
jne 0x40952d
xor eax, eax
jmp 0x40e2f1
mov ecx, dword [ebp - 0x258]
push ecx
lea edx, [ebp - 0x260]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00416c70
add esp, 0xc
test eax, eax
je 0x409552
xor eax, eax
jmp 0x40e2f1
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x258]
mov dword [ebp + 8], ecx
jmp 0x4094e6
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp - 0x120]
jne 0x409570
jmp 0x405b7c
cmp dword [ebp - 0x14], 0
je 0x409657
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40958b
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x4095ce
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x4095e4
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x4095eb
xor eax, eax
jmp 0x40e2f1
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0xf4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00416c70
add esp, 0xc
test eax, eax
jne 0x409611
mov eax, dword [ebp + 8]
add eax, dword [ebp - 8]
mov dword [ebp + 8], eax
jmp 0x409652
cmp dword [ebp - 0x258], 0
jne 0x409621
xor eax, eax
jmp 0x40e2f1
mov ecx, dword [ebp - 0x258]
push ecx
lea edx, [ebp - 0x260]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00416c70
add esp, 0xc
test eax, eax
je 0x409646
xor eax, eax
jmp 0x40e2f1
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x258]
mov dword [ebp + 8], ecx
jmp 0x409582
mov edx, dword [ebp + 8]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40966e
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x4096eb
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x50]
sub ecx, dword [ebp - 8]
cmp dword [ebp + 8], ecx
jbe 0x409689
jmp 0x4096eb
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0xf4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00416c70
add esp, 0xc
test eax, eax
jne 0x4096af
mov edx, dword [ebp + 8]
add edx, dword [ebp - 8]
mov dword [ebp + 8], edx
jmp 0x4096e6
cmp dword [ebp - 0x258], 0
jne 0x4096ba
jmp 0x4096eb
mov eax, dword [ebp - 0x258]
push eax
lea ecx, [ebp - 0x260]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00416c70
add esp, 0xc
test eax, eax
je 0x4096da
jmp 0x4096eb
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x258]
mov dword [ebp + 8], eax
jmp 0x409665
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0x2c]
jb 0x409741
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x409736
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov eax, dword [ebp + 8]
sub eax, dword [ebp - 8]
mov dword [ebp + 8], eax
jmp 0x4096eb
xor eax, eax
jmp 0x40e2f1
jmp 0x409774
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x50]
sub edx, dword [ebp + 8]
cmp dword [ebp - 0x20], edx
jle 0x40975f
xor eax, eax
jmp 0x40e2f1
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 0x409940
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 0x4097aa
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x4097de
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 0x4097dc
xor eax, eax
jmp 0x40e2f1
jmp 0x4097a1
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp - 0x120]
jne 0x4097ee
jmp 0x405b7c
cmp dword [ebp - 0x14], 0
je 0x409891
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x409809
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40984c
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x409885
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x409885
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 0x40988c
xor eax, eax
jmp 0x40e2f1
jmp 0x409800
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x4098a8
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x4098e3
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x4098d6
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 0x4098d8
jmp 0x4098e3
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x40989f
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0x2c]
jb 0x409939
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.00405adf
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 0x409937
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
jmp 0x4098e3
xor eax, eax
jmp 0x40e2f1
mov dword [ebp - 0x18], 1
jmp 0x409952
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
jg 0x40997c
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 0x40997a
xor eax, eax
jmp 0x40e2f1
jmp 0x409949
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x120]
jne 0x40998c
jmp 0x405b7c
cmp dword [ebp - 0x14], 0
je 0x409a25
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x4099a7
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x4099ea
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x409a19
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x409a19
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 0x409a20
xor eax, eax
jmp 0x40e2f1
jmp 0x40999e
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x409a3c
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x409a6d
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x409a60
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
cmp dword [ebp - 0x100], ecx
je 0x409a62
jmp 0x409a6d
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
jmp 0x409a33
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 0x2c]
jb 0x409ac3
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.00405adf
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 0x409ac1
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
jmp 0x409a6d
xor eax, eax
jmp 0x40e2f1
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x409adc
xor eax, eax
jmp 0x40e2f1
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 0x409bb5
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x409bb5
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
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 0x409bb5
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 0x409b63
mov edx, dword [ebp + 0x18]
and edx, 1
test edx, edx
je 0x409c0d
cmp dword [ebp - 0x100], 0x100
jae 0x409be1
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 0x409c0b
xor eax, eax
jmp 0x40e2f1
jmp 0x409c2d
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 0x409c2d
xor eax, eax
jmp 0x40e2f1
jmp 0x40e2ec
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 0x409cfe
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 0x409cfe
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 + 0x41d210]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x100]
movsx edx, byte [ecx + 0x41d218]
mov dword [ebp - 0x120], edx
cmp dword [ebp - 0x120], 0
jne 0x409cfe
mov dword [ebp - 0x120], closesocket
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x50]
sub ecx, dword [ebp + 8]
cmp dword [ebp - 0x20], ecx
jle 0x409d13
xor eax, eax
jmp 0x40e2f1
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 0x40a37b
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 0x409e78
mov dword [ebp - 0x18], 1
jmp 0x409d6b
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
jg 0x409e76
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 0x409e3a
mov ecx, dword [ebp - 0x26c]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
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 0x409e3a
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 0x409de8
cmp dword [ebp - 0x26c], 0x100
jge 0x409e5c
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 0x409e71
xor eax, eax
jmp 0x40e2f1
jmp 0x409d62
jmp 0x409ebe
mov dword [ebp - 0x18], 1
jmp 0x409e8a
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
jg 0x409ebe
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 0x409ebc
xor eax, eax
jmp 0x40e2f1
jmp 0x409e81
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x120]
jne 0x409ece
jmp 0x405b7c
cmp dword [ebp - 0x14], 0
je 0x40a0e9
cmp dword [ebp - 0x118], 0
je 0x40a050
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x409ef6
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x409f39
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
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 0x409ffe
mov eax, dword [ebp - 0x278]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
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 0x409ffe
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 0x409fac
cmp dword [ebp - 0x278], 0x100
jge 0x40a020
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 0x40a044
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x40a044
mov eax, dword [ebp - 0x100]
cmp eax, dword [ebp - 0x278]
jne 0x40a04b
xor eax, eax
jmp 0x40e2f1
jmp 0x409eed
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x40a061
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40a0a4
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x40a0dd
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x40a0dd
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 0x40a0e4
xor eax, eax
jmp 0x40e2f1
jmp 0x40a058
mov edx, dword [ebp + 8]
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x118], 0
je 0x40a2d2
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40a10d
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x40a254
mov dword [ebp - 0x288], 1
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x40a136
jmp 0x40a254
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 0x40a211
mov edx, dword [ebp - 0x284]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x290]
shl eax, cl
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x28c], 1
jmp 0x40a1bb
mov ecx, dword [ebp - 0x28c]
add ecx, 1
mov dword [ebp - 0x28c], ecx
mov edx, dword [ebp - 0x28c]
cmp edx, dword [ebp - 0x294]
jg 0x40a1ff
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 0x40a1ac
mov ecx, dword [ebp - 0x288]
add ecx, dword [ebp - 0x294]
mov dword [ebp - 0x288], ecx
cmp dword [ebp - 0x284], 0x100
jge 0x40a233
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 0x40a243
jmp 0x40a254
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x288]
mov dword [ebp + 8], ecx
jmp 0x40a104
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40a297
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
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 0x40a2ac
jmp 0x40a2cd
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
and ecx, 0xc0
cmp ecx, 0x80
jne 0x40a2cb
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
jmp 0x40a2ac
jmp 0x40a254
jmp 0x40a374
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40a2e3
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x40a31e
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x40a311
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 0x40a313
jmp 0x40a31e
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x40a2da
mov edx, dword [ebp + 8]
cmp edx, dword [ebp - 0x2c]
jb 0x40a374
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40a369
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov ecx, dword [ebp + 8]
sub ecx, 1
mov dword [ebp + 8], ecx
jmp 0x40a31e
xor eax, eax
jmp 0x40e2f1
cmp dword [ebp - 0x118], 0
je 0x40a487
mov dword [ebp - 0x18], 1
jmp 0x40a39a
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x40a485
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 0x40a46b
mov edx, dword [ebp - 0x298]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
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 0x40a46b
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 0x40a419
mov edx, dword [ebp - 0x100]
cmp edx, dword [ebp - 0x298]
jne 0x40a480
xor eax, eax
jmp 0x40e2f1
jmp 0x40a391
jmp 0x40a4c3
mov dword [ebp - 0x18], 1
jmp 0x40a499
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x40a4c3
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 0x40a4c1
xor eax, eax
jmp 0x40e2f1
jmp 0x40a490
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x120]
jne 0x40a4d3
jmp 0x405b7c
cmp dword [ebp - 0x14], 0
je 0x40a6c2
cmp dword [ebp - 0x118], 0
je 0x40a633
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x40a4fb
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40a53e
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
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 0x40a603
mov edx, dword [ebp - 0x2a4]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
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 0x40a603
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 0x40a5b1
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x40a627
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x40a627
mov edx, dword [ebp - 0x100]
cmp edx, dword [ebp - 0x2a4]
jne 0x40a62e
xor eax, eax
jmp 0x40e2f1
jmp 0x40a4f2
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40a644
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40a687
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x40a6b6
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x40a6b6
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 0x40a6bd
xor eax, eax
jmp 0x40e2f1
jmp 0x40a63b
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x118], 0
je 0x40a885
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x40a6e6
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x40a809
mov dword [ebp - 0x2b4], 1
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x40a70f
jmp 0x40a809
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 0x40a7e8
mov ecx, dword [ebp - 0x2b0]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x2bc]
shl edx, cl
mov dword [ebp - 0x2b0], edx
mov dword [ebp - 0x2b8], 1
jmp 0x40a792
mov eax, dword [ebp - 0x2b8]
add eax, 1
mov dword [ebp - 0x2b8], eax
mov ecx, dword [ebp - 0x2b8]
cmp ecx, dword [ebp - 0x2c0]
jg 0x40a7d6
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 0x40a783
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 0x40a7f8
jmp 0x40a809
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x2b4]
mov dword [ebp + 8], eax
jmp 0x40a6dd
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40a84c
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
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 0x40a861
jmp 0x40a880
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
and eax, 0xc0
cmp eax, 0x80
jne 0x40a87e
mov ecx, dword [ebp + 8]
sub ecx, 1
mov dword [ebp + 8], ecx
jmp 0x40a861
jmp 0x40a809
jmp 0x40a91d
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x40a896
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x40a8c7
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x40a8ba
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
cmp dword [ebp - 0x100], edx
jne 0x40a8bc
jmp 0x40a8c7
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x40a88d
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0x2c]
jb 0x40a91d
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40a912
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [ebp + 8], eax
jmp 0x40a8c7
xor eax, eax
jmp 0x40e2f1
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 0x40a9f7
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 0x40a9f7
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 + 0x41d210]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x100]
movsx eax, byte [edx + 0x41d218]
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0
jne 0x40a9f7
mov dword [ebp - 0x120], closesocket
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 0x40aa15
cmp dword [ebp - 0xc], 0xd
jne 0x40aa4d
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 0x40aa54
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 0x40aa69
xor eax, eax
jmp 0x40e2f1
cmp dword [ebp - 0x20], 0
jle 0x40ba19
cmp dword [ebp - 0x30], 0
jl 0x40b0c9
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x468], ecx
cmp dword [ebp - 0x468], 4
ja case.default.0x40aa99
mov edx, dword [ebp - 0x468]
jmp dword [edx*4 + 0x40e44b]
cmp dword [ebp - 0xfc], 0
je 0x40aab0
xor eax, eax
jmp 0x40e2f1
mov dword [ebp - 0x18], 1
jmp 0x40aac2
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x40abaa
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x40aae0
xor eax, eax
jmp 0x40e2f1
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 0x40aba5
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
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 0x40aba5
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 0x40ab53
jmp 0x40aab9
jmp 0x40b0c4
mov dword [ebp - 0x18], 1
jmp 0x40abc1
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x40ad0a
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x40abdf
xor eax, eax
jmp 0x40e2f1
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 0x40aca2
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
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 0x40aca2
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 0x40ac50
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.004158e0
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10c], 9
je 0x40ace6
cmp dword [ebp - 0x10c], 5
je 0x40ace6
cmp dword [ebp - 0x10c], 8
je 0x40ace6
mov dword [ebp - 0x46c], 0
jmp 0x40acf0
mov dword [ebp - 0x46c], 1
mov edx, dword [ebp - 0x46c]
cmp edx, dword [ebp - 0xfc]
jne 0x40ad05
xor eax, eax
jmp 0x40e2f1
jmp 0x40abb8
jmp 0x40b0c4
mov dword [ebp - 0x18], 1
jmp 0x40ad21
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x40ae43
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x40ad3f
xor eax, eax
jmp 0x40e2f1
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 0x40ae04
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
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 0x40ae04
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 0x40adb2
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.004158e0
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 0x40ae3e
xor eax, eax
jmp 0x40e2f1
jmp 0x40ad18
jmp 0x40b0c4
mov dword [ebp - 0x18], 1
jmp 0x40ae5a
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x40af7f
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x40ae78
xor eax, eax
jmp 0x40e2f1
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 0x40af3d
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
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 0x40af3d
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 0x40aeeb
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.004158e0
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 0x40af7a
xor eax, eax
jmp 0x40e2f1
jmp 0x40ae51
jmp 0x40b0c4
mov dword [ebp - 0x18], 1
jmp 0x40af96
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x40b0b8
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x40afb4
xor eax, eax
jmp 0x40e2f1
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 0x40b079
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
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 0x40b079
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 0x40b027
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.004158e0
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 0x40b0b3
xor eax, eax
jmp 0x40e2f1
jmp 0x40af8d
jmp 0x40b0c4
mov eax, 0xfffffff2
jmp 0x40e2f1
jmp 0x40ba19
cmp dword [ebp - 0xc], 0xf
jne 0x40b33b
mov dword [ebp - 0x18], 1
jmp 0x40b0e5
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x40b336
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 0x40b1c3
mov edx, dword [ebp - 0x100]
and edx, 0xc0
cmp edx, 0xc0
jne 0x40b1c3
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
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 0x40b1c3
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 0x40b171
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.004158e0
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jne 0x40b1ed
xor eax, eax
jmp 0x40e2f1
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x40b331
mov dword [ebp - 0x2f4], 1
cmp dword [ebp - 0x118], 0
jne 0x40b220
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
jmp 0x40b2fb
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 0x40b2fb
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x2fc]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x2f8], 1
jmp 0x40b2a5
mov eax, dword [ebp - 0x2f8]
add eax, 1
mov dword [ebp - 0x2f8], eax
mov ecx, dword [ebp - 0x2f8]
cmp ecx, dword [ebp - 0x300]
jg 0x40b2e9
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 0x40b296
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.004158e0
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
je 0x40b320
jmp 0x40b331
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x2f4]
mov dword [ebp + 8], edx
jmp 0x40b1ed
jmp 0x40b0dc
jmp 0x40ba19
cmp dword [ebp - 0x118], 0
je 0x40b7a2
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.0x40b373
mov edx, dword [ebp - 0x470]
jmp dword [edx*4 + 0x40e45f]
mov dword [ebp - 0x18], 1
jmp 0x40b38c
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x40b427
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x40b3ea
mov ecx, dword [ebp + 0x18]
and ecx, 4
test ecx, ecx
jne 0x40b3f1
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 0x40b3f1
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1c]
cmp eax, edx
jne 0x40b3f1
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x18], 1
je 0x40b3ea
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 1]
mov eax, dword [ebp + 0x14]
movzx ecx, byte [eax + 0x1d]
cmp edx, ecx
jne 0x40b3f1
xor eax, eax
jmp 0x40e2f1
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 0x40b422
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
and eax, 0xc0
cmp eax, 0x80
jne 0x40b422
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x40b3fa
jmp 0x40b383
jmp 0x40b79d
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x20]
mov dword [ebp + 8], edx
jmp 0x40b79d
mov dword [ebp - 0x18], 1
jmp 0x40b44c
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x40b55e
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x40b46a
xor eax, eax
jmp 0x40e2f1
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 0x40b52f
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
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 0x40b52f
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 0x40b4dd
cmp dword [ebp - 0x100], 0x80
jae 0x40b559
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 0x40b559
xor eax, eax
jmp 0x40e2f1
jmp 0x40b443
jmp 0x40b79d
mov dword [ebp - 0x18], 1
jmp 0x40b575
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x40b5bf
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x40b5b6
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
cmp edx, 0x80
jge 0x40b5b6
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 0x40b5bd
xor eax, eax
jmp 0x40e2f1
jmp 0x40b56c
jmp 0x40b79d
mov dword [ebp - 0x18], 1
jmp 0x40b5d6
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x40b648
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x40b617
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
cmp edx, 0x80
jge 0x40b61e
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 0x40b61e
xor eax, eax
jmp 0x40e2f1
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x40b646
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
and eax, 0xc0
cmp eax, 0x80
jne 0x40b646
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x40b61e
jmp 0x40b5cd
jmp 0x40b79d
mov dword [ebp - 0x18], 1
jmp 0x40b65f
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x40b6a9
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x40b6a0
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
cmp ecx, 0x80
jge 0x40b6a0
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 0x40b6a7
xor eax, eax
jmp 0x40e2f1
jmp 0x40b656
jmp 0x40b79d
mov dword [ebp - 0x18], 1
jmp 0x40b6c0
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x40b734
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x40b701
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
cmp ecx, 0x80
jge 0x40b708
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 0x40b708
xor eax, eax
jmp 0x40e2f1
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x40b732
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
and edx, 0xc0
cmp edx, 0x80
jne 0x40b732
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x40b708
jmp 0x40b6b7
jmp 0x40b79d
mov dword [ebp - 0x18], 1
jmp 0x40b748
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
jg 0x40b791
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x40b788
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
cmp eax, 0x80
jge 0x40b788
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 0x40b78f
xor eax, eax
jmp 0x40e2f1
jmp 0x40b73f
jmp 0x40b79d
mov eax, 0xfffffff2
jmp 0x40e2f1
jmp 0x40ba19
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.0x40b7cd
mov eax, dword [ebp - 0x474]
jmp dword [eax*4 + 0x40e47f]
mov ecx, dword [ebp + 0x18]
and ecx, 4
test ecx, ecx
jne 0x40b849
mov dword [ebp - 0x18], 1
jmp 0x40b7f0
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x40b847
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 0x40b83c
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x14]
movzx ecx, byte [eax + 0x1c]
cmp edx, ecx
jne 0x40b83c
mov edx, dword [ebp + 0x14]
cmp dword [edx + 0x18], 1
je 0x40b835
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 1]
mov edx, dword [ebp + 0x14]
movzx eax, byte [edx + 0x1d]
cmp ecx, eax
jne 0x40b83c
xor eax, eax
jmp 0x40e2f1
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x40b7e7
jmp 0x40b852
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x20]
mov dword [ebp + 8], edx
jmp 0x40ba19
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x20]
mov dword [ebp + 8], eax
jmp 0x40ba19
mov dword [ebp - 0x18], 1
jmp 0x40b877
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
jg 0x40b8a8
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 0x40b8a6
xor eax, eax
jmp 0x40e2f1
jmp 0x40b86e
jmp 0x40ba19
mov dword [ebp - 0x18], 1
jmp 0x40b8bf
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x40b8f0
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 0x40b8ee
xor eax, eax
jmp 0x40e2f1
jmp 0x40b8b6
jmp 0x40ba19
mov dword [ebp - 0x18], 1
jmp 0x40b907
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x40b938
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 0x40b936
xor eax, eax
jmp 0x40e2f1
jmp 0x40b8fe
jmp 0x40ba19
mov dword [ebp - 0x18], 1
jmp 0x40b94f
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
jg 0x40b980
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 0x40b97e
xor eax, eax
jmp 0x40e2f1
jmp 0x40b946
jmp 0x40ba19
mov dword [ebp - 0x18], 1
jmp 0x40b997
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jg 0x40b9c8
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 0x40b9c6
xor eax, eax
jmp 0x40e2f1
jmp 0x40b98e
jmp 0x40ba19
mov dword [ebp - 0x18], 1
jmp 0x40b9dc
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jg 0x40ba0d
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 0x40ba0b
xor eax, eax
jmp 0x40e2f1
jmp 0x40b9d3
jmp 0x40ba19
mov eax, 0xfffffff2
jmp 0x40e2f1
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x120]
jne 0x40ba29
jmp 0x405b7c
cmp dword [ebp - 0x14], 0
je 0x40c937
cmp dword [ebp - 0x30], 0
jl 0x40c1af
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x478], edx
cmp dword [ebp - 0x478], 4
ja case.default.0x40ba59
mov eax, dword [ebp - 0x478]
jmp dword [eax*4 + 0x40e49f]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x40ba71
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40bab4
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x40baca
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x40bad1
xor eax, eax
jmp 0x40e2f1
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 0x40bb96
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
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 0x40bb96
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 0x40bb44
cmp dword [ebp - 0xfc], 0
je 0x40bba6
xor eax, eax
jmp 0x40e2f1
jmp 0x40ba68
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x40bbbc
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40bbff
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x40bc15
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x40bc1c
xor eax, eax
jmp 0x40e2f1
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 0x40bce1
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
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 0x40bce1
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 0x40bc8f
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.004158e0
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10c], 9
je 0x40bd25
cmp dword [ebp - 0x10c], 5
je 0x40bd25
cmp dword [ebp - 0x10c], 8
je 0x40bd25
mov dword [ebp - 0x47c], 0
jmp 0x40bd2f
mov dword [ebp - 0x47c], 1
mov edx, dword [ebp - 0x47c]
cmp edx, dword [ebp - 0xfc]
jne 0x40bd44
xor eax, eax
jmp 0x40e2f1
jmp 0x40bbb3
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40bd5a
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40bd9d
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x40bdb3
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x40bdba
xor eax, eax
jmp 0x40e2f1
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 0x40be7d
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
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 0x40be7d
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 0x40be2b
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.004158e0
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 0x40beb7
xor eax, eax
jmp 0x40e2f1
jmp 0x40bd51
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40becd
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40bf10
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x40bf26
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x40bf2d
xor eax, eax
jmp 0x40e2f1
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 0x40bff0
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
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 0x40bff0
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 0x40bf9e
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.004158e0
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 0x40c02d
xor eax, eax
jmp 0x40e2f1
jmp 0x40bec4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40c043
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40c086
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x40c09c
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x40c0a3
xor eax, eax
jmp 0x40e2f1
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 0x40c166
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
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 0x40c166
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 0x40c114
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.004158e0
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 0x40c1a0
xor eax, eax
jmp 0x40e2f1
jmp 0x40c03a
mov eax, 0xfffffff2
jmp 0x40e2f1
cmp dword [ebp - 0xc], 0xf
jne 0x40c46d
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40c1ca
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40c20d
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x40c223
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x40c22a
xor eax, eax
jmp 0x40e2f1
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 0x40c2fa
mov eax, dword [ebp - 0x100]
and eax, 0xc0
cmp eax, 0xc0
jne 0x40c2fa
mov ecx, dword [ebp - 0x100]
and ecx, 0x3f
movzx edx, byte [ecx + 0x41d548]
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 + 0x41d530]
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 0x40c2fa
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 0x40c2a8
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.004158e0
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jne 0x40c324
xor eax, eax
jmp 0x40e2f1
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x40c468
mov dword [ebp - 0x33c], 1
cmp dword [ebp - 0x118], 0
jne 0x40c357
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
jmp 0x40c432
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 0x40c432
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x344]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x340], 1
jmp 0x40c3dc
mov eax, dword [ebp - 0x340]
add eax, 1
mov dword [ebp - 0x340], eax
mov ecx, dword [ebp - 0x340]
cmp ecx, dword [ebp - 0x348]
jg 0x40c420
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 0x40c3cd
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.004158e0
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
je 0x40c457
jmp 0x40c468
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x33c]
mov dword [ebp + 8], edx
jmp 0x40c324
jmp 0x40c1c1
cmp dword [ebp - 0x118], 0
je 0x40c759
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40c48b
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40c4ce
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x40c531
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x40c531
cmp dword [ebp - 0xc], 0xb
jne 0x40c538
mov eax, dword [ebp + 0x18]
and eax, 4
test eax, eax
jne 0x40c538
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 0x40c538
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0x14]
movzx ecx, byte [eax + 0x1c]
cmp edx, ecx
jne 0x40c538
mov edx, dword [ebp + 0x14]
cmp dword [edx + 0x18], 1
je 0x40c531
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 1]
mov edx, dword [ebp + 0x14]
movzx eax, byte [edx + 0x1d]
cmp ecx, eax
jne 0x40c538
xor eax, eax
jmp 0x40e2f1
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 0x40c5fd
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
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 0x40c5fd
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 0x40c5ab
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.0x40c628
mov ecx, dword [ebp - 0x480]
jmp dword [ecx*4 + 0x40e4b3]
jmp 0x40c754
jmp 0x40c754
cmp dword [ebp - 0x100], 0x100
jae 0x40c663
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 0x40c663
xor eax, eax
jmp 0x40e2f1
jmp 0x40c754
cmp dword [ebp - 0x100], 0x100
jae 0x40c68b
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 0x40c692
xor eax, eax
jmp 0x40e2f1
jmp 0x40c754
cmp dword [ebp - 0x100], 0x100
jae 0x40c6c1
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 0x40c6c1
xor eax, eax
jmp 0x40e2f1
jmp 0x40c754
cmp dword [ebp - 0x100], 0x100
jae 0x40c6e9
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 0x40c6f0
xor eax, eax
jmp 0x40e2f1
jmp 0x40c754
cmp dword [ebp - 0x100], 0x100
jae 0x40c71c
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 0x40c71c
xor eax, eax
jmp 0x40e2f1
jmp 0x40c754
cmp dword [ebp - 0x100], 0x100
jae 0x40c741
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 0x40c748
xor eax, eax
jmp 0x40e2f1
jmp 0x40c754
mov eax, 0xfffffff2
jmp 0x40e2f1
jmp 0x40c482
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x40c76a
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40c7ad
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x40c80a
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x40c80a
mov edx, dword [ebp + 0x18]
and edx, 4
test edx, edx
jne 0x40c811
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 0x40c811
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
movzx eax, byte [edx + 0x1c]
cmp ecx, eax
jne 0x40c811
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x18], 1
je 0x40c80a
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 1]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1d]
cmp eax, edx
jne 0x40c811
xor eax, eax
jmp 0x40e2f1
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.0x40c851
mov edx, dword [ebp - 0x484]
jmp dword [edx*4 + 0x40e4d3]
jmp 0x40c932
jmp 0x40c932
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 0x40c880
xor eax, eax
jmp 0x40e2f1
jmp 0x40c932
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 0x40c8a3
xor eax, eax
jmp 0x40e2f1
jmp 0x40c932
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 0x40c8c6
xor eax, eax
jmp 0x40e2f1
jmp 0x40c932
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 0x40c8e6
xor eax, eax
jmp 0x40e2f1
jmp 0x40c932
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 0x40c906
xor eax, eax
jmp 0x40e2f1
jmp 0x40c932
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 0x40c926
xor eax, eax
jmp 0x40e2f1
jmp 0x40c932
mov eax, 0xfffffff2
jmp 0x40e2f1
jmp 0x40c761
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x30], 0
jl 0x40d0c3
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x488], ecx
cmp dword [ebp - 0x488], 4
ja case.default.0x40c963
mov edx, dword [ebp - 0x488]
jmp dword [edx*4 + 0x40e4f3]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40c97b
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x40ca9b
mov dword [ebp - 0x354], 1
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x40c9a4
jmp 0x40ca9b
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 0x40ca7f
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x35c]
shl eax, cl
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x358], 1
jmp 0x40ca29
mov ecx, dword [ebp - 0x358]
add ecx, 1
mov dword [ebp - 0x358], ecx
mov edx, dword [ebp - 0x358]
cmp edx, dword [ebp - 0x360]
jg 0x40ca6d
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 0x40ca1a
mov ecx, dword [ebp - 0x354]
add ecx, dword [ebp - 0x360]
mov dword [ebp - 0x354], ecx
cmp dword [ebp - 0xfc], 0
je 0x40ca8a
jmp 0x40ca9b
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x354]
mov dword [ebp + 8], edx
jmp 0x40c972
jmp case.default.0x40c963
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40cab1
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x40cc24
mov dword [ebp - 0x364], 1
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x40cada
jmp 0x40cc24
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 0x40cbb5
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x36c]
shl eax, cl
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x368], 1
jmp 0x40cb5f
mov ecx, dword [ebp - 0x368]
add ecx, 1
mov dword [ebp - 0x368], ecx
mov edx, dword [ebp - 0x368]
cmp edx, dword [ebp - 0x370]
jg 0x40cba3
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 0x40cb50
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.004158e0
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10c], 9
je 0x40cbf9
cmp dword [ebp - 0x10c], 5
je 0x40cbf9
cmp dword [ebp - 0x10c], 8
je 0x40cbf9
mov dword [ebp - 0x48c], 0
jmp 0x40cc03
mov dword [ebp - 0x48c], 1
mov edx, dword [ebp - 0x48c]
cmp edx, dword [ebp - 0xfc]
jne 0x40cc13
jmp 0x40cc24
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x364]
mov dword [ebp + 8], eax
jmp 0x40caa8
jmp case.default.0x40c963
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x40cc3a
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x40cd84
mov dword [ebp - 0x374], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x40cc63
jmp 0x40cd84
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 0x40cd3e
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x37c]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x378], 1
jmp 0x40cce8
mov eax, dword [ebp - 0x378]
add eax, 1
mov dword [ebp - 0x378], eax
mov ecx, dword [ebp - 0x378]
cmp ecx, dword [ebp - 0x380]
jg 0x40cd2c
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 0x40ccd9
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.004158e0
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 0x40cd73
jmp 0x40cd84
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x374]
mov dword [ebp + 8], eax
jmp 0x40cc31
jmp case.default.0x40c963
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x40cd9a
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x40cee7
mov dword [ebp - 0x384], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x40cdc3
jmp 0x40cee7
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 0x40ce9e
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x38c]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x388], 1
jmp 0x40ce48
mov eax, dword [ebp - 0x388]
add eax, 1
mov dword [ebp - 0x388], eax
mov ecx, dword [ebp - 0x388]
cmp ecx, dword [ebp - 0x390]
jg 0x40ce8c
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 0x40ce39
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.004158e0
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 0x40ced6
jmp 0x40cee7
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x384]
mov dword [ebp + 8], eax
jmp 0x40cd91
jmp case.default.0x40c963
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x40cefd
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.0x40c963
mov dword [ebp - 0x394], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x40cf26
jmp case.default.0x40c963
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 0x40d001
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x39c]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x398], 1
jmp 0x40cfab
mov eax, dword [ebp - 0x398]
add eax, 1
mov dword [ebp - 0x398], eax
mov ecx, dword [ebp - 0x398]
cmp ecx, dword [ebp - 0x3a0]
jg 0x40cfef
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 0x40cf9c
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.004158e0
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 0x40d036
jmp case.default.0x40c963
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x394]
mov dword [ebp + 8], eax
jmp 0x40cef4
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40d08a
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
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 0x40d09f
jmp 0x40d0be
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
and eax, 0xc0
cmp eax, 0x80
jne 0x40d0bc
mov ecx, dword [ebp + 8]
sub ecx, 1
mov dword [ebp + 8], ecx
jmp 0x40d09f
jmp case.default.0x40c963
jmp 0x40e2e1
cmp dword [ebp - 0xc], 0xf
jne 0x40d4f6
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x40d0de
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x40d340
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jb 0x40d0fd
jmp 0x40d340
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 0x40d1cf
mov ecx, dword [ebp - 0x100]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x40d1cf
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
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 0x40d1cf
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 0x40d17d
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.004158e0
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jne 0x40d1f7
jmp 0x40d340
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x40d33b
mov dword [ebp - 0x3ac], 1
cmp dword [ebp - 0x118], 0
jne 0x40d22a
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
jmp 0x40d305
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 0x40d305
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x3b4]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x3b0], 1
jmp 0x40d2af
mov eax, dword [ebp - 0x3b0]
add eax, 1
mov dword [ebp - 0x3b0], eax
mov ecx, dword [ebp - 0x3b0]
cmp ecx, dword [ebp - 0x3b8]
jg 0x40d2f3
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 0x40d2a0
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.004158e0
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
je 0x40d32a
jmp 0x40d33b
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x3ac]
mov dword [ebp + 8], edx
jmp 0x40d1f7
jmp 0x40d0d5
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40d383
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
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 0x40d39b
jmp 0x40d4f1
mov dword [ebp - 0x3bc], 1
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
and edx, 0xc0
cmp edx, 0x80
jne 0x40d3c4
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [ebp + 8], eax
jmp 0x40d3a5
cmp dword [ebp - 0x118], 0
jne 0x40d3de
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
mov dword [ebp - 0x100], edx
jmp 0x40d4b9
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 0x40d4b9
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x3c4]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x3c0], 1
jmp 0x40d463
mov eax, dword [ebp - 0x3c0]
add eax, 1
mov dword [ebp - 0x3c0], eax
mov ecx, dword [ebp - 0x3c0]
cmp ecx, dword [ebp - 0x3c8]
jg 0x40d4a7
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 0x40d454
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.004158e0
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
je 0x40d4de
jmp 0x40d4ec
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
jmp 0x40d39b
jmp 0x40d340
jmp 0x40e2e1
cmp dword [ebp - 0x118], 0
je 0x40dfbb
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.0x40d52e
mov edx, dword [ebp - 0x490]
jmp dword [edx*4 + 0x40e507]
cmp dword [ebp - 0x120], 0x7fffffff
jge 0x40d658
mov eax, dword [ebp + 0x18]
and eax, 4
test eax, eax
jne 0x40d5f7
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x40d564
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x40d5f5
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x40d5bb
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 0x40d5bd
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
mov edx, dword [ebp + 0x14]
movzx eax, byte [edx + 0x1c]
cmp ecx, eax
jne 0x40d5bd
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x18], 1
je 0x40d5bb
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 1]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1d]
cmp eax, edx
jne 0x40d5bd
jmp 0x40d5f5
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 0x40d5f0
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
and ecx, 0xc0
cmp ecx, 0x80
jne 0x40d5f0
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
jmp 0x40d5c6
jmp 0x40d55b
jmp 0x40d653
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40d608
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x40d653
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x40d620
jmp 0x40d653
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 0x40d651
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
and eax, 0xc0
cmp eax, 0x80
jne 0x40d651
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x40d629
jmp 0x40d5ff
jmp 0x40d713
mov edx, dword [ebp + 0x18]
and edx, 4
test edx, edx
jne 0x40d6d8
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40d673
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x40d6d3
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x40d6c6
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 0x40d6c8
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1c]
cmp eax, edx
jne 0x40d6c8
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x18], 1
je 0x40d6c6
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 1]
mov eax, dword [ebp + 0x14]
movzx ecx, byte [eax + 0x1d]
cmp edx, ecx
jne 0x40d6c8
jmp 0x40d6d3
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
jmp 0x40d66a
jmp 0x40df3f
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 0x40d707
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 0x40df3f
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 0x40d747
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 0x40df3f
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40d769
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x40d8a3
mov dword [ebp - 0x3cc], 1
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jb 0x40d792
jmp 0x40d8a3
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 0x40d86d
mov edx, dword [ebp - 0x100]
and edx, 0x3f
movzx eax, byte [edx + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x3d4]
shl eax, cl
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x3d0], 1
jmp 0x40d817
mov ecx, dword [ebp - 0x3d0]
add ecx, 1
mov dword [ebp - 0x3d0], ecx
mov edx, dword [ebp - 0x3d0]
cmp edx, dword [ebp - 0x3d8]
jg 0x40d85b
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 0x40d808
mov ecx, dword [ebp - 0x3cc]
add ecx, dword [ebp - 0x3d8]
mov dword [ebp - 0x3cc], ecx
cmp dword [ebp - 0x100], 0x100
jae 0x40d892
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 0x40d892
jmp 0x40d8a3
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x3cc]
mov dword [ebp + 8], eax
jmp 0x40d760
jmp 0x40df3f
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x40d8b9
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x40d9f3
mov dword [ebp - 0x3dc], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x40d8e2
jmp 0x40d9f3
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 0x40d9bd
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x3e4]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x3e0], 1
jmp 0x40d967
mov eax, dword [ebp - 0x3e0]
add eax, 1
mov dword [ebp - 0x3e0], eax
mov ecx, dword [ebp - 0x3e0]
cmp ecx, dword [ebp - 0x3e8]
jg 0x40d9ab
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 0x40d958
mov ecx, dword [ebp - 0x3dc]
add ecx, dword [ebp - 0x3e8]
mov dword [ebp - 0x3dc], ecx
cmp dword [ebp - 0x100], 0x100
jae 0x40d9e0
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 0x40d9e2
jmp 0x40d9f3
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x3dc]
mov dword [ebp + 8], eax
jmp 0x40d8b0
jmp 0x40df3f
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x40da09
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x40db43
mov dword [ebp - 0x3ec], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x40da32
jmp 0x40db43
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 0x40db0d
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x3f4]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x3f0], 1
jmp 0x40dab7
mov eax, dword [ebp - 0x3f0]
add eax, 1
mov dword [ebp - 0x3f0], eax
mov ecx, dword [ebp - 0x3f0]
cmp ecx, dword [ebp - 0x3f8]
jg 0x40dafb
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 0x40daa8
mov ecx, dword [ebp - 0x3ec]
add ecx, dword [ebp - 0x3f8]
mov dword [ebp - 0x3ec], ecx
cmp dword [ebp - 0x100], 0x100
jae 0x40db32
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 0x40db32
jmp 0x40db43
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x3ec]
mov dword [ebp + 8], eax
jmp 0x40da00
jmp 0x40df3f
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x40db59
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x40dc93
mov dword [ebp - 0x3fc], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x40db82
jmp 0x40dc93
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 0x40dc5d
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x404]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x400], 1
jmp 0x40dc07
mov eax, dword [ebp - 0x400]
add eax, 1
mov dword [ebp - 0x400], eax
mov ecx, dword [ebp - 0x400]
cmp ecx, dword [ebp - 0x408]
jg 0x40dc4b
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 0x40dbf8
mov ecx, dword [ebp - 0x3fc]
add ecx, dword [ebp - 0x408]
mov dword [ebp - 0x3fc], ecx
cmp dword [ebp - 0x100], 0x100
jae 0x40dc80
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 0x40dc82
jmp 0x40dc93
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x3fc]
mov dword [ebp + 8], eax
jmp 0x40db50
jmp 0x40df3f
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x40dca9
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x40dde3
mov dword [ebp - 0x40c], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x40dcd2
jmp 0x40dde3
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 0x40ddad
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x414]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x410], 1
jmp 0x40dd57
mov eax, dword [ebp - 0x410]
add eax, 1
mov dword [ebp - 0x410], eax
mov ecx, dword [ebp - 0x410]
cmp ecx, dword [ebp - 0x418]
jg 0x40dd9b
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 0x40dd48
mov ecx, dword [ebp - 0x40c]
add ecx, dword [ebp - 0x418]
mov dword [ebp - 0x40c], ecx
cmp dword [ebp - 0x100], 0x100
jae 0x40ddd2
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 0x40ddd2
jmp 0x40dde3
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x40c]
mov dword [ebp + 8], eax
jmp 0x40dca0
jmp 0x40df3f
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x40ddf9
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x40df33
mov dword [ebp - 0x41c], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jb 0x40de22
jmp 0x40df33
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 0x40defd
mov eax, dword [ebp - 0x100]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
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 + 0x41d530]
mov ecx, dword [ebp - 0x424]
shl edx, cl
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x420], 1
jmp 0x40dea7
mov eax, dword [ebp - 0x420]
add eax, 1
mov dword [ebp - 0x420], eax
mov ecx, dword [ebp - 0x420]
cmp ecx, dword [ebp - 0x428]
jg 0x40deeb
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 0x40de98
mov ecx, dword [ebp - 0x41c]
add ecx, dword [ebp - 0x428]
mov dword [ebp - 0x41c], ecx
cmp dword [ebp - 0x100], 0x100
jae 0x40df20
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 0x40df22
jmp 0x40df33
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x41c]
mov dword [ebp + 8], eax
jmp 0x40ddf0
jmp 0x40df3f
mov eax, 0xfffffff2
jmp 0x40e2f1
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.00405adf
add esp, 0x20
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x40df82
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
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 0x40df97
jmp 0x40dfb6
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
and eax, 0xc0
cmp eax, 0x80
jne 0x40dfb4
mov ecx, dword [ebp + 8]
sub ecx, 1
mov dword [ebp + 8], ecx
jmp 0x40df97
jmp 0x40df3f
jmp 0x40e2e1
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.0x40dfe6
mov ecx, dword [ebp - 0x494]
jmp dword [ecx*4 + 0x40e527]
mov edx, dword [ebp + 0x18]
and edx, 4
test edx, edx
jne case.0x40dfe6.7
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40e008
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x40e068
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x40e05b
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 0x40e05d
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx + 0x1c]
cmp eax, edx
jne 0x40e05d
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x18], 1
je 0x40e05b
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 1]
mov eax, dword [ebp + 0x14]
movzx ecx, byte [eax + 0x1d]
cmp edx, ecx
jne 0x40e05d
jmp 0x40e068
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
jmp 0x40dfff
jmp 0x40e28e
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 0x40e09c
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 0x40e28e
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40e0be
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x40e0f8
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x40e0eb
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 0x40e0ed
jmp 0x40e0f8
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x40e0b5
jmp 0x40e28e
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x40e10e
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x40e148
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x40e13b
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 0x40e13d
jmp 0x40e148
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x40e105
jmp 0x40e28e
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x40e15e
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x40e198
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x40e18b
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 0x40e18d
jmp 0x40e198
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
jmp 0x40e155
jmp 0x40e28e
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jmp 0x40e1ae
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x120]
jge 0x40e1e8
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x50]
jae 0x40e1db
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 0x40e1dd
jmp 0x40e1e8
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x40e1a5
jmp 0x40e28e
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
jmp 0x40e1fe
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x120]
jge 0x40e238
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x50]
jae 0x40e22b
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 0x40e22d
jmp 0x40e238
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x40e1f5
jmp 0x40e28e
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x40e24b
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x120]
jge 0x40e285
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x50]
jae 0x40e278
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 0x40e27a
jmp 0x40e285
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
jmp 0x40e242
jmp 0x40e28e
mov eax, 0xfffffff2
jmp 0x40e2f1
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 0x2c]
jb 0x40e2e1
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.00405adf
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 0x40e2df
mov eax, dword [ebp - 0x11c]
jmp 0x40e2f1
jmp 0x40e28e
xor eax, eax
jmp 0x40e2f1
mov eax, 0xfffffffb
jmp 0x40e2f1
jmp 0x405b7c
pop esi
mov esp, ebp
pop ebp
ret