Function at 0x49beb0
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x8c
push ebx
push ebp
mov ebp, dword [esp + 0xa8]
push esi
push edi
mov esi, dword [ebp + 0xb8]
mov dword [esi + 8], eax
mov eax, dword [esp + 0xa4]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0xa8]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xac]
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0xb4]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0xb8]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
mov edi, edi
mov edx, dword [ebp]
mov ebx, dword [ebp + 0x4c]
mov dword [esp + 0x28], ebx
lea eax, [edx + 1]
mov dword [ebp], eax
cmp edx, dword [ebp + 4]
jb 0x49bf3b
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a97e2
mov edi, 0xfffffff8
jmp 0x4a5aec
mov eax, dword [esi + 0x1c]
cmp eax, dword [ebp + 8]
jb 0x49bf59
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a97f2
mov edi, 0xffffffeb
jmp 0x4a5aec
cmp dword [ebp + 0x98], 2
jne 0x49bf83
mov eax, dword [esi + 8]
lea ecx, [esi + 0x128]
mov dword [esi + 0x12c], eax
mov eax, dword [esi + 0x18]
mov dword [ecx], eax
mov dword [esi + 0x18], ecx
mov dword [ebp + 0x98], 0
mov eax, dword [esi + 0xc]
xor ebx, ebx
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], ebx
mov cl, byte [eax]
movzx eax, cl
mov dword [esi + 0x9c], eax
cmp cl, 0xa1
ja case.0x49bfaf.98
movzx eax, byte [eax + 0x4a9a2c]
jmp dword [eax*4 + 0x4a98e0]
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0xb0], eax
mov dword [ebp + 0xac], ebx
mov edi, dword [esi + 4]
test edi, edi
jne 0x49bfed
push 0x134
call dword [0xc5c7a0]
mov edi, eax
add esp, 4
test edi, edi
je 0x4a95a3
mov dword [edi + 4], ebx
mov dword [esi + 4], edi
mov dword [esi + 0x130], 0x37
mov eax, dword [esi + 8]
mov dword [edi + 8], eax
mov edx, dword [esi + 0xc]
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
movzx eax, byte [eax + 0x558438]
add eax, edx
add ecx, eax
mov dword [edi + 0xc], ecx
mov eax, dword [esi + 0x10]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x18]
mov dword [edi + 0x18], eax
mov eax, dword [esi + 0x1c]
inc eax
mov dword [edi + 0x1c], eax
mov dword [edi], esi
mov esi, edi
jmp 0x49bf00
mov edx, dword [esi + 4]
test edx, edx
jne 0x49c05c
push 0x134
call dword [0xc5c7a0]
mov edx, eax
add esp, 4
test edx, edx
je 0x4a95a3
mov dword [edx + 4], ebx
mov dword [esi + 4], edx
mov dword [esi + 0x130], 0x34
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
mov ecx, dword [esi + 0xc]
jmp 0x4a61e3
mov edx, dword [esi + 4]
test edx, edx
jne 0x49c099
push 0x134
call dword [0xc5c7a0]
mov edx, eax
add esp, 4
test edx, edx
je 0x4a95a3
mov dword [edx + 4], ebx
mov dword [esi + 4], edx
mov dword [esi + 0x130], 0x33
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
mov ecx, dword [esi + 0xc]
jmp 0x4a61e3
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0xb0], eax
mov dword [ebp + 0xac], ebx
mov edi, dword [esi + 4]
test edi, edi
jne 0x49c0e8
push 0x134
call dword [0xc5c7a0]
mov edi, eax
add esp, 4
test edi, edi
je 0x4a95a3
mov dword [edi + 4], ebx
mov dword [esi + 4], edi
mov dword [esi + 0x130], 0x38
jmp 0x49bff7
mov edx, dword [esi + 4]
test edx, edx
jne 0x49c11c
push 0x134
call dword [0xc5c7a0]
mov edx, eax
add esp, 4
test edx, edx
je 0x4a95a3
mov dword [edx + 4], ebx
mov dword [esi + 4], edx
mov dword [esi + 0x130], 0x35
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
mov ecx, dword [esi + 0xc]
jmp 0x4a61e3
mov eax, dword [ebp + 0x28]
inc eax
mov dword [ebp + 0x28], eax
cmp eax, dword [ebp + 0x2c]
ja 0x49c15d
mov edx, dword [esi + 0xc]
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
movzx eax, byte [eax + 0x558438]
add eax, edx
add ecx, eax
mov dword [esi + 0xc], ecx
jmp 0x49bf83
mov edi, dword [esi + 4]
test edi, edi
jne 0x49c182
push 0x134
call dword [0xc5c7a0]
mov edi, eax
add esp, 4
test edi, edi
je 0x4a95a3
mov dword [edi + 4], ebx
mov dword [esi + 4], edi
mov dword [esi + 0x130], 0x39
jmp 0x49bff7
mov edx, dword [esi + 4]
test edx, edx
jne 0x49c1b6
push 0x134
call dword [0xc5c7a0]
mov edx, eax
add esp, 4
test edx, edx
je 0x4a95a3
mov dword [edx + 4], ebx
mov dword [esi + 4], edx
mov dword [esi + 0x130], 0x36
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
mov ecx, dword [esi + 0xc]
jmp 0x4a61e3
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0xb0], eax
mov dword [ebp + 0xac], ebx
mov edi, dword [esi + 4]
test edi, edi
jne 0x49c205
push 0x134
call dword [0xc5c7a0]
mov edi, eax
add esp, 4
test edi, edi
je 0x4a95a3
mov dword [edi + 4], ebx
mov dword [esi + 4], edi
mov dword [esi + 0x130], 0x3a
jmp 0x49bff7
mov eax, dword [esi + 0xc]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x38], eax
mov eax, dword [ebp + 0xac]
mov dword [esi + 0x28], eax
jmp 0x4a70a4
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 3]
movzx eax, byte [eax + 4]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x94], ecx
add ecx, ecx
mov dword [esi + 0x98], ecx
cmp ecx, dword [ebp + 0x14]
jge case.0x49bfaf.129
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [esi + 0xa4], eax
mov ecx, dword [esi + 0x98]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4 + 4]
mov dword [esi + 0xa8], eax
mov ecx, dword [ebp + 0x10]
sub ecx, dword [esi + 0x94]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [esi + 0xac], eax
mov eax, dword [ebp + 0x90]
mov dword [esi + 0xa0], eax
mov eax, dword [ebp + 0xac]
mov dword [esi + 0x28], eax
mov edx, dword [esi + 8]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebp + 0x74]
sub ecx, dword [esi + 0x94]
mov eax, dword [ebp + 0xc]
mov dword [eax + ecx*4], edx
jmp 0x4a5b84
mov dword [esi + 0x54], ebx
jmp 0x49ca9f
mov dword [esi + 0x54], ebx
jmp 0x49cac3
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x78], ecx
mov eax, dword [esi + 0xc]
add eax, 3
mov dword [esi + 0xc], eax
cmp byte [eax], 0x76
jne 0x49c3d3
mov edi, dword [0xc5f2b8]
test edi, edi
je 0x49c3bf
mov dword [esp + 0x34], 2
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + 1]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x3c], eax
mov ecx, dword [ebp + 0x74]
mov dword [esp + 0x40], ecx
mov eax, dword [ebp + 0x78]
sub eax, ecx
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x10]
sub eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esi + 8]
sub eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x5c], ecx
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 4]
movzx eax, byte [eax + 5]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x60], ecx
mov eax, dword [esi + 0x14]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x90]
and eax, 0xffff
mov dword [esp + 0x54], eax
jne 0x49c384
mov dword [esp + 0x54], 0xffffffff
mov eax, dword [ebp + 0xa8]
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0xb0]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x34]
push eax
call edi
mov edi, eax
add esp, 4
test edi, edi
jg case.default.0x4a7d1c
jns 0x49c3bf
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a5c21
jmp 0x4a5ae8
movzx eax, byte [0x5584ae]
add dword [esi + 0xc], eax
movzx eax, byte [0x5584ae]
sub dword [esi + 0x78], eax
mov dword [esi + 0x58], ebx
mov ebx, dword [esi + 0xc]
movzx ecx, byte [ebx]
mov dword [esp + 0x2c], ecx
lea eax, [ecx - 0x8d]
cmp eax, 0x10
ja case.0x49c3f6.146
movzx eax, byte [eax + 0x4a9ae8]
jmp dword [eax*4 + 0x4a9ad0]
mov edx, dword [ebp + 0xa4]
test edx, edx
je case.0x49c3f6.145
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
cmp ecx, 0xffff
je 0x49c4dd
cmp ecx, dword [edx + 4]
je 0x49c4dd
xor eax, eax
mov dword [esi + 0x58], eax
mov ecx, dword [esp + 0x2c]
cmp dword [esi + 0x58], 0
je 0x4a5e4b
movzx ecx, byte [ecx + 0x558438]
jmp 0x4a5e4e
cmp dword [ebp + 0xa4], 0
je case.0x49c3f6.145
movzx edi, byte [ebx + 3]
movzx eax, byte [ebx + 4]
movzx ecx, byte [ebx + 1]
shl edi, 8
or edi, eax
shl ecx, 8
movzx eax, byte [ebx + 2]
or ecx, eax
mov eax, dword [ebp + 0x30]
imul ecx, dword [ebp + 0x24]
add eax, ecx
test edi, edi
je 0x49c42e
mov ebx, eax
lea ebx, [ebx]
movzx edx, byte [eax + 1]
dec edi
movzx eax, byte [eax]
shl eax, 8
or edx, eax
mov eax, dword [ebp + 0xa4]
mov ecx, dword [eax + 4]
xor eax, eax
cmp edx, ecx
sete al
mov dword [esi + 0x58], eax
je 0x49c42e
mov eax, dword [ebp + 0x24]
add eax, ebx
mov ebx, eax
test edi, edi
jg 0x49c480
jmp 0x49c42e
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ecx, ecx
mov dword [esi + 0x98], ecx
cmp ecx, dword [esi + 0x14]
jge 0x49c429
mov eax, dword [ebp + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x49c429
mov eax, 1
jmp 0x49c42b
movzx edi, byte [ebx + 3]
movzx eax, byte [ebx + 4]
movzx edx, byte [ebx + 1]
shl edi, 8
shl edx, 8
or edi, eax
movzx eax, byte [ebx + 2]
or edx, eax
imul edx, dword [ebp + 0x24]
add edx, dword [ebp + 0x30]
test edi, edi
je case.0x49c3f6.145
movzx eax, byte [edx]
dec edi
movzx ecx, byte [edx + 1]
shl eax, 8
or ecx, eax
add ecx, ecx
mov dword [esi + 0x98], ecx
cmp ecx, dword [esi + 0x14]
jge 0x49c53a
mov eax, dword [ebp + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x49c53a
mov eax, 1
jmp 0x49c53c
xor eax, eax
mov dword [esi + 0x58], eax
test eax, eax
jne 0x49c42e
add edx, dword [ebp + 0x24]
test edi, edi
jg 0x49c510
jmp 0x49c42e
mov dword [ebp + 0x98], 1
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x49c586
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 3
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc]
jmp 0x4a60b0
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x94], ecx
lea eax, [ecx + ecx]
mov dword [esi + 0x98], eax
mov eax, dword [ebp + 0x90]
and eax, 0xffff0000
or eax, dword [esi + 0x94]
mov dword [ebp + 0x90], eax
mov edx, dword [esi + 0x98]
cmp edx, dword [ebp + 0x14]
jl 0x49c5f3
or eax, 0x10000
mov dword [ebp + 0x90], eax
add dword [esi + 0xc], 3
jmp 0x49bf83
mov eax, dword [ebp + 0x10]
sub eax, dword [esi + 0x94]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [esi + 0x98]
mov edx, dword [esi + 8]
mov eax, dword [ebp + 0xc]
sub edx, dword [ebp + 0x74]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esi + 0x98]
mov ecx, dword [esi + 0x14]
cmp edx, ecx
jl 0x49c5ea
mov eax, dword [ebp + 0xc]
lea ecx, [eax + ecx*4]
lea edx, [eax + edx*4]
cmp ecx, edx
jae 0x49c643
mov eax, ecx
mov dword [ecx], 0xffffffff
lea ecx, [eax + 4]
mov eax, ecx
cmp ecx, edx
jb 0x49c634
mov eax, dword [esi + 0x98]
add eax, 2
mov dword [esi + 0x14], eax
add dword [esi + 0xc], 3
jmp 0x49bf83
mov edi, dword [esi + 8]
mov edx, dword [esi + 0x10]
cmp edi, edx
jne 0x49c68e
cmp cl, 0x9f
je 0x49c68e
cmp dword [ebp + 0xa4], ebx
jne 0x49c68e
cmp dword [ebp + 0x5c], ebx
jne case.default.0x4a7d1c
cmp dword [ebp + 0x60], ebx
je 0x49c68e
mov eax, dword [ebp + 0x94]
add eax, dword [ebp + 0x74]
cmp edx, eax
je case.default.0x4a7d1c
mov dword [ebp + 0x80], edi
mov eax, dword [esi + 0x14]
mov dword [ebp + 0x8c], eax
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x7c], eax
mov edi, dword [esi + 0x9c]
mov eax, dword [esi]
neg edi
mov esi, eax
sbb edi, edi
and edi, 0xfffffc18
inc edi
test eax, eax
je 0x4a5c21
jmp 0x4a5ae8
mov eax, dword [ebp + 0xac]
mov dword [esi + 0x28], eax
cmp dword [ebp + 0x98], 1
jne 0x49c6e9
mov dword [esi + 0x58], 1
mov dword [ebp + 0x98], ebx
jmp 0x4a5f2b
mov dword [esi + 0x58], ebx
jmp 0x4a5f2b
mov eax, dword [ebp + 0xac]
mov dword [esi + 0x28], eax
cmp dword [ebp + 0x98], 1
jne 0x49c715
mov dword [esi + 0x58], 1
mov dword [ebp + 0x98], ebx
jmp 0x4a6071
mov dword [esi + 0x58], ebx
jmp 0x4a6071
mov ebx, dword [esp + 0x28]
mov eax, dword [esi + 0xc]
test ebx, ebx
je 0x49c762
movzx edx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl edx, 8
or edx, eax
jbe 0x49c780
mov ecx, dword [esi + 8]
dec edx
dec ecx
mov dword [esi + 8], ecx
cmp ecx, dword [ebp + 0x74]
jb case.0x4a69ef.14
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x49c75c
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x49c750
test edx, edx
jg 0x49c737
jmp 0x49c780
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [esi + 8]
sub eax, ecx
mov dword [esi + 8], eax
cmp eax, dword [ebp + 0x74]
jb case.0x4a69ef.14
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jae 0x49c5ea
mov dword [ebp + 0x84], eax
add dword [esi + 0xc], 3
jmp 0x49bf83
mov edi, dword [0xc5f2b8]
test edi, edi
je 0x49c888
mov dword [esp + 0x68], 2
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + 1]
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x70], eax
mov ecx, dword [ebp + 0x74]
mov dword [esp + 0x74], ecx
mov eax, dword [ebp + 0x78]
sub eax, ecx
mov dword [esp + 0x78], eax
mov eax, dword [esi + 0x10]
sub eax, ecx
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 8]
sub eax, ecx
mov dword [esp + 0x80], eax
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x90], ecx
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 4]
movzx eax, byte [eax + 5]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x94], ecx
mov eax, dword [esi + 0x14]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x84], eax
mov eax, dword [ebp + 0x90]
and eax, 0xffff
mov dword [esp + 0x88], eax
jne 0x49c847
mov dword [esp + 0x88], 0xffffffff
mov eax, dword [ebp + 0xa8]
mov dword [esp + 0x8c], eax
mov eax, dword [ebp + 0xb0]
mov dword [esp + 0x98], eax
lea eax, [esp + 0x68]
push eax
call edi
mov edi, eax
add esp, 4
test edi, edi
jg case.default.0x4a7d1c
jns 0x49c888
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a5c21
jmp 0x4a5ae8
add dword [esi + 0xc], 6
jmp 0x49bf83
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp + 0x70]
add eax, ecx
mov dword [esi + 0x20], eax
cmp eax, dword [ebp + 0x70]
jne 0x49c8b2
xor edx, edx
jmp 0x49c8bf
movzx edx, byte [eax + 3]
movzx eax, byte [eax + 4]
shl edx, 8
or edx, eax
mov ecx, dword [ebp + 0xa4]
test ecx, ecx
je 0x49c8e5
lea esp, [esp]
cmp edx, dword [ecx + 4]
jne 0x49c8dd
mov eax, dword [esi + 8]
cmp eax, dword [ecx + 0x14]
je 0x49c922
mov eax, dword [ecx]
mov ecx, eax
test eax, eax
jne 0x49c8d0
mov dword [esi + 0x40], edx
lea ecx, [esi + 0x3c]
mov eax, dword [ebp + 0x90]
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov eax, dword [ebp + 0xa4]
mov dword [ecx], eax
mov dword [ebp + 0xa4], ecx
add dword [esi + 0xc], 3
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x48], eax
cmp eax, 0x1e
jg 0x49c938
lea eax, [esi + 0xb0]
mov dword [esi + 0x44], eax
jmp 0x49c950
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a9802
mov edi, 0xffffffe6
jmp 0x4a5ae8
shl eax, 2
push eax
call dword [0xc5c798]
add esp, 4
mov dword [esi + 0x44], eax
test eax, eax
je 0x4a95a3
mov eax, dword [esi + 0x48]
shl eax, 2
push eax
push dword [ebp + 0xc]
push dword [esi + 0x44]
call fcn.004aa840
mov eax, dword [esi + 0x20]
add esp, 0xc
cmp byte [eax], 0x88
sbb eax, eax
inc eax
mov dword [esi + 0x58], eax
jmp 0x4a6197
mov edx, dword [esi + 0xc]
lea esp, [esp]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esi + 0xc], edx
cmp byte [edx], 0x77
je 0x49c980
jmp 0x49bf83
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0x2c], eax
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x49c9c8
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], ebx
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0xa
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x2c]
jmp 0x4a6b9d
mov edx, dword [esi + 0xc]
inc edx
mov dword [esi + 0x2c], edx
jmp 0x49c9f0
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov edx, eax
mov dword [esi + 0x2c], eax
cmp byte [edx], 0x77
je 0x49c9f0
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x49ca2e
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], ebx
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0xb
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x2c]
add eax, 3
jmp 0x4a6b9d
mov edx, dword [esi + 0xc]
inc edx
mov dword [esi + 0x2c], edx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov edx, eax
mov dword [esi + 0x2c], eax
cmp byte [edx], 0x77
je 0x49ca50
add eax, 3
mov dword [esi + 0xc], eax
jmp 0x49bf83
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
movzx eax, byte [eax]
mov dword [esi + 0x9c], eax
mov dword [esi + 0x54], 1
mov eax, dword [esi + 0x9c]
cmp eax, 0x86
je 0x49ca9f
cmp eax, 0x8b
jne 0x49cac3
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 3]
movzx eax, byte [eax + 4]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x94], ecx
lea eax, [ecx + ecx]
mov dword [esi + 0x98], eax
cmp eax, dword [ebp + 0x14]
jl 0x49cae0
mov dword [esi + 0x5c], ebx
mov eax, dword [esi + 0xc]
sub eax, dword [ebp + 0x70]
mov dword [esi + 0x78], eax
mov eax, dword [ebp + 0x90]
mov dword [esi + 0xa0], eax
jmp 0x4a6c9b
mov dword [esi + 0x5c], ebx
mov eax, dword [esi + 0xc]
sub eax, dword [ebp + 0x70]
mov dword [esi + 0x78], eax
mov ecx, dword [esi + 0x98]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [esi + 0xa4], eax
mov ecx, dword [esi + 0x98]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4 + 4]
mov dword [esi + 0xa8], eax
mov ecx, dword [ebp + 0x10]
sub ecx, dword [esi + 0x94]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [esi + 0xac], eax
mov eax, dword [ebp + 0x90]
mov dword [esi + 0xa0], eax
mov ecx, dword [ebp + 0x10]
sub ecx, dword [esi + 0x94]
mov edx, dword [esi + 8]
mov eax, dword [ebp + 0xc]
sub edx, dword [ebp + 0x74]
mov dword [eax + ecx*4], edx
cmp dword [esi + 0x9c], 0x88
jb 0x49cb5d
mov dword [ebp + 0x98], 2
mov edx, dword [esi + 4]
test edx, edx
jne 0x49cb86
push 0x134
call dword [0xc5c7a0]
mov edx, eax
add esp, 4
test edx, edx
je 0x4a95a3
mov dword [edx + 4], 0
mov dword [esi + 4], edx
mov dword [esi + 0x130], 0x3f
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
mov ecx, dword [esi + 0xc]
jmp 0x4a61e3
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
sub edx, ecx
mov dword [esi + 0x34], edx
mov al, byte [edx]
cmp al, 0x88
jae 0x49cbc2
cmp al, 0x81
je 0x49cbc2
mov dword [esi + 0x38], ebx
jmp 0x49cbd3
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 4]
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x34]
mov al, byte [edx]
cmp al, 0x7d
jb 0x49cbe0
cmp al, 0x80
jbe 0x49cbe4
cmp al, 0x82
jne 0x49cc01
mov eax, dword [esi + 8]
mov dword [ebp + 0x80], eax
mov eax, dword [esi + 0x14]
mov dword [ebp + 0x8c], eax
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x7c], eax
jmp 0x4a6041
cmp al, 0x85
je 0x49cc15
cmp al, 0x8a
je 0x49cc15
cmp al, 0x86
je 0x49cc15
cmp al, 0x8b
jne 0x49cceb
movzx ecx, byte [edx + 3]
movzx eax, byte [edx + 4]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x94], ecx
lea eax, [ecx + ecx]
mov dword [esi + 0x98], eax
mov eax, dword [ebp + 0xa4]
test eax, eax
je 0x49cc5a
mov eax, dword [eax + 4]
cmp eax, dword [esi + 0x94]
jne 0x49cc5a
mov eax, dword [esi + 8]
mov dword [ebp + 0x80], eax
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x7c], eax
jmp 0x4a6041
mov eax, dword [ebp + 0x90]
and eax, 0xffff0000
or eax, dword [esi + 0x94]
mov dword [ebp + 0x90], eax
mov edx, dword [esi + 0x98]
cmp edx, dword [ebp + 0x14]
jl 0x49cc89
or eax, 0x10000
mov dword [ebp + 0x90], eax
jmp 0x49cceb
mov ecx, dword [esi + 0x14]
cmp edx, ecx
jle 0x49ccaf
mov eax, dword [ebp + 0xc]
lea ecx, [eax + ecx*4]
lea edx, [eax + edx*4]
cmp ecx, edx
jae 0x49ccaf
mov eax, ecx
nop
mov dword [ecx], 0xffffffff
lea ecx, [eax + 4]
mov eax, ecx
cmp ecx, edx
jb 0x49cca0
mov eax, dword [ebp + 0x10]
sub eax, dword [esi + 0x94]
mov edx, dword [ebp + 0xc]
mov ecx, dword [esi + 0x98]
mov eax, dword [edx + eax*4]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x98]
sub edx, dword [ebp + 0x74]
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [esi + 0x98]
cmp dword [esi + 0x14], eax
jg 0x49cceb
add eax, 2
mov dword [esi + 0x14], eax
mov edi, dword [esi + 0xc]
mov cl, byte [edi]
cmp cl, 0x7b
jne 0x49cd23
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x7c], eax
mov eax, dword [esi + 8]
mov dword [ebp + 0x80], eax
mov eax, dword [esi + 0x14]
mov dword [ebp + 0x8c], eax
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a9812
mov edi, 0xfffffc1a
jmp 0x4a5ae8
cmp cl, 0x78
je 0x49cdb3
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x38]
je 0x49cdb3
cmp cl, 0x7a
mov ecx, dword [esi + 4]
jne 0x49cd79
test ecx, ecx
jne 0x49cd5e
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], ebx
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 7
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc]
add eax, 3
jmp 0x4a6b9d
test ecx, ecx
jne 0x49cd9b
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], ebx
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0xd
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x34]
jmp 0x4a6b9d
mov eax, dword [esi + 0x34]
cmp byte [eax], 0x81
jne 0x49e6f2
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x49cde4
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], ebx
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0xc
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc]
add eax, 3
jmp 0x4a6b9d
cmp dword [ebp + 0x44], ebx
je case.0x49bfaf.1
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
je case.default.0x4a7d1c
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
je case.0x49deb6.10
jmp case.default.0x4a7d1c
cmp dword [ebp + 0x44], ebx
je 0x49ce32
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
je case.default.0x4a7d1c
mov ecx, dword [esi + 8]
mov edi, dword [ebp + 0x74]
cmp ecx, edi
je case.0x49deb6.10
cmp ecx, dword [ebp + 0x78]
je case.default.0x4a7d1c
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x49ce7d
cmp ecx, edi
jbe 0x49ce72
push dword [esp + 0x28]
lea eax, [ebp + 0x1c]
push eax
push edi
push edx
push ecx
call fcn.00507160
add esp, 0x14
test eax, eax
je 0x49ce72
mov eax, 1
jmp 0x49ce74
xor eax, eax
test eax, eax
jne case.0x49deb6.10
jmp case.default.0x4a7d1c
mov edx, dword [ebp + 0x1c]
lea eax, [edx + edi]
cmp ecx, eax
jb case.default.0x4a7d1c
mov eax, ecx
sub eax, edx
mov al, byte [eax]
cmp al, byte [ebp + 0x34]
jne case.default.0x4a7d1c
cmp edx, 1
je case.0x49deb6.10
sub ecx, edx
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je case.0x49deb6.10
jmp case.default.0x4a7d1c
mov eax, dword [ebp + 0x94]
add eax, dword [ebp + 0x74]
cmp dword [esi + 8], eax
je case.0x49deb6.10
jmp case.default.0x4a7d1c
mov eax, dword [esi + 8]
mov dword [esi + 0x10], eax
inc dword [esi + 0xc]
jmp 0x49bf83
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x78]
cmp ecx, edx
jae 0x49cf74
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x49cf02
mov ebx, dword [esp + 0x28]
lea eax, [ebp + 0x1c]
push ebx
push eax
push edx
push edi
push ecx
call fcn.00506fd0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
jne case.0x49deb6.10
jmp 0x49cf23
mov edi, dword [ebp + 0x1c]
sub edx, edi
cmp ecx, edx
ja 0x49cf1f
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x49cf1f
cmp edi, 1
je case.0x49deb6.10
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je case.0x49deb6.10
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x4a69ef.14
mov edx, dword [esi + 8]
lea eax, [edx + 1]
cmp eax, dword [ebp + 0x78]
jb case.0x4a69ef.14
cmp dword [ebp + 0x18], 0
jne case.0x4a69ef.14
cmp dword [ebp + 0x1c], 2
jne case.0x4a69ef.14
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne case.0x4a69ef.14
mov dword [ebp + 0x64], 1
cmp ecx, 1
jg 0x4a9605
jmp case.0x4a69ef.14
cmp dword [ebp + 0x48], ebx
jne case.default.0x4a7d1c
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x49deb6.10
cmp ecx, dword [ebp + 0x84]
jbe case.0x49deb6.10
cmp eax, 1
mov dword [ebp + 0x64], 1
jle case.0x49deb6.10
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a98a2
mov ebx, dword [esp + 0x28]
mov edi, 0xfffffff4
jmp 0x4a5aec
cmp dword [ebp + 0x48], ebx
jne case.default.0x4a7d1c
cmp dword [ebp + 0x58], ebx
je case.0x49bfaf.23
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x49dec2
jmp case.default.0x4a7d1c
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x78]
cmp ecx, edx
jae 0x49cf7d
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x49d00e
push dword [esp + 0x28]
lea eax, [ebp + 0x1c]
push eax
push edx
push edi
push ecx
call fcn.00506fd0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
je 0x49d03c
jmp 0x49d02b
mov edi, dword [ebp + 0x1c]
sub edx, edi
cmp ecx, edx
ja 0x49d03c
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x49d03c
cmp edi, 1
je 0x49d02b
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
jne 0x49d03c
mov eax, dword [ebp + 0x78]
sub eax, dword [ebp + 0x1c]
mov ecx, dword [esi + 8]
cmp ecx, eax
je 0x49cf7d
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.default.0x4a7d1c
mov edx, dword [esi + 8]
lea eax, [edx + 1]
cmp eax, dword [ebp + 0x78]
jb case.default.0x4a7d1c
cmp dword [ebp + 0x18], ebx
jne case.default.0x4a7d1c
cmp dword [ebp + 0x1c], 2
jne case.default.0x4a7d1c
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne case.default.0x4a7d1c
mov dword [ebp + 0x64], 1
cmp ecx, 1
jle case.default.0x4a7d1c
jmp 0x49cfa7
cmp dword [esp + 0x28], ebx
je 0x49d348
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x74]
jne 0x49d0a6
mov dword [esi + 0x5c], ebx
jmp 0x49d1d5
mov al, byte [edx - 1]
dec edx
and al, 0xc0
mov ecx, edx
cmp al, 0x80
jne 0x49d0be
mov al, byte [edx - 1]
dec edx
and al, 0xc0
mov ecx, edx
cmp al, 0x80
je 0x49d0b2
cmp ecx, dword [ebp + 0x84]
jae 0x49d0cc
mov dword [ebp + 0x84], edx
movzx ebx, byte [edx]
mov eax, ebx
mov ecx, ebx
mov edi, ebx
cmp ebx, 0xc0
jb 0x49d183
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test bl, 0x20
jne 0x49d0fa
and eax, 0x1f
mov ebx, ecx
shl eax, 6
jmp 0x49d17b
movzx eax, byte [edx + 2]
test bl, 0x10
jne 0x49d10d
and ebx, 0xf
shl ebx, 6
or ebx, ecx
jmp 0x49d175
and eax, 0x3f
test bl, 8
jne 0x49d128
and ebx, 7
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
jmp 0x49d175
test bl, 4
jne 0x49d14c
and ebx, 3
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 4]
jmp 0x49d175
and ebx, 1
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 5]
shl ebx, 6
and eax, 0x3f
or ebx, eax
mov eax, ebx
mov ecx, ebx
mov edi, ebx
cmp dword [ebp + 0x54], 0
mov edx, ebx
je 0x49d20b
cmp edx, 0x5f
jne 0x49d19d
mov dword [esi + 0x5c], 1
jmp 0x49d1d5
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x55a200]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
mov eax, dword [eax*4 + 0x558550]
cmp eax, 1
je 0x49d21c
cmp eax, 3
je 0x49d21c
xor eax, eax
mov dword [esi + 0x5c], eax
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x49d223
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x49d1ff
cmp edi, dword [ebp + 0x84]
jbe 0x49d1ff
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x49cfa7
mov dword [esi + 0x54], 0
jmp 0x49d463
cmp edi, 0x100
jae 0x49d1d0
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 0x10
je 0x49d1d0
mov eax, 1
jmp 0x49d1d2
movzx edx, byte [edi]
mov eax, edx
mov ecx, edx
mov ebx, edx
cmp edx, 0xc0
jb 0x49d2da
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x49d251
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x49d2d2
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x49d264
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x49d2cc
and eax, 0x3f
test dl, 8
jne 0x49d27f
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x49d2cc
test dl, 4
jne 0x49d2a3
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x49d2cc
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
mov ecx, edx
mov ebx, edx
cmp dword [ebp + 0x54], 0
mov edi, edx
je 0x49d32d
cmp edi, 0x5f
jne 0x49d2f3
mov dword [esi + 0x54], 1
jmp 0x49d463
shr eax, 7
movzx eax, byte [eax + 0x55a200]
shl eax, 7
and ecx, 0x7f
add eax, ecx
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
mov eax, dword [eax*4 + 0x558550]
cmp eax, 1
je 0x49d33e
cmp eax, 3
je 0x49d33e
xor eax, eax
jmp 0x49d460
cmp ebx, 0x100
jae 0x49d326
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
je 0x49d326
mov eax, 1
jmp 0x49d460
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
jne 0x49d358
mov dword [esi + 0x5c], ebx
jmp 0x49d3e2
cmp eax, dword [ebp + 0x84]
ja 0x49d367
dec eax
mov dword [ebp + 0x84], eax
mov eax, dword [esi + 8]
movzx ecx, byte [eax - 1]
cmp dword [ebp + 0x54], ebx
je 0x49d3d2
cmp ecx, 0x5f
jne 0x49d381
mov dword [esi + 0x5c], 1
jmp 0x49d3e2
mov eax, ecx
test eax, eax
jns 0x49d38a
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x55a200]
shl eax, 7
and ecx, 0x8000007f
jns 0x49d3a4
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
mov eax, dword [eax*4 + 0x558550]
cmp eax, 1
je 0x49d3cb
cmp eax, 3
je 0x49d3cb
xor eax, eax
jmp 0x49d3df
mov eax, 1
jmp 0x49d3df
mov eax, dword [ebp + 0x40]
movzx eax, byte [ecx + eax]
shr eax, 4
and eax, 1
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x49d411
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je 0x49d40c
cmp eax, dword [ebp + 0x84]
jbe 0x49d40c
mov dword [ebp + 0x64], 1
cmp ecx, 1
jg 0x49cfa7
mov dword [esi + 0x54], ebx
jmp 0x49d463
movzx ecx, byte [eax]
cmp dword [ebp + 0x54], ebx
je 0x49d453
cmp ecx, 0x5f
jne 0x49d427
mov dword [esi + 0x54], 1
jmp 0x49d463
mov eax, ecx
test eax, eax
jns 0x49d430
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x55a200]
shl eax, 7
and ecx, 0x8000007f
jns 0x49d303
dec ecx
or ecx, 0xffffff80
inc ecx
jmp 0x49d303
mov eax, dword [ebp + 0x40]
movzx eax, byte [eax + ecx]
shr eax, 4
and eax, 1
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0xc]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x54]
cmp cl, 5
jne 0x49d47e
xor ecx, ecx
cmp eax, dword [esi + 0x5c]
sete cl
jmp 0x49d486
xor ecx, ecx
cmp eax, dword [esi + 0x5c]
setne cl
test ecx, ecx
je 0x49bf83
jmp case.default.0x4a7d1c
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x49d4cd
mov edx, dword [esi + 8]
mov edi, dword [ebp + 0x78]
cmp edx, edi
jae 0x49d4c2
push dword [esp + 0x28]
lea eax, [ebp + 0x1c]
push eax
push edi
push ecx
push edx
call fcn.00506fd0
add esp, 0x14
test eax, eax
je 0x49d4c2
mov eax, 1
jmp 0x49d4c4
xor eax, eax
test eax, eax
je 0x49d4f8
jmp case.default.0x4a7d1c
mov eax, dword [ebp + 0x78]
mov edx, dword [ebp + 0x1c]
sub eax, edx
mov ecx, dword [esi + 8]
cmp ecx, eax
ja 0x49d4f8
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x49d4f8
cmp edx, 1
je case.default.0x4a7d1c
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je case.default.0x4a7d1c
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x49bfaf.13
mov eax, dword [ebp + 0x78]
mov edx, dword [esi + 8]
dec eax
cmp edx, eax
jne case.0x49bfaf.13
cmp dword [ebp + 0x18], ebx
jne case.0x49bfaf.13
cmp dword [ebp + 0x1c], 2
jne case.0x49bfaf.13
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne case.0x49bfaf.13
mov dword [ebp + 0x64], 1
cmp ecx, 1
jg 0x49cfa7
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jb 0x49d566
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp ecx, dword [ebp + 0x84]
jbe case.default.0x4a7d1c
mov dword [ebp + 0x64], 1
cmp eax, 1
jle case.default.0x4a7d1c
jmp 0x49cfa7
inc ecx
mov dword [esi + 8], ecx
cmp dword [esp + 0x28], ebx
je case.0x49deb6.10
cmp ecx, dword [ebp + 0x78]
jae case.0x49deb6.10
lea ecx, [ecx]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne case.0x49deb6.10
inc ecx
mov dword [esi + 8], ecx
cmp ecx, dword [ebp + 0x78]
jb 0x49d580
inc dword [esi + 0xc]
jmp 0x49bf83
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x49d5c4
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.default.0x4a7d1c
cmp eax, dword [ebp + 0x84]
jbe case.default.0x4a7d1c
jmp 0x49d077
inc eax
mov dword [esi + 8], eax
inc dword [esi + 0xc]
jmp 0x49bf83
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x49d5f1
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp edi, dword [ebp + 0x84]
jmp 0x49d54b
movzx edx, byte [edi]
inc edi
mov ebx, dword [esp + 0x28]
mov eax, edx
mov dword [esi + 8], edi
test ebx, ebx
je 0x49d6db
cmp edx, 0xc0
jb 0x49d6db
movzx ecx, byte [edi]
and ecx, 0x3f
test dl, 0x20
jne 0x49d62f
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x49d6d6
movzx eax, byte [edi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x49d650
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x49d6d6
test dl, 8
jne 0x49d673
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x49d6d6
test dl, 4
jne 0x49d6a2
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
jmp 0x49d6d6
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov eax, edx
cmp eax, 0x100
jae case.0x49deb6.10
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
je case.0x49deb6.10
jmp case.0x4a69ef.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x49d719
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp edx, dword [ebp + 0x84]
jmp 0x49d54b
movzx ecx, byte [edx]
inc edx
mov ebx, dword [esp + 0x28]
mov eax, ecx
mov dword [esi + 8], edx
test ebx, ebx
je 0x49d816
cmp ecx, 0xc0
jb 0x49d816
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x49d755
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x49d811
test cl, 0x10
jne 0x49d776
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x49d811
test cl, 8
jne 0x49d7a0
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x49d811
test cl, 4
jne 0x49d7d6
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x49d811
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ecx
cmp eax, 0xff
ja case.0x4a69ef.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
jne case.0x49deb6.10
jmp case.0x4a69ef.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x49d854
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp edi, dword [ebp + 0x84]
jmp 0x49d54b
movzx edx, byte [edi]
inc edi
mov ebx, dword [esp + 0x28]
mov eax, edx
mov dword [esi + 8], edi
test ebx, ebx
je 0x49d95c
cmp edx, 0xc0
jb 0x49d95c
test dl, 0x20
jne 0x49d890
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x49d957
test dl, 0x10
jne 0x49d8b7
movzx eax, byte [edi]
and edx, 0xf
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x49d957
test dl, 8
jne 0x49d8e7
movzx eax, byte [edi]
and edx, 7
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x49d957
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 4
jne 0x49d923
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
jmp 0x49d957
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov eax, edx
cmp eax, 0x100
jae case.0x49deb6.10
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
je case.0x49deb6.10
jmp case.0x4a69ef.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x49d99a
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp edx, dword [ebp + 0x84]
jmp 0x49d54b
movzx ecx, byte [edx]
inc edx
mov ebx, dword [esp + 0x28]
mov eax, ecx
mov dword [esi + 8], edx
test ebx, ebx
je 0x49da97
cmp ecx, 0xc0
jb 0x49da97
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x49d9d6
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x49da92
test cl, 0x10
jne 0x49d9f7
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x49da92
test cl, 8
jne 0x49da21
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x49da92
test cl, 4
jne 0x49da57
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x49da92
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ecx
cmp eax, 0xff
ja case.0x4a69ef.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
jne case.0x49deb6.10
jmp case.0x4a69ef.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x49dad5
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp edi, dword [ebp + 0x84]
jmp 0x49d54b
movzx edx, byte [edi]
inc edi
mov ebx, dword [esp + 0x28]
mov eax, edx
mov dword [esi + 8], edi
test ebx, ebx
je 0x49dbdd
cmp edx, 0xc0
jb 0x49dbdd
test dl, 0x20
jne 0x49db11
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x49dbd8
test dl, 0x10
jne 0x49db38
movzx eax, byte [edi]
and edx, 0xf
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x49dbd8
test dl, 8
jne 0x49db68
movzx eax, byte [edi]
and edx, 7
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x49dbd8
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 4
jne 0x49dba4
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
jmp 0x49dbd8
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov eax, edx
cmp eax, 0x100
jae case.0x49deb6.10
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
je case.0x49deb6.10
jmp case.0x4a69ef.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x49dc1b
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp edx, dword [ebp + 0x84]
jmp 0x49d54b
movzx ecx, byte [edx]
inc edx
mov ebx, dword [esp + 0x28]
mov eax, ecx
mov dword [esi + 8], edx
test ebx, ebx
je 0x49dd18
cmp ecx, 0xc0
jb 0x49dd18
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x49dc57
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x49dd13
test cl, 0x10
jne 0x49dc78
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x49dd13
test cl, 8
jne 0x49dca2
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x49dd13
test cl, 4
jne 0x49dcd8
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x49dd13
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ecx
cmp eax, 0xff
ja case.0x4a69ef.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
jne case.0x49deb6.10
jmp case.0x4a69ef.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x49dd56
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp edi, dword [ebp + 0x84]
jmp 0x49d54b
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x28], 0
mov eax, edi
mov dword [esi + 8], edi
mov ebx, edx
mov ecx, edx
mov dword [esp + 0x20], edi
je 0x49de96
mov dword [esp + 0x20], edi
cmp edx, 0xc0
jb 0x49de96
test dl, 0x20
jne 0x49dda6
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
mov dword [esi + 8], eax
mov ebx, edx
mov ecx, edx
mov edi, eax
jmp 0x49de9a
test dl, 0x10
jne 0x49ddd6
movzx eax, byte [edi]
and edx, 0xf
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 2]
mov dword [esi + 8], eax
mov ebx, edx
mov ecx, edx
mov edi, eax
jmp 0x49de9a
test dl, 8
jne 0x49de12
movzx eax, byte [edi]
and edx, 7
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
mov dword [esi + 8], eax
mov ebx, edx
mov ecx, edx
mov edi, eax
jmp 0x49de9a
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 4
jne 0x49de57
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
mov dword [esi + 8], eax
mov ebx, edx
mov ecx, edx
mov edi, eax
jmp 0x49de9a
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov ebx, edx
mov ecx, edx
mov edi, eax
jmp 0x49de9a
mov edi, dword [esp + 0x20]
cmp ebx, 0x85
ja 0x49def9
cmp ecx, 0x85
je case.0x49deb6.11
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x4a7d1c
jmp dword [edx*4 + 0x4a9afc]
cmp edi, dword [ebp + 0x78]
jb 0x49dee4
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x49deb6.10
cmp eax, dword [ebp + 0x84]
jbe case.0x49deb6.10
cmp ecx, 1
jmp 0x49cf9a
cmp byte [eax], 0xa
jne case.0x49deb6.10
inc eax
mov dword [esi + 8], eax
inc dword [esi + 0xc]
jmp 0x49bf83
sub edx, 0x2028
je case.0x49deb6.11
sub edx, 1
jne case.default.0x4a7d1c
cmp dword [ebp + 0x68], 0
je case.0x49deb6.10
jmp case.default.0x4a7d1c
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x49df3a
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp edi, dword [ebp + 0x84]
jmp 0x49d54b
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x28], 0
mov ebx, edx
mov dword [esi + 8], edi
mov eax, edx
mov dword [esp + 0x20], edx
mov ecx, edx
je 0x49e055
mov dword [esp + 0x20], edx
cmp edx, 0xc0
jb 0x49e055
test dl, 0x20
jne 0x49df81
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x49e048
test dl, 0x10
jne 0x49dfa8
movzx eax, byte [edi]
and edx, 0xf
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x49e048
test dl, 8
jne 0x49dfd8
movzx eax, byte [edi]
and edx, 7
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x49e048
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 4
jne 0x49e014
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
jmp 0x49e048
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov ebx, edx
mov dword [esp + 0x20], edx
mov eax, edx
mov ecx, edx
cmp dword [esp + 0x20], 0x2000
mov edi, edx
ja 0x49e0bb
cmp edx, 0x2000
je case.default.0x4a7d1c
cmp edx, 0xa0
ja 0x49e09b
cmp ebx, 0xa0
je case.default.0x4a7d1c
cmp edx, 9
je case.default.0x4a7d1c
cmp edx, 0x20
je case.default.0x4a7d1c
inc dword [esi + 0xc]
jmp 0x49bf83
cmp edi, 0x1680
je case.default.0x4a7d1c
cmp edx, 0x180e
je case.default.0x4a7d1c
inc dword [esi + 0xc]
jmp 0x49bf83
cmp eax, 0x3000
ja case.0x49deb6.10
cmp ecx, 0x3000
je case.default.0x4a7d1c
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x49deb6.10
movzx eax, byte [edx + 0x4a9b14]
jmp dword [eax*4 + 0x4a9b0c]
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x49e110
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp edx, dword [ebp + 0x84]
jmp 0x49d54b
movzx ecx, byte [edx]
inc edx
cmp dword [esp + 0x28], 0
mov ebx, ecx
mov dword [esi + 8], edx
mov eax, ecx
mov dword [esp + 0x20], ecx
mov edi, ecx
je 0x49e220
mov dword [esp + 0x20], ecx
cmp ecx, 0xc0
jb 0x49e220
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x49e157
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x49e213
test cl, 0x10
jne 0x49e178
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x49e213
test cl, 8
jne 0x49e1a2
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x49e213
test cl, 4
jne 0x49e1d8
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x49e213
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov ebx, ecx
mov dword [esp + 0x20], ecx
mov eax, ecx
mov edi, ecx
cmp dword [esp + 0x20], 0x2000
mov edx, ecx
ja 0x49e280
cmp ecx, 0x2000
je case.0x49deb6.10
cmp ecx, 0xa0
ja 0x49e263
cmp ebx, 0xa0
je case.0x49deb6.10
cmp ecx, 9
je case.0x49deb6.10
cmp ecx, 0x20
je case.0x49deb6.10
jmp case.default.0x4a7d1c
cmp edx, 0x1680
je case.0x49deb6.10
cmp ecx, 0x180e
je case.0x49deb6.10
jmp case.default.0x4a7d1c
cmp eax, 0x3000
ja case.default.0x4a7d1c
cmp edi, 0x3000
je case.0x49deb6.10
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x4a7d1c
movzx eax, byte [ecx + 0x4a9b7c]
jmp dword [eax*4 + 0x4a9b74]
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x49e2d5
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp edi, dword [ebp + 0x84]
jmp 0x49d54b
movzx edx, byte [edi]
inc edi
mov ebx, dword [esp + 0x28]
mov ecx, edx
mov dword [esi + 8], edi
mov eax, edx
test ebx, ebx
je 0x49e3ed
cmp edx, 0xc0
jb 0x49e3ed
test dl, 0x20
jne 0x49e315
movzx ecx, byte [edi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
lea eax, [edi + 1]
jmp 0x49e3e6
test dl, 0x10
jne 0x49e33c
movzx ecx, byte [edi]
and edx, 0xf
movzx eax, byte [edi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x49e3e6
test dl, 8
jne 0x49e36f
movzx ecx, byte [edi]
and edx, 7
movzx eax, byte [edi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x49e3e6
movzx eax, byte [edi]
and eax, 0x3f
test dl, 4
jne 0x49e3ab
and edx, 3
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
jmp 0x49e3e6
and edx, 1
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov ecx, edx
mov eax, edx
cmp ecx, 0x85
ja 0x49e413
cmp eax, 0x85
je case.0x4a69ef.14
add edx, 0xfffffff6
cmp edx, 3
ja case.0x49deb6.10
jmp dword [edx*4 + 0x4a9bdc]
sub edx, 0x2028
je case.0x4a69ef.14
sub edx, 1
jne case.0x49deb6.10
jmp case.0x4a69ef.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x49e44e
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp edi, dword [ebp + 0x84]
jmp 0x49d54b
movzx edx, byte [edi]
inc edi
mov ebx, dword [esp + 0x28]
mov ecx, edx
mov dword [esi + 8], edi
mov eax, edx
test ebx, ebx
je 0x49e540
cmp edx, 0xc0
jb 0x49e540
test dl, 0x20
jne 0x49e48c
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x49e539
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x49e4b3
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x49e539
test dl, 8
jne 0x49e4d6
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x49e539
test dl, 4
jne 0x49e505
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
jmp 0x49e539
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov ecx, edx
mov eax, edx
cmp ecx, 0x85
ja 0x49e566
cmp eax, 0x85
je case.0x49deb6.10
add edx, 0xfffffff6
cmp edx, 3
ja case.0x4a69ef.14
jmp dword [edx*4 + 0x4a9bec]
sub edx, 0x2028
je case.0x49deb6.10
sub edx, 1
je case.0x49deb6.10
jmp case.0x4a69ef.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x49e5a1
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp edi, dword [ebp + 0x84]
jmp 0x49d54b
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x28], 0
mov ecx, edx
mov dword [esi + 8], edi
mov ebx, edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], edx
je 0x49e6b4
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], edx
cmp edx, 0xc0
jb 0x49e6b4
movzx ecx, byte [edi]
and ecx, 0x3f
test dl, 0x20
jne 0x49e5fa
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x49e6a1
movzx eax, byte [edi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x49e61b
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x49e6a1
test dl, 8
jne 0x49e63e
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x49e6a1
test dl, 4
jne 0x49e66d
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
jmp 0x49e6a1
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov ecx, edx
mov dword [esi + 8], eax
mov ebx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], ecx
mov edi, dword [esi + 0xc]
and ebx, 0x7f
shr ecx, 7
movzx eax, byte [ecx + 0x55a200]
movzx ecx, byte [edi + 1]
shl eax, 7
add eax, ebx
movzx ebx, word [eax*2 + 0x55c400]
cmp ecx, 0xa
ja case.0x4a7c9a.15
jmp dword [ecx*4 + 0x4a9bfc]
cmp dword [esi + 0x9c], 0xf
je case.default.0x4a7d1c
lea eax, [edi + 3]
mov dword [esi + 0xc], eax
jmp 0x49bf83
mov al, byte [ebx*8 + 0x558b81]
cmp al, 9
je 0x49e714
cmp al, 5
je 0x49e714
cmp al, 8
je 0x49e714
xor ecx, ecx
jmp 0x49e719
mov ecx, 1
xor eax, eax
cmp dword [esi + 0x9c], 0xf
sete al
cmp ecx, eax
jne 0x49e6f2
jmp case.default.0x4a7d1c
movzx ecx, byte [ebx*8 + 0x558b81]
xor edx, edx
movzx eax, byte [edi + 2]
cmp eax, dword [ecx*4 + 0x558550]
setne dl
xor eax, eax
cmp dword [esi + 0x9c], 0x10
sete al
cmp edx, eax
jne 0x49e6f2
jmp case.default.0x4a7d1c
mov al, byte [edi + 2]
xor ecx, ecx
cmp al, byte [ebx*8 + 0x558b81]
setne cl
xor eax, eax
cmp dword [esi + 0x9c], 0x10
sete al
cmp ecx, eax
jne 0x49e6f2
jmp case.default.0x4a7d1c
mov al, byte [edi + 2]
xor ecx, ecx
cmp al, byte [ebx*8 + 0x558b80]
jmp 0x49e767
movzx eax, byte [ebx*8 + 0x558b81]
mov eax, dword [eax*4 + 0x558550]
cmp eax, 1
je 0x49e714
cmp eax, 3
je 0x49e714
xor ecx, ecx
jmp 0x49e719
cmp edx, 0x20
ja 0x49e7d3
je case.0x49e6de.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x49e84f.8203
jmp dword [edx*4 + 0x4a9c28]
cmp edx, 0x2000
ja 0x49e82f
je case.0x49e6de.0
cmp edx, 0x1680
ja 0x49e827
je case.0x49e6de.0
sub edx, 0x85
je case.0x49e6de.0
sub edx, 0x1b
je case.0x49e6de.0
movzx eax, byte [ebx*8 + 0x558b81]
xor ecx, ecx
cmp dword [eax*4 + 0x558550], 6
sete cl
xor eax, eax
cmp dword [esi + 0x9c], 0xf
jmp 0x49e773
cmp edx, 0x180e
jmp 0x49e7fe
cmp edx, 0x3000
ja case.0x49e84f.8203
je case.0x49e6de.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x49e84f.8203
movzx eax, byte [edx + 0x4a9c44]
jmp dword [eax*4 + 0x4a9c3c]
movzx eax, byte [ebx*8 + 0x558b81]
mov eax, dword [eax*4 + 0x558550]
cmp eax, 1
je 0x49e714
cmp eax, 3
je 0x49e714
cmp edx, 0x5f
je 0x49e714
xor ecx, ecx
jmp 0x49e719
movzx eax, byte [edi + 2]
mov ecx, dword [esp + 0x20]
lea eax, [eax*4 + 0x558a40]
cmp ecx, dword [eax]
jb 0x49e8ad
mov ecx, dword [eax]
lea esp, [esp]
lea eax, [eax + 4]
cmp edx, ecx
je 0x49e8bf
mov ecx, dword [eax]
cmp edx, ecx
jae 0x49e8a0
cmp dword [esi + 0x9c], 0x10
jne 0x49e6f2
jmp case.default.0x4a7d1c
cmp dword [esi + 0x9c], 0x10
je 0x49e6f2
jmp case.default.0x4a7d1c
cmp dword [esp + 0x24], 0x24
je 0x49e714
cmp dword [esp + 0x1c], 0x40
je 0x49e714
cmp edx, 0x60
je 0x49e714
cmp edx, 0xa0
jb 0x49e904
cmp edx, 0xd7ff
jbe 0x49e714
cmp edx, 0xe000
jae 0x49e714
xor ecx, ecx
jmp 0x49e719
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x49e938
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp edx, dword [ebp + 0x84]
jmp 0x49d54b
movzx eax, byte [edx]
inc edx
cmp dword [esp + 0x28], 0
mov ecx, eax
mov dword [esi + 8], edx
mov ebx, eax
mov edi, edx
mov dword [esp + 0x14], edx
je 0x49ea25
mov dword [esp + 0x14], edx
cmp eax, 0xc0
jb 0x49ea25
movzx ecx, byte [edx]
and ecx, 0x3f
test al, 0x20
jne 0x49e97b
and eax, 0x1f
lea edi, [edx + 1]
shl eax, 6
jmp 0x49ea1a
test al, 0x10
jne 0x49e993
and eax, 0xf
lea edi, [edx + 2]
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
jmp 0x49ea14
test al, 8
jne 0x49e9b4
and eax, 7
lea edi, [edx + 3]
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
jmp 0x49ea14
test al, 4
jne 0x49e9e1
and eax, 3
lea edi, [edx + 4]
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x49ea14
and eax, 1
lea edi, [edx + 5]
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov dword [esi + 8], edi
mov ebx, ecx
mov dword [esp + 0x14], edi
mov edx, dword [ebp + 0x78]
and ebx, 0x7f
shr ecx, 7
movzx eax, byte [ecx + 0x55a200]
shl eax, 7
add eax, ebx
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b82]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x14], edx
jae 0x49eb92
mov dword [esp + 0x14], edx
lea esp, [esp]
cmp dword [esp + 0x28], 0
mov ebx, 1
movzx edx, byte [edi]
mov ecx, edx
je 0x49eb39
cmp edx, 0xc0
jb 0x49eb39
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x49eaa1
mov eax, edx
mov ebx, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x49eb35
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x49eab9
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x49eb2f
and eax, 0x3f
test dl, 8
jne 0x49ead9
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x49eb2f
test dl, 4
jne 0x49eb02
and edx, 3
mov ebx, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x49eb2f
and edx, ebx
mov ebx, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov ebp, dword [esp + 0x1c]
and ecx, 0x7f
shr edx, 7
movzx eax, byte [edx + 0x55a200]
mov edx, dword [esp + 0x14]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x55c400]
movzx ecx, byte [eax*8 + 0x558b82]
mov eax, 1
shl eax, cl
test dword [ebp*4 + 0x5585c8], eax
mov ebp, dword [esp + 0xb0]
je 0x49eb92
add edi, ebx
mov dword [esp + 0x1c], ecx
mov dword [esi + 8], edi
mov edx, dword [ebp + 0x78]
mov dword [esp + 0x14], edx
cmp edi, edx
jb 0x49ea60
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x49deb6.10
mov eax, dword [esi + 8]
cmp eax, edx
jb case.0x49deb6.10
jmp 0x49ded0
mov edx, dword [esi + 0xc]
xor eax, eax
cmp cl, 0x74
sete al
movzx ebx, byte [edx + 3]
movzx edi, byte [edx + 1]
mov dword [esp + 0x30], eax
movzx eax, byte [edx + 4]
shl ebx, 8
or ebx, eax
shl edi, 8
movzx eax, byte [edx + 2]
or edi, eax
lea eax, [edx + 5]
imul edi, dword [ebp + 0x24]
add edi, dword [ebp + 0x30]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x50]
neg eax
sbb eax, eax
neg eax
dec eax
mov dword [esi + 0x88], eax
mov dword [esi + 0x98], 0
test ebx, ebx
je 0x49eca7
mov edx, edi
mov dword [esp + 0x14], edi
mov edi, edi
movzx ecx, byte [edi]
dec ebx
movzx eax, byte [edi + 1]
shl ecx, 8
or ecx, eax
lea eax, [ecx + ecx]
mov dword [esi + 0x98], eax
cmp eax, dword [esi + 0x14]
jge 0x49ec39
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x14]
mov edi, dword [eax + ecx*8]
test edi, edi
jns 0x49ec4a
mov edi, dword [ebp + 0x24]
add edi, edx
mov dword [esp + 0x14], edi
mov edx, edi
test ebx, ebx
jg 0x49ec10
jmp 0x49eca7
mov eax, dword [eax + ecx*8 + 4]
sub eax, edi
jmp 0x49eca1
xor eax, eax
cmp cl, 0x72
sete al
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add ecx, ecx
mov dword [esi + 0x98], ecx
add dword [esi + 0xc], 3
mov eax, dword [esi + 0x98]
cmp eax, dword [esi + 0x14]
jge 0x49ec97
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
test edx, edx
js 0x49ec97
mov eax, dword [ecx + eax*4 + 4]
sub eax, edx
jmp 0x49eca1
mov eax, dword [ebp + 0x50]
neg eax
sbb eax, eax
neg eax
dec eax
mov dword [esi + 0x88], eax
mov edx, dword [esi + 0xc]
mov bl, byte [edx]
movzx ecx, bl
add ecx, 0xffffff9e
cmp ecx, 7
ja case.default.0x49ecc2
movzx eax, byte [ecx + 0x4a9cac]
jmp dword [eax*4 + 0x4a9ca4]
lea eax, [edx + 1]
mov edx, ecx
mov dword [esi + 0xc], eax
and edx, 1
movsx eax, byte [ecx + 0x551278]
mov dword [esi + 0x90], eax
movsx eax, byte [ecx + 0x551284]
mov dword [esp + 0x14], edx
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x49ed47
mov dword [esi + 0x8c], closesocket
jmp 0x49ed47
movzx ecx, byte [edx + 1]
xor eax, eax
cmp bl, 0x69
sete al
shl ecx, 8
mov dword [esp + 0x14], eax
movzx eax, byte [edx + 2]
or ecx, eax
mov dword [esi + 0x90], ecx
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 3]
movzx eax, byte [eax + 4]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
jne 0x49ed43
mov dword [esi + 0x8c], closesocket
add dword [esi + 0xc], 5
mov eax, dword [esi + 0x88]
test eax, eax
je 0x49bf83
jns 0x49ed64
cmp dword [esi + 0x90], 0
je 0x49bf83
mov eax, dword [esi + 0x90]
mov ecx, eax
cmp eax, 1
jl 0x49eda9
mov ebx, 1
push dword [esp + 0x30]
mov edi, dword [esi + 8]
push ebp
push dword [esi + 0x88]
push edi
push dword [esi + 0x98]
call fcn.0049bb70
add esp, 0x14
test eax, eax
js 0x49edc7
add eax, edi
inc ebx
mov dword [esi + 8], eax
mov eax, dword [esi + 0x90]
cmp ebx, eax
jle 0x49ed76
mov ecx, eax
cmp ecx, dword [esi + 0x8c]
je 0x49bf83
cmp dword [esp + 0x14], 0
je 0x49edf2
mov dword [esi + 0x84], eax
jmp 0x4a63fc
mov ecx, edi
cmp eax, 0xfffffffe
jne 0x49edd6
mov edi, dword [ebp + 0x78]
mov ecx, edi
mov dword [esi + 8], edi
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp edi, dword [ebp + 0x78]
jb case.default.0x4a7d1c
jmp 0x49d545
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov edi, dword [esi + 0x90]
mov eax, edi
cmp eax, dword [esi + 0x8c]
jge 0x4a6448
push dword [esp + 0x30]
mov ebx, dword [esi + 8]
push ebp
push dword [esi + 0x88]
push ebx
push dword [esi + 0x98]
call fcn.0049bb70
add esp, 0x14
test eax, eax
js 0x49ee35
add eax, ebx
inc edi
mov dword [esi + 8], eax
jmp 0x49edfe
cmp eax, 0xfffffffe
jne 0x4a6448
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je 0x4a6448
mov eax, dword [ebp + 0x78]
cmp eax, dword [ebp + 0x84]
jbe 0x4a6448
mov dword [ebp + 0x64], 1
cmp ecx, 1
jle 0x4a6448
jmp 0x49cfa7
push dword [esp + 0x30]
push ebp
push dword [esi + 0x88]
push dword [esi + 8]
push dword [esi + 0x98]
call fcn.0049bb70
mov ecx, eax
add esp, 0x14
mov dword [esi + 0x88], ecx
test ecx, ecx
jns 0x49eece
cmp ecx, 0xfffffffe
jne 0x49eea3
mov eax, dword [ebp + 0x78]
mov dword [esi + 8], eax
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.default.0x4a7d1c
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb case.default.0x4a7d1c
cmp eax, dword [ebp + 0x84]
jbe case.default.0x4a7d1c
jmp 0x49d077
add dword [esi + 8], ecx
jmp 0x49bf83
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0x28], eax
mov edx, dword [esi + 0xc]
lea eax, [edx + 0x21]
mov dword [esi + 0xc], eax
mov bl, byte [eax]
movzx ecx, bl
add ecx, 0xffffff9e
cmp ecx, 0xb
ja case.default.0x49eefe
movzx eax, byte [ecx + 0x4a9cbc]
jmp dword [eax*4 + 0x4a9cb4]
lea eax, [edx + 0x22]
mov dword [esi + 0xc], eax
cmp ecx, 8
jae 0x49ef1b
mov eax, ecx
and eax, 1
mov dword [esp + 0x20], eax
jmp 0x49ef23
mov dword [esp + 0x24], 1
movsx eax, byte [ecx + 0x551278]
mov dword [esi + 0x90], eax
movsx eax, byte [ecx + 0x551284]
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x49efb8
mov dword [esi + 0x8c], closesocket
jmp 0x49efb8
movzx ecx, byte [edx + 0x22]
xor eax, eax
cmp bl, 0x69
sete al
mov dword [esp + 0x20], eax
xor eax, eax
cmp bl, 0x6d
sete al
shl ecx, 8
mov dword [esp + 0x24], eax
movzx eax, byte [edx + 0x23]
or ecx, eax
mov dword [esi + 0x90], ecx
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 3]
movzx eax, byte [eax + 4]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
jne 0x49ef9e
mov dword [esi + 0x8c], closesocket
add dword [esi + 0xc], 5
jmp 0x49efb8
mov dword [esi + 0x8c], 1
mov dword [esi + 0x90], 1
mov ecx, dword [esp + 0x28]
mov ebx, 1
mov dword [esp + 0x14], ebx
test ecx, ecx
je 0x49f130
cmp dword [esi + 0x90], ebx
jl 0x49f17b
lea esp, [esp]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x49d5a5
movzx ebx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 8], edx
mov ecx, ebx
mov eax, ebx
cmp ebx, 0xc0
jb 0x49f0f0
test bl, 0x20
jne 0x49f027
movzx eax, byte [edx]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 1]
mov dword [esi + 8], eax
mov ecx, ebx
mov eax, ebx
jmp 0x49f0f0
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x49f055
and ebx, 0xf
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
lea eax, [edx + 2]
mov dword [esi + 8], eax
mov ecx, ebx
mov eax, ebx
jmp 0x49f0f0
test bl, 8
jne 0x49f07f
and ebx, 7
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 3]
mov dword [esi + 8], eax
mov ecx, ebx
mov eax, ebx
jmp 0x49f0f0
test bl, 4
jne 0x49f0b5
and ebx, 3
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 4]
mov dword [esi + 8], eax
mov ecx, ebx
mov eax, ebx
jmp 0x49f0f0
and ebx, 1
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov ebx, ecx
mov eax, ecx
cmp eax, 0xff
jbe 0x49f100
cmp dword [esi + 0x9c], 0x6e
jmp 0x49f113
mov eax, dword [esi + 0x28]
and ecx, 7
shr ebx, 3
mov edx, 1
shl edx, cl
test byte [ebx + eax], dl
je case.default.0x4a7d1c
mov ebx, dword [esp + 0x14]
inc ebx
mov dword [esp + 0x14], ebx
cmp ebx, dword [esi + 0x90]
jle 0x49efe0
jmp 0x49f177
cmp dword [esi + 0x90], ebx
jl 0x49f17b
jmp 0x49f140
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x49d5a5
movzx edi, byte [eax]
mov edx, 1
inc eax
mov ecx, edi
mov dword [esi + 8], eax
and ecx, 7
mov eax, dword [esi + 0x28]
shr edi, 3
shl edx, cl
test byte [edi + eax], dl
je case.default.0x4a7d1c
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x49f140
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x8c]
je 0x49bf83
cmp dword [esp + 0x20], 0
je 0x49f1a7
mov dword [esi + 0x84], eax
test ecx, ecx
jne 0x4a748b
jmp 0x4a64f5
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x49f38c
cmp eax, dword [esi + 0x8c]
jge 0x49f37c
jmp 0x49f1d0
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x49f35a
movzx ebx, byte [edi]
mov dword [esp + 0x1c], 1
mov ecx, ebx
mov edx, ebx
cmp ebx, 0xc0
jb 0x49f305
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test bl, 0x20
jne 0x49f225
mov eax, ebx
mov dword [esp + 0x1c], 2
and eax, 0x1f
mov ebx, ecx
shl eax, 6
or ebx, eax
mov eax, 2
mov ecx, ebx
mov edx, ebx
jmp 0x49f30a
movzx eax, byte [edi + 2]
and eax, 0x3f
test bl, 0x10
jne 0x49f254
and ebx, 0xf
mov dword [esp + 0x1c], 3
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
mov eax, 3
mov ecx, ebx
mov edx, ebx
jmp 0x49f30a
test bl, 8
jne 0x49f288
and ebx, 7
mov dword [esp + 0x1c], 4
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
mov eax, 4
mov ecx, ebx
mov edx, ebx
jmp 0x49f30a
test bl, 4
jne 0x49f2c5
and ebx, 3
mov dword [esp + 0x1c], 5
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
mov eax, 5
mov ecx, ebx
mov edx, ebx
jmp 0x49f30a
and ebx, 1
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 5]
and eax, 0x3f
shl ebx, 6
or ebx, eax
mov eax, 6
mov ecx, ebx
mov dword [esp + 0x1c], eax
mov edx, ebx
jmp 0x49f30a
mov eax, 1
cmp edx, 0xff
jbe 0x49f31d
cmp dword [esi + 0x9c], 0x6e
je 0x49f37c
jmp 0x49f33e
mov eax, dword [esp + 0x1c]
and ecx, 7
mov dword [esp + 0x1c], eax
mov edx, 1
mov eax, dword [esi + 0x28]
shr ebx, 3
shl edx, cl
test byte [ebx + eax], dl
je 0x49f37c
mov eax, dword [esp + 0x1c]
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x49f1d0
jmp 0x49f37c
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x49f37c
cmp edi, dword [ebp + 0x84]
jbe 0x49f37c
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x49cfa7
cmp dword [esp + 0x24], 0
jne 0x49bf83
jmp 0x4a74f1
cmp eax, dword [esi + 0x8c]
jge 0x49f3f1
mov ebx, dword [esi + 8]
cmp ebx, dword [ebp + 0x78]
jae 0x49f3cf
movzx edi, byte [ebx]
mov edx, 1
mov eax, dword [esi + 0x28]
mov ecx, edi
and ecx, 7
shr edi, 3
shl edx, cl
test byte [edi + eax], dl
je 0x49f3f1
lea eax, [ebx + 1]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x49f394
jmp 0x49f3f1
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x49f3f1
cmp ebx, dword [ebp + 0x84]
jbe 0x49f3f1
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x49cfa7
cmp dword [esp + 0x24], 0
jne 0x49bf83
jmp 0x4a6538
mov eax, dword [esi + 0xc]
add eax, 3
mov dword [esi + 0x28], eax
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esi + 0xc], edx
mov bl, byte [edx]
movzx ecx, bl
add ecx, 0xffffff9e
cmp ecx, 0xb
ja case.default.0x49f437
movzx eax, byte [ecx + 0x4a9cd0]
jmp dword [eax*4 + 0x4a9cc8]
lea eax, [edx + 1]
mov dword [esi + 0xc], eax
cmp ecx, 8
jae 0x49f454
mov eax, ecx
and eax, 1
mov dword [esp + 0x20], eax
jmp 0x49f45c
mov dword [esp + 0x24], 1
movsx eax, byte [ecx + 0x551278]
mov dword [esi + 0x90], eax
movsx eax, byte [ecx + 0x551284]
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x49f4ed
mov dword [esi + 0x8c], closesocket
jmp 0x49f4ed
movzx ecx, byte [edx + 1]
xor eax, eax
cmp bl, 0x69
sete al
mov dword [esp + 0x20], eax
xor eax, eax
cmp bl, 0x6d
sete al
shl ecx, 8
mov dword [esp + 0x24], eax
movzx eax, byte [edx + 2]
or ecx, eax
mov dword [esi + 0x90], ecx
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 3]
movzx eax, byte [eax + 4]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
jne 0x49f4d3
mov dword [esi + 0x8c], closesocket
add dword [esi + 0xc], 5
jmp 0x49f4ed
mov dword [esi + 0x8c], 1
mov dword [esi + 0x90], 1
mov eax, dword [esi + 0x90]
mov ebx, 1
mov ecx, eax
cmp eax, ebx
jl 0x49f622
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x49d5a5
cmp dword [esp + 0x28], 0
lea edi, [eax + 1]
movzx edx, byte [eax]
mov dword [esi + 8], edi
je 0x49f5f9
cmp edx, 0xc0
jb 0x49f5f9
test dl, 0x20
jne 0x49f549
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x49f5f6
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x49f570
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x49f5f6
test dl, 8
jne 0x49f593
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x49f5f6
test dl, 4
jne 0x49f5c2
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
jmp 0x49f5f6
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
push dword [esp + 0x28]
push dword [esi + 0x28]
push edx
call fcn.00507640
add esp, 0xc
test eax, eax
je case.default.0x4a7d1c
mov eax, dword [esi + 0x90]
inc ebx
cmp ebx, eax
jle 0x49f502
mov ecx, eax
cmp ecx, dword [esi + 0x8c]
je 0x49bf83
cmp dword [esp + 0x20], 0
je 0x49f640
mov dword [esi + 0x84], eax
jmp 0x4a7271
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x49f791
lea esp, [esp]
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x49f76f
cmp dword [esp + 0x28], 0
mov ebx, 1
movzx edx, byte [edi]
je 0x49f741
cmp edx, 0xc0
jb 0x49f741
test dl, 0x20
jne 0x49f6a1
movzx eax, byte [edi + 1]
and edx, 0x1f
mov ebx, 2
jmp 0x49f739
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x49f6c3
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x49f739
and eax, 0x3f
test dl, 8
jne 0x49f6e3
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x49f739
test dl, 4
jne 0x49f70c
and edx, 3
mov ebx, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x49f739
and edx, ebx
mov ebx, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
push dword [esp + 0x28]
push dword [esi + 0x28]
push edx
call fcn.00507640
add esp, 0xc
test eax, eax
je 0x49f791
mov eax, dword [esp + 0x14]
add dword [esi + 8], ebx
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x49f660
jmp 0x49f791
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x49f791
cmp edi, dword [ebp + 0x84]
jbe 0x49f791
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x49cfa7
cmp dword [esp + 0x24], 0
jne 0x49bf83
jmp 0x4a72dc
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x49f95d
mov dword [esi + 0x88], 1
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
movzx ebx, byte [eax]
mov dword [esi + 0x80], ebx
cmp ebx, 0xc0
jb 0x49f8e8
test bl, 0x20
jne 0x49f7fb
mov eax, dword [esi + 0xc]
and ebx, 0x1f
shl ebx, 6
movzx eax, byte [eax + 1]
and eax, 0x3f
or eax, ebx
mov dword [esi + 0x80], eax
inc dword [esi + 0x88]
jmp 0x49f8e8
test bl, 0x10
jne 0x49f830
mov eax, dword [esi + 0xc]
and ebx, 0xf
shl ebx, 6
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
and ecx, 0x3f
or ecx, ebx
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov dword [esi + 0x80], ecx
add dword [esi + 0x88], 2
jmp 0x49f8e8
mov ecx, dword [esi + 0xc]
movzx edx, byte [ecx + 1]
movzx eax, byte [ecx + 2]
and edx, 0x3f
and eax, 0x3f
test bl, 8
jne 0x49f871
and ebx, 7
shl ebx, 6
or edx, ebx
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
mov dword [esi + 0x80], edx
add dword [esi + 0x88], 3
jmp 0x49f8e8
test bl, 4
jne 0x49f8aa
and ebx, 3
shl ebx, 6
or edx, ebx
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [ecx + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
mov dword [esi + 0x80], edx
add dword [esi + 0x88], 4
jmp 0x49f8e8
and ebx, 1
shl ebx, 6
or edx, ebx
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [ecx + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [ecx + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov dword [esi + 0x80], edx
add dword [esi + 0x88], 5
mov edi, dword [ebp + 0x78]
mov eax, edi
mov edx, dword [esi + 8]
sub eax, edx
mov ecx, dword [esi + 0x88]
cmp ecx, eax
jle 0x49f91d
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp edx, edi
jb case.default.0x4a7d1c
cmp edx, dword [ebp + 0x84]
jmp 0x49d54b
test ecx, ecx
jle 0x49f94f
lea eax, [ecx - 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov bl, byte [eax]
mov dl, byte [ecx]
lea eax, [ecx + 1]
mov dword [esi + 8], eax
inc dword [esi + 0xc]
cmp bl, dl
jne case.default.0x4a7d1c
mov ecx, dword [esi + 0x88]
test ecx, ecx
jg 0x49f921
lea eax, [ecx - 1]
mov dword [esi + 0x88], eax
jmp 0x49bf83
mov eax, dword [ebp + 0x78]
mov edi, dword [esi + 8]
sub eax, edi
cmp eax, 1
jge 0x49f999
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a69ef.14
cmp edi, dword [ebp + 0x84]
jbe case.0x4a69ef.14
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4a9605
jmp case.0x4a69ef.14
mov eax, dword [esi + 0xc]
mov cl, byte [edi]
mov dl, byte [eax + 1]
lea eax, [edi + 1]
mov dword [esi + 8], eax
cmp dl, cl
je 0x49fcb7
jmp case.0x4a69ef.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x49f9d5
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp edi, dword [ebp + 0x84]
jmp 0x49d54b
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x49fc98
mov dword [esi + 0x88], 1
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
movzx ebx, byte [eax]
mov dword [esi + 0x80], ebx
cmp ebx, 0xc0
jb 0x49fb1c
test bl, 0x20
jne 0x49fa2f
mov eax, dword [esi + 0xc]
and ebx, 0x1f
shl ebx, 6
movzx eax, byte [eax + 1]
and eax, 0x3f
or eax, ebx
mov dword [esi + 0x80], eax
inc dword [esi + 0x88]
jmp 0x49fb1c
test bl, 0x10
jne 0x49fa64
mov eax, dword [esi + 0xc]
and ebx, 0xf
shl ebx, 6
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
and ecx, 0x3f
or ecx, ebx
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov dword [esi + 0x80], ecx
add dword [esi + 0x88], 2
jmp 0x49fb1c
mov ecx, dword [esi + 0xc]
movzx edx, byte [ecx + 1]
movzx eax, byte [ecx + 2]
and edx, 0x3f
and eax, 0x3f
test bl, 8
jne 0x49faa5
and ebx, 7
shl ebx, 6
or edx, ebx
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
mov dword [esi + 0x80], edx
add dword [esi + 0x88], 3
jmp 0x49fb1c
test bl, 4
jne 0x49fade
and ebx, 3
shl ebx, 6
or edx, ebx
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [ecx + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
mov dword [esi + 0x80], edx
add dword [esi + 0x88], 4
jmp 0x49fb1c
and ebx, 1
shl ebx, 6
or edx, ebx
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [ecx + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [ecx + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov dword [esi + 0x80], edx
add dword [esi + 0x88], 5
mov eax, dword [esi + 8]
mov edi, dword [esi + 0x80]
movzx ecx, byte [eax]
cmp edi, 0x80
jae 0x49fb4a
mov edx, dword [ebp + 0x38]
mov al, byte [edx + edi]
cmp al, byte [ecx + edx]
jne case.default.0x4a7d1c
inc dword [esi + 0xc]
inc dword [esi + 8]
jmp 0x49bf83
lea edx, [eax + 1]
mov edi, ecx
mov dword [esi + 8], edx
cmp ecx, 0xc0
jb 0x49fc3d
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x49fb79
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x49fc38
test cl, 0x10
jne 0x49fb9a
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x49fc38
test cl, 8
jne 0x49fbc7
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x49fc38
test cl, 4
jne 0x49fbfd
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x49fc38
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
mov eax, dword [esi + 0x88]
add dword [esi + 0xc], eax
mov edx, dword [esi + 0x80]
cmp edx, ecx
je 0x49bf83
mov eax, edx
test eax, eax
jns 0x49fc5d
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x55a200]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x49fc78
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x55c400]
mov eax, dword [eax*8 + 0x558b84]
add eax, edx
cmp edi, eax
je 0x49bf83
jmp case.default.0x4a7d1c
mov eax, dword [esi + 0xc]
mov edx, dword [ebp + 0x38]
movzx ecx, byte [edi]
movzx eax, byte [eax + 1]
mov al, byte [eax + edx]
cmp al, byte [ecx + edx]
jne case.0x4a69ef.14
lea eax, [edi + 1]
mov dword [esi + 8], eax
add dword [esi + 0xc], 2
jmp 0x49bf83
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x90], ecx
add dword [esi + 0xc], 3
jmp 0x49fdd5
mov dword [esp + 0x24], 1
mov dword [esi + 0x90], ebx
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
mov ecx, dword [esi + 0xc]
mov al, byte [ecx]
cmp al, 0x28
je 0x49fd1a
mov dword [esp + 0x20], ebx
cmp al, 0x35
jne 0x49fd22
mov dword [esp + 0x20], 1
lea eax, [ecx + 3]
mov dword [esi + 0xc], eax
jmp 0x49fdd5
mov dword [esi + 0x90], ebx
mov dword [esi + 0x8c], closesocket
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x49fdd5
mov dword [esi + 0x90], 1
mov dword [esi + 0x8c], closesocket
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x49fdd5
mov dword [esi + 0x90], ebx
mov dword [esi + 0x8c], 1
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x49fdd5
mov edx, dword [esi + 0xc]
cmp cl, 0x2e
sbb eax, eax
and eax, 0xfffffff3
movzx ebx, byte [edx]
add eax, 0x2e
sub ebx, eax
lea eax, [edx + 1]
mov ecx, ebx
mov dword [esi + 0xc], eax
and ebx, 1
mov dword [esp + 0x20], ebx
movsx eax, byte [ecx + 0x551278]
mov dword [esi + 0x90], eax
movsx eax, byte [ecx + 0x551284]
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x49fdd5
mov dword [esi + 0x8c], closesocket
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x4a0229
mov dword [esi + 0x88], 1
mov eax, dword [esi + 0xc]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0xc]
movzx ebx, byte [eax]
mov dword [esi + 0x80], ebx
cmp ebx, 0xc0
jb 0x49ff1e
test bl, 0x20
jne 0x49fe31
mov eax, dword [esi + 0xc]
and ebx, 0x1f
shl ebx, 6
movzx eax, byte [eax + 1]
and eax, 0x3f
or eax, ebx
mov dword [esi + 0x80], eax
inc dword [esi + 0x88]
jmp 0x49ff1e
test bl, 0x10
jne 0x49fe66
mov eax, dword [esi + 0xc]
and ebx, 0xf
shl ebx, 6
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
and ecx, 0x3f
or ecx, ebx
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov dword [esi + 0x80], ecx
add dword [esi + 0x88], 2
jmp 0x49ff1e
mov ecx, dword [esi + 0xc]
movzx edx, byte [ecx + 1]
movzx eax, byte [ecx + 2]
and edx, 0x3f
and eax, 0x3f
test bl, 8
jne 0x49fea7
and ebx, 7
shl ebx, 6
or edx, ebx
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
mov dword [esi + 0x80], edx
add dword [esi + 0x88], 3
jmp 0x49ff1e
test bl, 4
jne 0x49fee0
and ebx, 3
shl ebx, 6
or edx, ebx
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [ecx + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
mov dword [esi + 0x80], edx
add dword [esi + 0x88], 4
jmp 0x49ff1e
and ebx, 1
shl ebx, 6
or edx, ebx
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [ecx + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [ecx + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov dword [esi + 0x80], edx
add dword [esi + 0x88], 5
mov eax, dword [esi + 0x88]
add dword [esi + 0xc], eax
cmp dword [esi + 0x88], 1
jle 0x4a023a
cmp dword [esi + 0x9c], 0x2e
jb 0x49ff90
mov edx, dword [esi + 0x80]
mov eax, edx
test eax, eax
jns 0x49ff4c
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x55a200]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x49ff67
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x55c400]
mov ecx, dword [eax*8 + 0x558b84]
add ecx, edx
cmp ecx, edx
je 0x49ff90
lea eax, [esi + 0x70]
push eax
push ecx
call fcn.00507300
add esp, 8
mov dword [esi + 0x6c], eax
jmp 0x49ff97
mov dword [esi + 0x6c], 0
mov eax, dword [esi + 0x90]
mov ecx, eax
mov dword [esp + 0x14], 1
cmp eax, 1
jl 0x4a00a4
mov ecx, dword [ebp + 0x78]
mov eax, ecx
mov edi, dword [esi + 0x88]
sub eax, edi
mov ebx, dword [esi + 8]
cmp ebx, eax
ja 0x4a001e
mov edx, dword [esi + 0x24]
mov ecx, ebx
sub edi, 4
jb 0x49ffe1
mov edi, edi
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x49ffe6
add ecx, 4
add edx, 4
sub edi, 4
jae 0x49ffd0
cmp edi, 0xfffffffc
je 0x4a0013
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4a001b
cmp edi, 0xfffffffd
je 0x4a0013
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4a001b
cmp edi, 0xfffffffe
je 0x4a0013
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4a001b
cmp edi, 0xffffffff
je 0x4a0013
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4a001b
mov eax, dword [esi + 0x88]
jmp 0x4a0086
mov ecx, dword [ebp + 0x78]
mov edi, dword [esi + 0x6c]
test edi, edi
jle 0x4a00c2
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x4a00c2
lea edx, [esi + 0x70]
mov ecx, ebx
sub edi, 4
jb 0x4a0051
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4a0056
add ecx, 4
add edx, 4
sub edi, 4
jae 0x4a0040
cmp edi, 0xfffffffc
je 0x4a0083
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4a00c2
cmp edi, 0xfffffffd
je 0x4a0083
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4a00c2
cmp edi, 0xfffffffe
je 0x4a0083
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4a00c2
cmp edi, 0xffffffff
je 0x4a0083
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4a00c2
mov eax, dword [esi + 0x6c]
mov edx, dword [esp + 0x14]
add eax, ebx
inc edx
mov dword [esi + 8], eax
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], edx
cmp edx, eax
jle 0x49ffb0
mov ecx, eax
cmp ecx, dword [esi + 0x8c]
je 0x49bf83
cmp dword [esp + 0x20], 0
je 0x4a00e4
mov dword [esi + 0x84], eax
jmp 0x4a7625
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp ebx, dword [ebp + 0x78]
jb case.default.0x4a7d1c
cmp ebx, dword [ebp + 0x84]
jmp 0x49d54b
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x4a0219
mov ecx, dword [ebp + 0x78]
mov eax, ecx
mov edi, dword [esi + 0x88]
sub eax, edi
mov ebx, dword [esi + 8]
cmp ebx, eax
ja 0x4a016e
mov edx, dword [esi + 0x24]
mov ecx, ebx
sub edi, 4
jb 0x4a0131
mov edi, edi
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4a0136
add ecx, 4
add edx, 4
sub edi, 4
jae 0x4a0120
cmp edi, 0xfffffffc
je 0x4a0163
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4a016b
cmp edi, 0xfffffffd
je 0x4a0163
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4a016b
cmp edi, 0xfffffffe
je 0x4a0163
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4a016b
cmp edi, 0xffffffff
je 0x4a0163
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4a016b
mov eax, dword [esi + 0x88]
jmp 0x4a01d6
mov ecx, dword [ebp + 0x78]
mov edi, dword [esi + 0x6c]
test edi, edi
jle 0x4a01f2
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x4a01f2
lea edx, [esi + 0x70]
mov ecx, ebx
sub edi, 4
jb 0x4a01a1
jmp 0x4a0190
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4a01a6
add ecx, 4
add edx, 4
sub edi, 4
jae 0x4a0190
cmp edi, 0xfffffffc
je 0x4a01d3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4a01f2
cmp edi, 0xfffffffd
je 0x4a01d3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4a01f2
cmp edi, 0xfffffffe
je 0x4a01d3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4a01f2
cmp edi, 0xffffffff
je 0x4a01d3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4a01f2
mov eax, dword [esi + 0x6c]
mov ecx, dword [esp + 0x14]
add eax, ebx
inc ecx
mov dword [esi + 8], eax
mov dword [esp + 0x14], ecx
cmp ecx, dword [esi + 0x8c]
jl 0x4a0100
jmp 0x4a0219
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x4a0219
cmp ebx, dword [ebp + 0x78]
jb 0x4a0219
cmp ebx, dword [ebp + 0x84]
jbe 0x4a0219
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x49cfa7
cmp dword [esp + 0x24], 0
jne 0x49bf83
jmp 0x4a76cd
mov eax, dword [esi + 0xc]
movzx eax, byte [eax]
mov dword [esi + 0x80], eax
inc dword [esi + 0xc]
jmp 0x4a023e
mov ebx, dword [esp + 0x28]
cmp dword [esi + 0x9c], 0x2e
mov edi, 1
jb 0x4a0338
mov ecx, dword [esi + 0x80]
mov eax, dword [ebp + 0x3c]
movzx eax, byte [ecx + eax]
mov dword [esi + 0x94], eax
mov eax, dword [esi + 0x90]
mov ecx, eax
cmp eax, edi
jl 0x4a02a4
nop
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x4a64ae
movzx ecx, byte [eax]
cmp dword [esi + 0x80], ecx
je 0x4a0293
cmp dword [esi + 0x94], ecx
jne case.0x4a69ef.14
inc eax
inc edi
mov dword [esi + 8], eax
mov eax, dword [esi + 0x90]
cmp edi, eax
jle 0x4a0270
mov ecx, eax
cmp ecx, dword [esi + 0x8c]
je 0x49bf83
cmp dword [esp + 0x20], 0
je 0x4a02c2
mov dword [esi + 0x84], eax
jmp 0x4a65de
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov ecx, dword [esi + 0x90]
cmp ecx, dword [esi + 0x8c]
jge 0x4a0328
mov edi, ecx
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x4a0306
movzx edx, byte [eax]
cmp dword [esi + 0x80], edx
je 0x4a02f5
mov ecx, edi
cmp dword [esi + 0x94], edx
jne 0x4a0328
inc eax
inc ecx
mov dword [esi + 8], eax
mov edi, ecx
cmp ecx, dword [esi + 0x8c]
jl 0x4a02d8
jmp 0x4a0328
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je 0x4a0328
cmp eax, dword [ebp + 0x84]
jbe 0x4a0328
mov dword [ebp + 0x64], 1
cmp ecx, 1
jg 0x4a9605
cmp dword [esp + 0x24], 0
jne 0x49bf83
jmp 0x4a6621
mov eax, dword [esi + 0x90]
mov ecx, eax
cmp eax, 1
jl 0x4a036f
mov ebx, dword [esi + 8]
cmp ebx, dword [ebp + 0x78]
jae 0x4a038d
movzx edx, byte [ebx]
lea eax, [ebx + 1]
mov dword [esi + 8], eax
cmp dword [esi + 0x80], edx
jne case.default.0x4a7d1c
mov eax, dword [esi + 0x90]
inc edi
cmp edi, eax
jle 0x4a0345
mov ecx, eax
cmp ecx, dword [esi + 0x8c]
je 0x49bf83
cmp dword [esp + 0x20], 0
je 0x4a03a6
mov dword [esi + 0x84], eax
jmp 0x4a66a6
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp ebx, dword [ebp + 0x84]
jmp 0x49d54b
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge 0x4a0406
lea ebx, [ebx]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x4a03e4
movzx eax, byte [ecx]
cmp dword [esi + 0x80], eax
jne 0x4a0406
lea eax, [ecx + 1]
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x4a03c0
jmp 0x4a0406
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x4a0406
cmp ecx, dword [ebp + 0x84]
jbe 0x4a0406
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x49cfa7
cmp dword [esp + 0x24], 0
jne 0x49bf83
jmp 0x4a66e9
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x49d537
mov ebx, dword [esp + 0x28]
mov eax, dword [esi + 0xc]
test ebx, ebx
je 0x4a06df
inc eax
mov dword [esi + 0xc], eax
movzx ebx, byte [eax]
lea ecx, [eax + 1]
mov dword [esi + 0xc], ecx
cmp ebx, 0xc0
jb 0x4a0524
movzx eax, byte [ecx]
and eax, 0x3f
test bl, 0x20
jne 0x4a0465
and ebx, 0x1f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 1]
jmp 0x4a0521
test bl, 0x10
jne 0x4a0486
and ebx, 0xf
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 2]
jmp 0x4a0521
test bl, 8
jne 0x4a04b0
and ebx, 7
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 3]
jmp 0x4a0521
test bl, 4
jne 0x4a04e6
and ebx, 3
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 4]
jmp 0x4a0521
and ebx, 1
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 5]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 8]
movzx edx, byte [eax]
lea ecx, [eax + 1]
mov dword [esi + 8], ecx
mov edi, edx
mov dword [esp + 0x14], edx
mov eax, edx
mov dword [esp + 0x1c], edx
cmp edx, 0xc0
jb 0x4a0665
movzx eax, byte [ecx]
and eax, 0x3f
test dl, 0x20
jne 0x4a0570
and edx, 0x1f
shl edx, 6
or edx, eax
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov ecx, edx
mov edi, edx
mov dword [esp + 0x1c], edx
mov eax, edx
jmp 0x4a0669
test dl, 0x10
jne 0x4a059e
and edx, 0xf
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [ecx + 2]
mov dword [esi + 8], eax
mov ecx, edx
mov edi, edx
mov dword [esp + 0x1c], edx
mov eax, edx
jmp 0x4a0669
test dl, 8
jne 0x4a05d8
and edx, 7
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [ecx + 3]
mov dword [esi + 8], eax
mov ecx, edx
mov edi, edx
mov dword [esp + 0x1c], edx
mov eax, edx
jmp 0x4a0669
test dl, 4
jne 0x4a061b
and edx, 3
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [ecx + 4]
mov dword [esi + 8], eax
mov ecx, edx
mov edi, edx
mov dword [esp + 0x1c], edx
mov eax, edx
jmp 0x4a0669
and edx, 1
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [ecx + 5]
mov dword [esi + 8], eax
mov ecx, edx
mov edi, edx
mov dword [esp + 0x1c], edx
mov eax, edx
jmp 0x4a0669
mov ecx, dword [esp + 0x14]
cmp dword [esi + 0x9c], 0x1f
jne 0x4a067f
cmp ebx, eax
jne 0x49bf83
jmp case.default.0x4a7d1c
cmp ebx, 0x7f
jbe 0x4a06bd
mov eax, ebx
test eax, eax
jns 0x4a068d
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x55a200]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x4a06a8
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x55c400]
mov eax, dword [eax*8 + 0x558b84]
add eax, ebx
jmp 0x4a06ca
mov eax, dword [ebp + 0x3c]
mov edx, ecx
mov edi, dword [esp + 0x1c]
movzx eax, byte [eax + ebx]
cmp ebx, edx
je case.default.0x4a7d1c
cmp eax, edi
jne 0x49bf83
jmp case.default.0x4a7d1c
movzx edx, byte [eax + 1]
lea eax, [ecx + 1]
movzx edi, byte [ecx]
mov dword [esi + 8], eax
cmp edx, edi
je case.0x4a69ef.14
cmp dword [esi + 0x9c], 0x20
jne 0x49fcb7
mov eax, dword [ebp + 0x3c]
movzx eax, byte [eax + edx]
cmp eax, edi
je case.0x4a69ef.14
add dword [esi + 0xc], 2
jmp 0x49bf83
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x90], ecx
add dword [esi + 0xc], 3
jmp 0x4a0861
mov dword [esi + 0x90], ebx
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
mov ecx, dword [esi + 0xc]
mov al, byte [ecx]
cmp al, 0x42
je 0x4a0778
cmp al, 0x4f
je 0x4a0778
xor ebx, ebx
lea eax, [ecx + 3]
mov dword [esp + 0x20], ebx
mov dword [esi + 0xc], eax
jmp 0x4a0861
mov ebx, 1
lea eax, [ecx + 3]
mov dword [esp + 0x20], ebx
mov dword [esi + 0xc], eax
jmp 0x4a0861
mov dword [esi + 0x90], ebx
mov dword [esi + 0x8c], closesocket
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x4a0861
mov dword [esi + 0x90], 1
mov dword [esi + 0x8c], closesocket
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x4a0861
mov dword [esi + 0x90], ebx
mov dword [esi + 0x8c], 1
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x4a0861
mov dword [esi + 0x90], ebx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x24], 1
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
add dword [esi + 0xc], 3
jmp 0x4a0861
mov edx, dword [esi + 0xc]
cmp cl, 0x48
sbb eax, eax
and eax, 0xfffffff3
movzx ebx, byte [edx]
add eax, 0x48
sub ebx, eax
lea eax, [edx + 1]
mov ecx, ebx
mov dword [esi + 0xc], eax
and ebx, 1
mov dword [esp + 0x20], ebx
movsx eax, byte [ecx + 0x551278]
mov dword [esi + 0x90], eax
movsx eax, byte [ecx + 0x551284]
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x4a0861
mov dword [esi + 0x8c], closesocket
mov eax, dword [esi + 0xc]
movzx eax, byte [eax]
mov dword [esi + 0x80], eax
mov edx, dword [esi + 0xc]
mov eax, dword [esp + 0x28]
inc edx
mov dword [esi + 0xc], edx
test eax, eax
je 0x4a0992
mov ecx, dword [esi + 0x80]
cmp ecx, 0xc0
jb 0x4a0992
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x4a08b3
and ecx, 0x1f
shl ecx, 6
or ecx, eax
mov dword [esi + 0x80], ecx
inc dword [esi + 0xc]
jmp 0x4a098e
test cl, 0x10
jne 0x4a08db
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov dword [esi + 0x80], ecx
add dword [esi + 0xc], 2
jmp 0x4a098e
test cl, 8
jne 0x4a090f
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov dword [esi + 0x80], ecx
add dword [esi + 0xc], 3
jmp 0x4a098e
test cl, 4
jne 0x4a094c
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov dword [esi + 0x80], ecx
add dword [esi + 0xc], 4
jmp 0x4a098e
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov dword [esi + 0x80], ecx
add dword [esi + 0xc], 5
mov eax, dword [esp + 0x28]
cmp dword [esi + 0x9c], 0x48
jb 0x4a0d71
test eax, eax
je 0x4a09f2
mov edx, dword [esi + 0x80]
cmp edx, 0x7f
jbe 0x4a09f2
mov eax, edx
test eax, eax
jns 0x4a09b7
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x55a200]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x4a09d2
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
mov edi, 1
movzx eax, word [ecx*2 + 0x55c400]
mov eax, dword [eax*8 + 0x558b84]
add eax, edx
mov dword [esi + 0x94], eax
jmp 0x4a0a15
cmp dword [esp + 0x28], 0
mov edi, 1
mov ecx, dword [esi + 0x80]
mov eax, dword [ebp + 0x3c]
movzx eax, byte [ecx + eax]
mov dword [esi + 0x94], eax
je 0x4a0b48
cmp dword [esi + 0x90], 1
jl 0x4a0b84
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x49d5a5
movzx ecx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 8], edx
mov eax, ecx
cmp ecx, 0xc0
jb 0x4a0b21
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x4a0a60
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x4a0b1c
test cl, 0x10
jne 0x4a0a81
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x4a0b1c
test cl, 8
jne 0x4a0aab
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4a0b1c
test cl, 4
jne 0x4a0ae1
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4a0b1c
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ecx
cmp dword [esi + 0x80], ecx
je case.default.0x4a7d1c
cmp dword [esi + 0x94], eax
je case.default.0x4a7d1c
inc edi
cmp edi, dword [esi + 0x90]
jle 0x4a0a22
jmp 0x4a0b84
cmp dword [esi + 0x90], edi
jl 0x4a0b84
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x49d5a5
movzx ecx, byte [eax]
cmp dword [esi + 0x80], ecx
je case.default.0x4a7d1c
cmp dword [esi + 0x94], ecx
je case.default.0x4a7d1c
inc eax
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x4a0b50
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x8c]
je 0x49bf83
test ebx, ebx
je 0x4a0bb0
cmp dword [esp + 0x28], 0
mov dword [esi + 0x84], eax
jne 0x4a7850
jmp 0x4a6793
mov ebx, dword [esp + 0x28]
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
test ebx, ebx
je 0x4a0d07
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x4a0cf7
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x4a0cd5
movzx edx, byte [edi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x4a0cb0
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a0c14
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x4a0cac
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x4a0c2f
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x4a0ca6
and eax, 0x3f
test dl, 8
jne 0x4a0c4f
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a0ca6
test dl, 4
jne 0x4a0c78
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a0ca6
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
cmp dword [esi + 0x80], edx
je 0x4a0cf7
cmp dword [esi + 0x94], eax
je 0x4a0cf7
lea eax, [ecx + edi]
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x4a0bd4
jmp 0x4a0cf7
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x4a0cf7
cmp edi, dword [ebp + 0x84]
jbe 0x4a0cf7
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x49cfa7
cmp dword [esp + 0x24], 0
jne 0x49bf83
jmp 0x4a78ac
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge 0x4a0d61
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x4a0d3f
movzx ecx, byte [eax]
cmp dword [esi + 0x80], ecx
je 0x4a0d61
cmp dword [esi + 0x94], ecx
je 0x4a0d61
inc eax
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x4a0d15
jmp 0x4a0d61
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je 0x4a0d61
cmp eax, dword [ebp + 0x84]
jbe 0x4a0d61
mov dword [ebp + 0x64], 1
cmp ecx, 1
jg 0x4a9605
cmp dword [esp + 0x24], 0
jne 0x49bf83
jmp 0x4a67d6
mov ebx, dword [esp + 0x28]
mov edi, 1
mov dword [esp + 0x14], edi
test ebx, ebx
je 0x4a0ec9
cmp dword [esi + 0x90], edi
jl 0x4a0eff
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x49d5a5
movzx ebx, byte [eax]
inc eax
mov dword [esp + 0x1c], ebx
mov dword [esi + 8], eax
cmp ebx, 0xc0
jb 0x4a0eaa
mov cl, byte [eax]
test bl, 0x20
jne 0x4a0dcb
inc eax
and ebx, 0x1f
mov dword [esi + 8], eax
movzx eax, cl
jmp 0x4a0ea2
mov dl, byte [eax + 1]
test bl, 0x10
jne 0x4a0def
add eax, 2
movzx ecx, cl
and ebx, 0xf
mov dword [esi + 8], eax
and ecx, 0x3f
shl ebx, 6
or ebx, ecx
movzx eax, dl
jmp 0x4a0ea2
test bl, 8
jne 0x4a0e2a
mov bl, byte [eax + 2]
add eax, 3
mov dword [esi + 8], eax
mov eax, dword [esp + 0x1c]
movzx ecx, cl
and eax, 7
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx ebx, bl
shl ecx, 6
and ebx, 0x3f
movzx eax, dl
and eax, 0x3f
or ecx, eax
shl ecx, 6
or ebx, ecx
jmp 0x4a0eaa
mov ch, byte [eax + 3]
movzx edi, cl
and edi, 0x3f
test bl, 4
mov bl, byte [eax + 2]
movzx ebx, bl
jne 0x4a0e68
add eax, 4
and ebx, 0x3f
mov dword [esi + 8], eax
mov eax, dword [esp + 0x1c]
and eax, 3
shl eax, 6
or edi, eax
movzx eax, dl
shl edi, 6
and eax, 0x3f
or edi, eax
movzx eax, ch
shl edi, 6
or ebx, edi
jmp 0x4a0e9e
mov dh, byte [eax + 4]
and ebx, 0x3f
add eax, 5
mov dword [esi + 8], eax
mov eax, dword [esp + 0x1c]
and eax, 1
shl eax, 6
or edi, eax
movzx eax, dl
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, ch
shl edi, 6
and eax, 0x3f
or ebx, edi
shl ebx, 6
or ebx, eax
movzx eax, dh
mov edi, dword [esp + 0x14]
and eax, 0x3f
shl ebx, 6
or ebx, eax
cmp dword [esi + 0x80], ebx
je case.default.0x4a7d1c
inc edi
mov dword [esp + 0x14], edi
cmp edi, dword [esi + 0x90]
jle 0x4a0d92
jmp 0x4a0efb
cmp dword [esi + 0x90], edi
jl 0x4a0eff
mov ebx, dword [esi + 8]
cmp ebx, dword [ebp + 0x78]
jae 0x4a038d
movzx edx, byte [ebx]
lea eax, [ebx + 1]
mov dword [esi + 8], eax
cmp dword [esi + 0x80], edx
je case.default.0x4a7d1c
inc edi
cmp edi, dword [esi + 0x90]
jle 0x4a0ed1
mov ebx, dword [esp + 0x28]
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x8c]
je 0x49bf83
cmp dword [esp + 0x20], 0
je 0x4a0f2b
mov dword [esi + 0x84], eax
test ebx, ebx
jne 0x4a7a4b
jmp 0x4a685b
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
test ebx, ebx
je 0x4a107e
mov ecx, dword [esi + 0x90]
mov dword [esp + 0x14], ecx
cmp ecx, dword [esi + 0x8c]
jge 0x4a106e
nop
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x4a104c
movzx edx, byte [edi]
mov ebx, 1
cmp edx, 0xc0
jb 0x4a102b
test dl, 0x20
jne 0x4a0f86
movzx eax, byte [edi + 1]
mov ebx, 2
and edx, 0x1f
jmp 0x4a1023
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x4a0fa8
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x4a101f
and eax, 0x3f
test dl, 8
jne 0x4a0fc8
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a101f
test dl, 4
jne 0x4a0ff1
and edx, 3
mov ebx, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a101f
and edx, 1
mov ebx, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
mov ecx, dword [esp + 0x14]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp dword [esi + 0x80], edx
je 0x4a106e
lea eax, [ebx + edi]
inc ecx
mov dword [esi + 8], eax
mov dword [esp + 0x14], ecx
cmp ecx, dword [esi + 0x8c]
jl 0x4a0f50
jmp 0x4a106e
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x4a106e
cmp edi, dword [ebp + 0x84]
jbe 0x4a106e
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x49cfa7
cmp dword [esp + 0x24], 0
jne 0x49bf83
jmp 0x4a7aac
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge 0x4a10d6
lea esp, [esp]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x4a10b4
movzx eax, byte [ecx]
cmp dword [esi + 0x80], eax
je 0x4a10d6
lea eax, [ecx + 1]
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x4a1090
jmp 0x4a10d6
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x4a10d6
cmp ecx, dword [ebp + 0x84]
jbe 0x4a10d6
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4a9605
cmp dword [esp + 0x24], 0
jne 0x49bf83
jmp 0x4a689e
mov eax, dword [esi + 0xc]
mov dword [esp + 0x20], 1
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x90], ecx
add dword [esi + 0xc], 3
jmp 0x4a1217
mov dword [esi + 0x90], ebx
xor edx, edx
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x5c
sete dl
add eax, 3
mov dword [esp + 0x20], edx
mov dword [esi + 0xc], eax
jmp 0x4a1217
mov dword [esi + 0x90], ebx
mov dword [esi + 0x8c], closesocket
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x4a1217
mov dword [esi + 0x90], 1
mov dword [esi + 0x8c], closesocket
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x4a1217
mov dword [esi + 0x90], ebx
mov dword [esi + 0x8c], 1
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x4a1217
mov dword [esi + 0x90], ebx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x24], 1
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
add dword [esi + 0xc], 3
jmp 0x4a1217
mov ecx, dword [esi + 0xc]
movzx ebx, byte [ecx]
lea eax, [ecx + 1]
add ebx, 0xffffffab
mov dword [esi + 0xc], eax
mov edx, ebx
and ebx, 1
mov dword [esp + 0x20], ebx
movsx eax, byte [edx + 0x551278]
mov dword [esi + 0x90], eax
movsx eax, byte [edx + 0x551284]
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x4a1217
mov dword [esi + 0x8c], closesocket
mov eax, dword [esi + 0xc]
movzx eax, byte [eax]
mov dword [esi + 0x7c], eax
inc dword [esi + 0xc]
mov ecx, dword [esi + 0x7c]
cmp ecx, 0x10
je 0x4a1239
cmp ecx, 0xf
je 0x4a1239
mov dword [esi + 0x60], 0xffffffff
jmp 0x4a125d
xor eax, eax
cmp ecx, 0xf
sete al
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0xc]
movzx eax, byte [eax]
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
movzx eax, byte [eax]
mov dword [esi + 0x64], eax
inc dword [esi + 0xc]
mov ecx, dword [esi + 0x90]
test ecx, ecx
jle 0x4a146a
mov eax, dword [esi + 0x60]
test eax, eax
js 0x4a2164
cmp eax, 0xa
ja case.0x4a7c9a.15
jmp dword [eax*4 + 0x4a9cdc]
cmp dword [esi + 0x68], 0
jne case.default.0x4a7d1c
mov ebx, dword [esp + 0x28]
mov edi, 1
cmp ecx, edi
jl 0x4a146e
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x4a6906
movzx edx, byte [ecx]
lea eax, [ecx + 1]
mov dword [esi + 8], eax
test ebx, ebx
je 0x4a12ee
cmp edx, 0xc0
jb 0x4a12ee
test dl, 0x20
jne 0x4a12cc
lea eax, [ecx + 2]
jmp 0x4a12eb
test dl, 0x10
jne 0x4a12d6
lea eax, [ecx + 3]
jmp 0x4a12eb
test dl, 8
jne 0x4a12e0
lea eax, [ecx + 4]
jmp 0x4a12eb
lea eax, [ecx + 5]
test dl, 4
je 0x4a12eb
lea eax, [ecx + 6]
mov dword [esi + 8], eax
inc edi
cmp edi, dword [esi + 0x90]
jle 0x4a12a1
jmp 0x4a146e
mov ebx, 1
cmp ecx, ebx
jl 0x4a146a
lea esp, [esp]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x49d537
cmp dword [esp + 0x28], 0
lea edx, [ecx + 1]
movzx eax, byte [ecx]
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
je 0x4a141a
cmp eax, 0xc0
jb 0x4a141a
movzx ecx, byte [edx]
and ecx, 0x3f
test al, 0x20
jne 0x4a1359
and eax, 0x1f
shl eax, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x4a1415
test al, 0x10
jne 0x4a1379
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x4a1415
test al, 8
jne 0x4a13a5
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4a1415
test al, 4
jne 0x4a13da
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4a1415
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
cmp eax, 9
je 0x4a144f
cmp eax, 5
je 0x4a144f
cmp eax, 8
je 0x4a144f
xor eax, eax
jmp 0x4a1454
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.default.0x4a7d1c
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x4a1310
mov ebx, dword [esp + 0x28]
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x8c]
je 0x49bf83
cmp dword [esp + 0x20], 0
je 0x4a34db
mov ecx, dword [esi + 0x60]
test ecx, ecx
js 0x4a34be
cmp ecx, 0xa
ja case.0x4a7c9a.15
jmp dword [ecx*4 + 0x4a9d08]
mov ebx, 1
cmp ecx, ebx
jl 0x4a146a
nop
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x49d537
cmp dword [esp + 0x28], 0
lea edx, [ecx + 1]
movzx eax, byte [ecx]
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
je 0x4a15cf
cmp eax, 0xc0
jb 0x4a15cf
test al, 0x20
jne 0x4a14f9
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x4a15ca
test al, 0x10
jne 0x4a151f
movzx eax, byte [edx]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x4a15ca
test al, 8
jne 0x4a1551
movzx eax, byte [edx]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4a15ca
test al, 4
movzx eax, byte [edx]
jne 0x4a158c
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4a15ca
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
mov eax, dword [eax*4 + 0x558550]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je case.default.0x4a7d1c
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x4a14b0
jmp 0x4a146a
mov ebx, 1
cmp ecx, ebx
jl 0x4a146a
jmp 0x4a1630
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x49d537
cmp dword [esp + 0x28], 0
lea edx, [ecx + 1]
movzx eax, byte [ecx]
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
je 0x4a174f
cmp eax, 0xc0
jb 0x4a174f
test al, 0x20
jne 0x4a1679
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x4a174a
test al, 0x10
jne 0x4a169f
movzx eax, byte [edx]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x4a174a
test al, 8
jne 0x4a16d1
movzx eax, byte [edx]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4a174a
test al, 4
movzx eax, byte [edx]
jne 0x4a170c
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4a174a
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je case.default.0x4a7d1c
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x4a1630
jmp 0x4a146a
mov ebx, 1
cmp ecx, ebx
jl 0x4a146a
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x49d537
cmp dword [esp + 0x28], 0
lea edx, [ecx + 1]
movzx eax, byte [ecx]
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
je 0x4a18c0
cmp eax, 0xc0
jb 0x4a18c0
test al, 0x20
jne 0x4a17ea
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x4a18bb
test al, 0x10
jne 0x4a1810
movzx eax, byte [edx]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x4a18bb
test al, 8
jne 0x4a1842
movzx eax, byte [edx]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4a18bb
test al, 4
movzx eax, byte [edx]
jne 0x4a187d
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4a18bb
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b80]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je case.default.0x4a7d1c
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x4a17a1
jmp 0x4a146a
mov ebx, 1
cmp ecx, ebx
jl 0x4a146a
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x49d537
cmp dword [esp + 0x28], 0
lea edx, [ecx + 1]
movzx eax, byte [ecx]
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
je 0x4a1a31
cmp eax, 0xc0
jb 0x4a1a31
test al, 0x20
jne 0x4a195b
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x4a1a2c
test al, 0x10
jne 0x4a1981
movzx eax, byte [edx]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x4a1a2c
test al, 8
jne 0x4a19b3
movzx eax, byte [edx]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4a1a2c
test al, 4
movzx eax, byte [edx]
jne 0x4a19ee
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4a1a2c
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
mov eax, dword [eax*4 + 0x558550]
cmp eax, 1
je 0x4a1a68
cmp eax, 3
je 0x4a1a68
xor eax, eax
jmp 0x4a1a6d
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.default.0x4a7d1c
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x4a1912
jmp 0x4a146a
mov dword [esp + 0x14], 1
cmp ecx, 1
jl 0x4a146a
lea esp, [esp]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x49d5a5
cmp dword [esp + 0x28], 0
lea edx, [eax + 1]
movzx ecx, byte [eax]
mov dword [esi + 8], edx
mov eax, ecx
mov dword [esp + 0x1c], ecx
mov edi, ecx
mov ebx, ecx
mov dword [esp + 0x18], ecx
je 0x4a1bca
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], ecx
cmp ecx, 0xc0
jb 0x4a1bca
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x4a1afd
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x4a1bb9
test cl, 0x10
jne 0x4a1b1e
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x4a1bb9
test cl, 8
jne 0x4a1b48
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4a1bb9
test cl, 4
jne 0x4a1b7e
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4a1bb9
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
mov dword [esp + 0x1c], ecx
mov eax, ecx
mov ebx, ecx
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x1c], 0x20
mov edx, ecx
ja 0x4a1beb
cmp eax, 0x20
je case.0x4a1cc0.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x4a1cc0.8203
jmp dword [eax*4 + 0x4a9d34]
cmp edx, 0x2000
ja 0x4a1c98
cmp edi, 0x2000
je case.0x4a1cc0.8193
cmp ecx, 0x1680
ja 0x4a1c90
je case.0x4a1cc0.8193
mov eax, ecx
sub eax, 0x85
je case.0x4a1cc0.8193
sub eax, 0x1b
je case.0x4a1cc0.8193
mov eax, ecx
test eax, eax
jns 0x4a1c34
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x55a200]
shl eax, 7
and ecx, 0x8000007f
jns 0x4a1c4e
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
cmp dword [eax*4 + 0x558550], 6
sete cl
cmp ecx, dword [esi + 0x68]
je case.default.0x4a7d1c
mov edx, dword [esp + 0x14]
inc edx
mov dword [esp + 0x14], edx
cmp edx, dword [esi + 0x90]
jle 0x4a1aa0
jmp 0x4a146a
cmp ecx, 0x180e
jmp 0x4a1c25
cmp ebx, 0x3000
ja case.0x4a1cc0.8203
cmp dword [esp + 0x18], 0x3000
je case.0x4a1cc0.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x4a1cc0.8203
movzx eax, byte [eax + 0x4a9d50]
jmp dword [eax*4 + 0x4a9d48]
cmp dword [esi + 0x68], 0
jne case.default.0x4a7d1c
jmp 0x4a1c76
mov dword [esp + 0x18], 1
cmp ecx, 1
jl 0x4a146a
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x49d537
cmp dword [esp + 0x28], 0
lea edx, [ecx + 1]
movzx eax, byte [ecx]
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
mov ebx, eax
je 0x4a1def
cmp eax, 0xc0
jb 0x4a1def
movzx ecx, byte [edx]
and ecx, 0x3f
test al, 0x20
jne 0x4a1d2f
and eax, 0x1f
shl eax, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x4a1de8
test al, 0x10
jne 0x4a1d4f
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x4a1de8
test al, 8
jne 0x4a1d78
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4a1de8
test al, 4
jne 0x4a1dad
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4a1de8
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
mov ebx, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
mov eax, dword [eax*4 + 0x558550]
cmp eax, 1
je 0x4a1e2b
cmp eax, 3
je 0x4a1e2b
cmp ebx, 0x5f
je 0x4a1e2b
xor eax, eax
jmp 0x4a1e30
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.default.0x4a7d1c
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esi + 0x90]
jle 0x4a1ce4
jmp 0x4a146a
mov ebx, 1
cmp ecx, ebx
jl 0x4a146a
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x49d5a5
cmp dword [esp + 0x28], 0
lea edi, [eax + 1]
movzx edx, byte [eax]
mov dword [esi + 8], edi
mov ecx, edx
je 0x4a1f59
cmp edx, 0xc0
jb 0x4a1f59
movzx ecx, byte [edi]
and ecx, 0x3f
test dl, 0x20
jne 0x4a1ead
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x4a1f54
movzx eax, byte [edi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x4a1ece
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x4a1f54
test dl, 8
jne 0x4a1ef1
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x4a1f54
test dl, 4
jne 0x4a1f20
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
jmp 0x4a1f54
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov ecx, edx
mov eax, dword [esi + 0x64]
cmp ecx, dword [eax*4 + 0x558a40]
lea eax, [eax*4 + 0x558a40]
jb 0x4a1f7d
mov ecx, dword [eax]
mov edi, edi
lea eax, [eax + 4]
cmp edx, ecx
je 0x4a1f99
mov ecx, dword [eax]
cmp edx, ecx
jae 0x4a1f70
cmp dword [esi + 0x68], 0
je case.default.0x4a7d1c
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x4a1e60
jmp 0x4a146a
cmp dword [esi + 0x68], 0
jne case.default.0x4a7d1c
jmp 0x4a1f87
mov dword [esp + 0x18], 1
cmp ecx, 1
jl 0x4a146a
jmp 0x4a1fc0
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x49d5a5
cmp dword [esp + 0x28], 0
lea edi, [eax + 1]
movzx ecx, byte [eax]
mov dword [esi + 8], edi
mov edx, ecx
mov eax, ecx
mov dword [esp + 0x14], ecx
mov ebx, ecx
je 0x4a210d
mov dword [esp + 0x14], ecx
cmp ecx, 0xc0
jb 0x4a210d
movzx eax, byte [edi]
and eax, 0x3f
test cl, 0x20
jne 0x4a2020
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edi + 1]
mov edx, ecx
mov dword [esi + 8], eax
mov eax, edx
mov ebx, edx
mov edi, edx
jmp 0x4a2111
test cl, 0x10
jne 0x4a204c
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edi + 2]
mov edx, ecx
mov dword [esi + 8], eax
mov eax, edx
mov ebx, edx
mov edi, edx
jmp 0x4a2111
test cl, 8
jne 0x4a2084
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edi + 3]
mov edx, ecx
mov dword [esi + 8], eax
mov eax, edx
mov ebx, edx
mov edi, edx
jmp 0x4a2111
test cl, 4
jne 0x4a20c5
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edi + 4]
mov edx, ecx
mov dword [esi + 8], eax
mov eax, edx
mov ebx, edx
mov edi, edx
jmp 0x4a2111
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edi + 5]
mov edx, ecx
mov dword [esi + 8], eax
mov eax, edx
mov ebx, edx
mov edi, edx
jmp 0x4a2111
mov edi, dword [esp + 0x14]
cmp edx, 0x24
je 0x4a213c
cmp eax, 0x40
je 0x4a213c
cmp ebx, 0x60
je 0x4a213c
cmp edi, 0xa0
jb 0x4a2130
cmp ecx, 0xd7ff
jbe 0x4a213c
cmp ecx, 0xe000
jae 0x4a213c
xor eax, eax
jmp 0x4a2141
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.default.0x4a7d1c
mov edx, dword [esp + 0x18]
inc edx
mov dword [esp + 0x18], edx
cmp edx, dword [esi + 0x90]
jle 0x4a1fc0
jmp 0x4a146a
mov eax, dword [esi + 0x7c]
cmp eax, 0x16
jne 0x4a245b
mov dword [esp + 0x18], 1
cmp ecx, 1
jl 0x4a146a
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x49d537
cmp dword [esp + 0x28], 0
lea edi, [ecx + 1]
movzx eax, byte [ecx]
mov edx, edi
mov dword [esi + 8], edi
mov ecx, eax
mov ebx, eax
mov dword [esp + 0x14], edi
je 0x4a228c
mov dword [esp + 0x14], edi
cmp eax, 0xc0
jb 0x4a228c
test al, 0x20
jne 0x4a21cc
movzx eax, byte [edi]
lea edx, [edi + 1]
and ecx, 0x1f
jmp 0x4a227b
test al, 0x10
jne 0x4a21ec
mov ecx, eax
lea edx, [edi + 2]
movzx eax, byte [edi]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
jmp 0x4a227b
test al, 8
jne 0x4a2215
mov ecx, eax
lea edx, [edi + 3]
movzx eax, byte [edi]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
jmp 0x4a227b
movzx ecx, byte [edi]
and ecx, 0x3f
test al, 4
jne 0x4a2248
and eax, 3
lea edx, [edi + 4]
shl eax, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
jmp 0x4a227b
and eax, 1
lea edx, [edi + 5]
shl eax, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov dword [esi + 8], edx
mov ebx, ecx
mov dword [esp + 0x14], edx
shr ecx, 7
and ebx, 0x7f
movzx eax, byte [ecx + 0x55a200]
mov ecx, edx
shl eax, 7
add eax, ebx
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b82]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x78]
cmp dword [esp + 0x14], eax
jae 0x4a241b
mov edi, edx
mov dword [esp + 0x14], eax
jmp 0x4a22d0
cmp dword [esp + 0x28], 0
mov ebx, 1
movzx edx, byte [edi]
mov ecx, edx
je 0x4a23a9
cmp edx, 0xc0
jb 0x4a23a9
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a2311
mov eax, edx
mov ebx, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x4a23a5
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x4a2329
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x4a239f
and eax, 0x3f
test dl, 8
jne 0x4a2349
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a239f
test dl, 4
jne 0x4a2372
and edx, 3
mov ebx, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a239f
and edx, ebx
mov ebx, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov ebp, dword [esp + 0x1c]
and ecx, 0x7f
shr edx, 7
mov dword [esp + 0x10], edi
movzx eax, byte [edx + 0x55a200]
mov edx, edi
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x55c400]
movzx ecx, byte [eax*8 + 0x558b82]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, 1
shl eax, cl
test dword [ebp*4 + 0x5585c8], eax
mov ebp, dword [esp + 0xb0]
je 0x4a2413
lea edx, [ebx + edi]
mov dword [esp + 0x1c], ecx
mov dword [esi + 8], edx
mov edi, edx
mov eax, dword [ebp + 0x78]
mov ecx, edx
mov dword [esp + 0x14], eax
cmp edx, eax
jb 0x4a22d0
jmp 0x4a241b
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edi, dword [ebp + 0x88]
test edi, edi
je 0x4a2441
cmp edx, eax
jb 0x4a2441
cmp ecx, dword [ebp + 0x84]
jbe 0x4a2441
mov dword [ebp + 0x64], 1
cmp edi, 1
jg 0x4a7690
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esi + 0x90]
jle 0x4a2181
jmp 0x4a146a
mov ebx, dword [esp + 0x28]
add eax, 0xfffffffa
test ebx, ebx
je 0x4a3020
cmp eax, 0xf
ja case.0x4a7c9a.15
jmp dword [eax*4 + 0x4a9db0]
mov ebx, 1
cmp ecx, ebx
jl 0x4a146a
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x78]
cmp ecx, edx
jae 0x49d537
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x4a24c9
push dword [esp + 0x28]
lea eax, [ebp + 0x1c]
push eax
push edx
push edi
push ecx
call fcn.00506fd0
mov ecx, dword [ebp + 0x18]
add esp, 0x14
test eax, eax
je 0x4a24bd
mov eax, 1
jmp 0x4a24bf
xor eax, eax
test eax, eax
jne case.default.0x4a7d1c
jmp 0x4a24f0
mov edi, dword [ebp + 0x1c]
sub edx, edi
cmp ecx, edx
ja 0x4a24ee
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x4a24ee
cmp edi, 1
je case.default.0x4a7d1c
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je case.default.0x4a7d1c
xor ecx, ecx
mov edi, dword [ebp + 0x88]
test edi, edi
je 0x4a2526
mov edx, dword [esi + 8]
lea eax, [edx + 1]
cmp eax, dword [ebp + 0x78]
jb 0x4a2526
test ecx, ecx
jne 0x4a2526
cmp dword [ebp + 0x1c], 2
jne 0x4a2526
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne 0x4a2526
mov dword [ebp + 0x64], 1
cmp edi, 1
jg 0x4a7690
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x4a2542
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x4a2542
inc ecx
mov dword [esi + 8], ecx
cmp ecx, dword [ebp + 0x78]
jb 0x4a2531
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x4a2487
jmp 0x4a146a
mov edi, 1
cmp ecx, edi
jl 0x4a146e
mov edx, dword [ebp + 0x78]
mov eax, dword [esi + 8]
cmp eax, edx
jae 0x4a64ae
inc eax
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jae 0x4a2598
lea ebx, [ebx]
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x4a2598
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jb 0x4a2580
inc edi
cmp edi, dword [esi + 0x90]
jle 0x4a2564
jmp 0x4a146e
mov eax, dword [ebp + 0x78]
mov edx, dword [esi + 8]
sub eax, ecx
cmp edx, eax
ja case.0x4a69ef.14
lea eax, [ecx + edx]
mov dword [esi + 8], eax
jmp 0x4a146e
mov dword [esp + 0x10], 1
cmp ecx, 1
jl 0x4a146e
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x49d5a5
movzx ecx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 8], edx
mov edi, ecx
mov eax, ecx
mov ebx, edx
cmp ecx, 0xc0
jb 0x4a26d7
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x4a2612
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc edx
jmp 0x4a26ce
test cl, 0x10
jne 0x4a2633
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add edx, 2
jmp 0x4a26ce
test cl, 8
jne 0x4a265d
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add edx, 3
jmp 0x4a26ce
test cl, 4
jne 0x4a2693
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add edx, 4
jmp 0x4a26ce
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add edx, 5
mov dword [esi + 8], edx
mov edi, ecx
mov eax, ecx
mov ebx, edx
cmp edi, 0x85
ja 0x4a270b
cmp eax, 0x85
je case.0x4a26f2.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4a7d1c
jmp dword [ecx*4 + 0x4a9df0]
cmp ebx, dword [ebp + 0x78]
jae case.0x4a26f2.10
cmp byte [edx], 0xa
jne case.0x4a26f2.10
lea eax, [edx + 1]
mov dword [esi + 8], eax
jmp case.0x4a26f2.10
sub ecx, 0x2028
je case.0x4a26f2.11
sub ecx, 1
jne case.default.0x4a7d1c
cmp dword [ebp + 0x68], 0
jne case.default.0x4a7d1c
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
cmp edx, dword [esi + 0x90]
jle 0x4a25d2
jmp 0x4a146a
mov dword [esp + 0x10], 1
cmp ecx, 1
jl 0x4a146e
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x49d5a5
movzx ecx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 8], edx
mov ebx, ecx
mov dword [esp + 0x18], ecx
mov eax, ecx
mov edi, ecx
cmp ecx, 0xc0
jb 0x4a2860
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x4a2797
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x4a2853
test cl, 0x10
jne 0x4a27b8
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x4a2853
test cl, 8
jne 0x4a27e2
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4a2853
test cl, 4
jne 0x4a2818
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4a2853
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov ebx, ecx
mov dword [esp + 0x18], ecx
mov eax, ecx
mov edi, ecx
cmp dword [esp + 0x18], 0x2000
mov edx, ecx
ja 0x4a28cc
cmp edx, 0x2000
je case.default.0x4a7d1c
cmp ecx, 0xa0
ja 0x4a28b2
je case.default.0x4a7d1c
cmp ecx, 9
je case.default.0x4a7d1c
cmp ecx, 0x20
je case.default.0x4a7d1c
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
cmp edx, dword [esi + 0x90]
jle 0x4a2751
jmp 0x4a146a
cmp ebx, 0x1680
je case.default.0x4a7d1c
cmp ecx, 0x180e
je case.default.0x4a7d1c
jmp case.0x4a28f1.8203
cmp eax, 0x3000
ja case.0x4a28f1.8203
cmp edi, 0x3000
je case.default.0x4a7d1c
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4a28f1.8203
movzx eax, byte [ecx + 0x4a9e08]
jmp dword [eax*4 + 0x4a9e00]
mov dword [esp + 0x10], 1
cmp ecx, 1
jl 0x4a146e
lea esp, [esp]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x49d5a5
movzx ecx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 8], edx
mov ebx, ecx
mov dword [esp + 0x18], ecx
mov eax, ecx
mov edi, ecx
cmp ecx, 0xc0
jb 0x4a2a1f
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x4a2956
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x4a2a12
test cl, 0x10
jne 0x4a2977
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x4a2a12
test cl, 8
jne 0x4a29a1
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4a2a12
test cl, 4
jne 0x4a29d7
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4a2a12
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov ebx, ecx
mov dword [esp + 0x18], ecx
mov eax, ecx
mov edi, ecx
cmp dword [esp + 0x18], 0x2000
mov edx, ecx
ja 0x4a2a7b
cmp edx, 0x2000
je case.0x4a2aa4.8193
cmp ecx, 0xa0
ja 0x4a2a65
je case.0x4a2aa4.8193
cmp ecx, 9
je case.0x4a2aa4.8193
cmp ecx, 0x20
jne case.default.0x4a7d1c
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
cmp edx, dword [esi + 0x90]
jle 0x4a2910
jmp 0x4a146a
cmp ebx, 0x1680
je case.0x4a2aa4.8193
cmp ecx, 0x180e
jne case.default.0x4a7d1c
jmp case.0x4a2aa4.8193
cmp eax, 0x3000
ja case.default.0x4a7d1c
cmp edi, 0x3000
je case.0x4a2aa4.8193
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x4a7d1c
movzx eax, byte [ecx + 0x4a9e70]
jmp dword [eax*4 + 0x4a9e68]
mov ebx, 1
cmp ecx, ebx
jl 0x4a146a
jmp 0x4a2ac0
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x49d5a5
movzx ecx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 8], edx
mov eax, ecx
mov edi, ecx
cmp ecx, 0xc0
jb 0x4a2bc3
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x4a2b00
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x4a2bbc
test cl, 0x10
jne 0x4a2b21
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x4a2bbc
test cl, 8
jne 0x4a2b4b
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4a2bbc
test cl, 4
jne 0x4a2b81
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4a2bbc
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
mov eax, ecx
cmp eax, 0x85
ja 0x4a2be5
cmp edi, 0x85
je case.default.0x4a7d1c
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4a2bde
jmp dword [ecx*4 + 0x4a9ed0]
sub ecx, 0x2028
je case.default.0x4a7d1c
sub ecx, 1
je case.default.0x4a7d1c
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x4a2ac0
jmp 0x4a146a
mov ebx, 1
cmp ecx, ebx
jl 0x4a146a
lea esp, [esp]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x49d5a5
movzx edx, byte [eax]
lea edi, [eax + 1]
mov dword [esi + 8], edi
mov eax, edx
mov ecx, edx
cmp edx, 0xc0
jb 0x4a2d10
movzx ecx, byte [edi]
and ecx, 0x3f
test dl, 0x20
jne 0x4a2c62
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x4a2d09
movzx eax, byte [edi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x4a2c83
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x4a2d09
test dl, 8
jne 0x4a2ca6
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x4a2d09
test dl, 4
jne 0x4a2cd5
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
jmp 0x4a2d09
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov ecx, edx
mov eax, edx
cmp eax, 0x85
ja 0x4a2d32
cmp ecx, 0x85
je case.0x4a2d2b.10
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x4a7d1c
jmp dword [edx*4 + 0x4a9ee0]
sub edx, 0x2028
je case.0x4a2d2b.10
sub edx, 1
jne case.default.0x4a7d1c
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x4a2c20
jmp 0x4a146a
mov ebx, 1
cmp ecx, ebx
jl 0x4a146a
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x49d5a5
movzx edx, byte [eax]
lea edi, [eax + 1]
mov dword [esi + 8], edi
mov eax, edx
cmp edx, 0xc0
jb 0x4a2e4e
movzx ecx, byte [edi]
and ecx, 0x3f
test dl, 0x20
jne 0x4a2da2
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x4a2e49
movzx eax, byte [edi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x4a2dc3
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x4a2e49
test dl, 8
jne 0x4a2de6
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x4a2e49
test dl, 4
jne 0x4a2e15
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
jmp 0x4a2e49
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov eax, edx
cmp eax, 0x80
jae 0x4a2e62
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
jne case.default.0x4a7d1c
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x4a2d62
jmp 0x4a146a
cmp ecx, 1
jl 0x4a146e
mov edi, 1
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x4a6906
movzx edx, byte [ecx]
cmp edx, 0x80
jae case.0x4a69ef.14
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
je case.0x4a69ef.14
lea eax, [ecx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x4a2e82
jmp 0x4a146e
mov edi, 1
cmp ecx, edi
jl 0x4a146e
mov edx, dword [ebp + 0x78]
mov edi, edi
mov ecx, dword [esi + 8]
cmp ecx, edx
jae 0x4a6906
movzx edx, byte [ecx]
cmp edx, 0x80
jae 0x4a2ef3
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
jne case.0x4a69ef.14
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jae 0x4a2f18
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x4a2f18
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jb 0x4a2f00
inc edi
cmp edi, dword [esi + 0x90]
jle 0x4a2ed0
jmp 0x4a146e
cmp ecx, 1
jl 0x4a146e
mov edi, 1
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x4a6906
movzx edx, byte [ecx]
cmp edx, 0x80
jae case.0x4a69ef.14
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
je case.0x4a69ef.14
lea eax, [ecx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x4a2f34
jmp 0x4a146e
mov edi, 1
cmp ecx, edi
jl 0x4a146e
mov edx, dword [ebp + 0x78]
mov ecx, dword [esi + 8]
cmp ecx, edx
jae 0x4a6906
movzx edx, byte [ecx]
cmp edx, 0x80
jae 0x4a2fa3
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
jne case.0x4a69ef.14
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jae 0x4a2fc8
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x4a2fc8
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jb 0x4a2fb0
inc edi
cmp edi, dword [esi + 0x90]
jle 0x4a2f80
jmp 0x4a146e
cmp ecx, 1
jl 0x4a146e
mov edi, 1
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x4a6906
movzx edx, byte [ecx]
cmp edx, 0x80
jae case.0x4a69ef.14
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
je case.0x4a69ef.14
lea eax, [ecx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x4a2fe4
jmp 0x4a146e
cmp eax, 0xf
ja case.0x4a7c9a.15
jmp dword [eax*4 + 0x4a9ef0]
mov ebx, 1
cmp ecx, ebx
jl 0x4a146a
lea ecx, [ecx]
mov edx, dword [esi + 8]
mov ecx, dword [ebp + 0x78]
cmp edx, ecx
jae 0x49d700
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x4a3080
push 0
lea eax, [ebp + 0x1c]
push eax
push ecx
push edi
push edx
call fcn.00506fd0
mov ecx, dword [ebp + 0x78]
add esp, 0x14
test eax, eax
je 0x4a3074
mov eax, 1
jmp 0x4a3076
xor eax, eax
test eax, eax
jne case.default.0x4a7d1c
jmp 0x4a30a7
mov edi, dword [ebp + 0x1c]
mov eax, ecx
sub eax, edi
cmp edx, eax
ja 0x4a30a7
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne 0x4a30a7
cmp edi, 1
je case.default.0x4a7d1c
mov al, byte [edx + 1]
cmp al, byte [ebp + 0x35]
je case.default.0x4a7d1c
mov edi, dword [ebp + 0x88]
test edi, edi
je 0x4a30de
mov edx, dword [esi + 8]
lea eax, [edx + 1]
cmp eax, ecx
jb 0x4a30de
cmp dword [ebp + 0x18], 0
jne 0x4a30de
cmp dword [ebp + 0x1c], 2
jne 0x4a30de
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne 0x4a30de
mov dword [ebp + 0x64], 1
cmp edi, 1
jg 0x4a7690
inc dword [esi + 8]
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x4a3040
jmp 0x4a146a
mov eax, dword [ebp + 0x78]
mov edx, dword [esi + 8]
sub eax, ecx
cmp edx, eax
jbe 0x4a25b6
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a69ef.14
cmp edx, dword [ebp + 0x84]
jmp 0x49f97e
mov edx, 1
cmp ecx, edx
jl 0x4a146e
lea esp, [esp]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x4a6906
mov al, byte [ecx]
inc ecx
movzx eax, al
add eax, 0xfffffff6
mov dword [esi + 8], ecx
cmp eax, 0x7b
ja case.0x4a69ef.14
movzx eax, byte [eax + 0x4a9f40]
jmp dword [eax*4 + 0x4a9f30]
cmp ecx, dword [ebp + 0x78]
jae case.0x4a3158.10
cmp byte [ecx], 0xa
jne case.0x4a3158.10
lea eax, [ecx + 1]
mov dword [esi + 8], eax
jmp case.0x4a3158.10
cmp dword [ebp + 0x68], 0
jne case.0x4a69ef.14
inc edx
cmp edx, dword [esi + 0x90]
jle 0x4a3130
jmp 0x4a146e
cmp ecx, 1
jl 0x4a146e
mov edx, 1
jmp 0x4a31a0
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x4a64ae
movzx ecx, byte [eax]
inc eax
mov dword [esi + 8], eax
cmp ecx, 9
je case.0x4a69ef.14
cmp ecx, 0x20
je case.0x4a69ef.14
cmp ecx, 0xa0
je case.0x4a69ef.14
inc edx
cmp edx, dword [esi + 0x90]
jle 0x4a31a0
jmp 0x4a146e
mov edx, 1
cmp ecx, edx
jl 0x4a146e
lea esp, [esp]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x4a64ae
movzx ecx, byte [eax]
inc eax
mov dword [esi + 8], eax
cmp ecx, 9
je 0x4a3219
cmp ecx, 0x20
je 0x4a3219
cmp ecx, 0xa0
jne case.0x4a69ef.14
inc edx
cmp edx, dword [esi + 0x90]
jle 0x4a31f0
jmp 0x4a146e
cmp ecx, 1
jl 0x4a146e
mov edx, 1
mov edi, edx
jmp 0x4a3240
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x4a64ae
mov cl, byte [eax]
inc eax
mov dword [esi + 8], eax
movzx eax, cl
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x4a3266.11
movzx eax, byte [eax + 0x4a9fc4]
mov edx, edi
jmp dword [eax*4 + 0x4a9fbc]
inc edx
mov edi, edx
cmp edx, dword [esi + 0x90]
jle 0x4a3240
jmp 0x4a146e
cmp ecx, 1
jl 0x4a146e
mov edx, 1
jmp 0x4a3290
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x4a64ae
mov cl, byte [eax]
inc eax
mov dword [esi + 8], eax
movzx eax, cl
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x4a69ef.14
movzx eax, byte [eax + 0x4aa048]
jmp dword [eax*4 + 0x4aa040]
inc edx
cmp edx, dword [esi + 0x90]
jle 0x4a3290
jmp 0x4a146e
cmp ecx, 1
jl 0x4a146e
mov edi, 1
jmp 0x4a32e0
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x4a3103
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
jne case.0x4a69ef.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x4a32e0
jmp 0x4a146e
cmp ecx, 1
jl 0x4a146e
mov edi, 1
mov edi, edi
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x4a3103
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
je case.0x4a69ef.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x4a3320
jmp 0x4a146e
cmp ecx, 1
jl 0x4a146e
mov edi, 1
mov edi, edi
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x4a3103
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
jne case.0x4a69ef.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x4a3360
jmp 0x4a146e
cmp ecx, 1
jl 0x4a146e
mov edi, 1
mov edi, edi
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x4a3103
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
je case.0x4a69ef.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x4a33a0
jmp 0x4a146e
cmp ecx, 1
jl 0x4a146e
mov edi, 1
mov edi, edi
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x4a3103
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
jne case.0x4a69ef.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x4a33e0
jmp 0x4a146e
cmp ecx, 1
jl 0x4a146e
mov edi, 1
mov edi, edi
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x4a3103
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
je case.0x4a69ef.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x4a3420
jmp 0x4a146e
mov dword [esi + 0x84], eax
jmp 0x4a80dd
mov dword [esi + 0x84], eax
jmp 0x4a8298
mov dword [esi + 0x84], eax
jmp 0x4a845a
mov dword [esi + 0x84], eax
jmp 0x4a8614
mov dword [esi + 0x84], eax
jmp 0x4a87ce
mov dword [esi + 0x84], eax
jmp 0x4a8f69
mov dword [esi + 0x84], eax
jmp 0x4a9359
mov dword [esi + 0x84], eax
jmp 0x4a9580
mov dword [esi + 0x84], eax
jmp 0x4a974a
mov dword [esi + 0x84], eax
jmp 0x4a9136
cmp dword [esi + 0x7c], 0x16
mov dword [esi + 0x84], eax
je 0x4a8afa
test ebx, ebx
jne 0x4a7d89
jmp 0x4a6af5
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x60]
test eax, eax
js 0x4a4443
cmp eax, 0xa
ja case.0x4a7c9a.15
jmp dword [eax*4 + 0x4aa0c4]
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge 0x4a3572
lea ebx, [ebx]
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x4a3582
movzx ecx, byte [edx]
mov eax, 1
test ebx, ebx
je 0x4a355e
cmp ecx, 0xc0
jb 0x4a355e
test cl, 0x20
jne 0x4a3538
mov eax, 2
jmp 0x4a355e
test cl, 0x10
jne 0x4a3544
mov eax, 3
jmp 0x4a355e
test cl, 8
jne 0x4a3550
mov eax, 4
jmp 0x4a355e
test cl, 4
mov eax, 0
setne al
add eax, 5
cmp dword [esi + 0x68], 0
jne 0x4a3572
add eax, edx
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x4a3510
cmp dword [esp + 0x24], 0
jne 0x49bf83
jmp 0x4a8b5c
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x4a3572
cmp edx, dword [ebp + 0x84]
jbe 0x4a3572
mov dword [ebp + 0x64], 1
cmp eax, 1
jle 0x4a3572
jmp 0x4a9605
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x4a3572
jmp 0x4a35c0
mov edx, dword [esi + 8]
mov ebx, 1
cmp edx, dword [ebp + 0x78]
jae 0x4a3717
cmp dword [esp + 0x28], 0
movzx eax, byte [edx]
mov ecx, eax
mov edi, eax
je 0x4a36b4
cmp eax, 0xc0
jb 0x4a36b4
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test al, 0x20
jne 0x4a3609
and eax, 0x1f
mov ebx, 2
shl eax, 6
jmp 0x4a36b0
test al, 0x10
jne 0x4a3623
and eax, 0xf
mov ebx, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
jmp 0x4a36aa
test al, 8
jne 0x4a3646
and eax, 7
mov ebx, 4
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x4a36aa
test al, 4
jne 0x4a3675
and eax, 3
mov ebx, 5
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
jmp 0x4a36aa
and eax, 1
mov ebx, 6
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
cmp eax, 9
je 0x4a36e9
cmp eax, 5
je 0x4a36e9
cmp eax, 8
je 0x4a36e9
xor eax, eax
jmp 0x4a36ee
mov eax, 1
cmp eax, dword [esi + 0x68]
je 0x4a3572
lea eax, [ebx + edx]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x4a35c0
jmp 0x4a3572
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x4a3572
cmp edx, dword [ebp + 0x84]
jbe 0x4a3572
mov dword [ebp + 0x64], ebx
cmp eax, 1
jle 0x4a3572
jmp 0x49cfa7
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x4a3572
jmp 0x4a3760
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x4a38ae
cmp dword [esp + 0x28], 0
mov ebx, 1
movzx eax, byte [edx]
mov ecx, eax
mov edi, eax
je 0x4a3854
cmp eax, 0xc0
jb 0x4a3854
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test al, 0x20
jne 0x4a37a9
and eax, 0x1f
mov ebx, 2
shl eax, 6
jmp 0x4a3850
test al, 0x10
jne 0x4a37c3
and eax, 0xf
mov ebx, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
jmp 0x4a384a
test al, 8
jne 0x4a37e6
and eax, 7
mov ebx, 4
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x4a384a
test al, 4
jne 0x4a3815
and eax, 3
mov ebx, 5
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
jmp 0x4a384a
and eax, 1
mov ebx, 6
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
mov eax, dword [eax*4 + 0x558550]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je 0x4a3572
lea eax, [ebx + edx]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x4a3760
jmp 0x4a3572
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x4a3572
cmp edx, dword [ebp + 0x84]
jbe 0x4a3572
mov dword [ebp + 0x64], 1
cmp eax, 1
jle 0x4a3572
jmp 0x49cfa7
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x4a3572
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x4a38ae
cmp dword [esp + 0x28], 0
mov ebx, 1
movzx eax, byte [edx]
mov ecx, eax
mov edi, eax
je 0x4a39e3
cmp eax, 0xc0
jb 0x4a39e3
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test al, 0x20
jne 0x4a3938
and eax, 0x1f
mov ebx, 2
shl eax, 6
jmp 0x4a39df
test al, 0x10
jne 0x4a3952
and eax, 0xf
mov ebx, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
jmp 0x4a39d9
test al, 8
jne 0x4a3975
and eax, 7
mov ebx, 4
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x4a39d9
test al, 4
jne 0x4a39a4
and eax, 3
mov ebx, 5
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
jmp 0x4a39d9
and eax, 1
mov ebx, 6
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je 0x4a3572
lea eax, [ebx + edx]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x4a38f3
jmp 0x4a3572
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x4a3572
lea esp, [esp]
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x4a38ae
cmp dword [esp + 0x28], 0
mov ebx, 1
movzx eax, byte [edx]
mov ecx, eax
mov edi, eax
je 0x4a3b44
cmp eax, 0xc0
jb 0x4a3b44
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test al, 0x20
jne 0x4a3a99
and eax, 0x1f
mov ebx, 2
shl eax, 6
jmp 0x4a3b40
test al, 0x10
jne 0x4a3ab3
and eax, 0xf
mov ebx, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
jmp 0x4a3b3a
test al, 8
jne 0x4a3ad6
and eax, 7
mov ebx, 4
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x4a3b3a
test al, 4
jne 0x4a3b05
and eax, 3
mov ebx, 5
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
jmp 0x4a3b3a
and eax, 1
mov ebx, 6
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b80]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je 0x4a3572
lea eax, [ebx + edx]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x4a3a50
jmp 0x4a3572
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x4a3572
lea ecx, [ecx]
mov edx, dword [esi + 8]
mov ebx, 1
cmp edx, dword [ebp + 0x78]
jae 0x4a3717
cmp dword [esp + 0x28], 0
movzx eax, byte [edx]
mov ecx, eax
mov edi, eax
je 0x4a3ca4
cmp eax, 0xc0
jb 0x4a3ca4
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test al, 0x20
jne 0x4a3bf9
and eax, 0x1f
mov ebx, 2
shl eax, 6
jmp 0x4a3ca0
test al, 0x10
jne 0x4a3c13
and eax, 0xf
mov ebx, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
jmp 0x4a3c9a
test al, 8
jne 0x4a3c36
and eax, 7
mov ebx, 4
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x4a3c9a
test al, 4
jne 0x4a3c65
and eax, 3
mov ebx, 5
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
jmp 0x4a3c9a
and eax, 1
mov ebx, 6
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
mov eax, dword [eax*4 + 0x558550]
cmp eax, 1
je 0x4a3cdb
cmp eax, 3
je 0x4a3cdb
xor eax, eax
jmp 0x4a3ce0
mov eax, 1
cmp eax, dword [esi + 0x68]
je 0x4a3572
lea eax, [ebx + edx]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x4a3bb0
jmp 0x4a3572
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x4a3572
nop
mov edi, dword [esi + 8]
mov dword [esp + 0x18], 1
cmp edi, dword [ebp + 0x78]
jae 0x4a3f49
cmp dword [esp + 0x28], 0
movzx edx, byte [edi]
mov dword [esp + 0x14], edx
mov eax, edx
mov ecx, edx
mov dword [esp + 0x1c], edx
mov ebx, edx
je 0x4a3e39
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], edx
cmp edx, 0xc0
jb 0x4a3e39
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a3d85
and eax, 0x1f
mov dword [esp + 0x18], 2
shl eax, 6
mov edx, ecx
jmp 0x4a3e29
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x4a3da3
and edx, 0xf
mov dword [esp + 0x18], 3
shl edx, 6
or edx, ecx
jmp 0x4a3e23
and eax, 0x3f
test dl, 8
jne 0x4a3dc6
and edx, 7
mov dword [esp + 0x18], 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a3e23
test dl, 4
jne 0x4a3df2
and edx, 3
mov dword [esp + 0x18], 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a3e23
and edx, 1
mov dword [esp + 0x18], 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov dword [esp + 0x14], edx
mov eax, edx
mov ecx, edx
mov dword [esp + 0x1c], edx
mov ebx, edx
cmp dword [esp + 0x14], 0x20
ja 0x4a3e58
cmp eax, 0x20
je case.0x4a3f36.8193
lea eax, [edx - 9]
cmp eax, 4
ja case.0x4a3f36.8203
jmp dword [eax*4 + 0x4aa0f0]
cmp edx, 0x2000
ja 0x4a3f0e
cmp ecx, 0x2000
je case.0x4a3f36.8193
cmp edx, 0x1680
ja 0x4a3f06
je case.0x4a3f36.8193
mov eax, edx
sub eax, 0x85
je case.0x4a3f36.8193
sub eax, 0x1b
je case.0x4a3f36.8193
mov eax, edx
test eax, eax
jns 0x4a3ea1
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x55a200]
shl eax, 7
and edx, 0x8000007f
jns 0x4a3ebb
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
cmp dword [eax*4 + 0x558550], 6
sete cl
cmp ecx, dword [esi + 0x68]
je 0x4a3572
mov eax, dword [esp + 0x18]
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x4a3d20
jmp 0x4a3572
cmp edx, 0x180e
jmp 0x4a3e92
cmp ebx, 0x3000
ja case.0x4a3f36.8203
cmp dword [esp + 0x1c], 0x3000
je case.0x4a3f36.8193
lea eax, [edx - 0x2001]
cmp eax, 0x5e
ja case.0x4a3f36.8203
movzx eax, byte [eax + 0x4aa10c]
jmp dword [eax*4 + 0x4aa104]
cmp dword [esi + 0x68], 0
jne 0x4a3572
jmp 0x4a3ee3
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x4a3572
cmp edi, dword [ebp + 0x84]
jmp 0x4a38c2
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x4a3572
jmp 0x4a3f80
mov edx, dword [esi + 8]
mov dword [esp + 0x18], 1
cmp edx, dword [ebp + 0x78]
jae 0x4a38ae
cmp dword [esp + 0x28], 0
movzx eax, byte [edx]
mov ecx, eax
mov edi, eax
mov ebx, eax
je 0x4a408d
cmp eax, 0xc0
jb 0x4a408d
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test al, 0x20
jne 0x4a3fd1
and eax, 0x1f
mov dword [esp + 0x18], 2
shl eax, 6
jmp 0x4a4087
test al, 0x10
jne 0x4a3fee
and eax, 0xf
mov dword [esp + 0x18], 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
jmp 0x4a4081
test al, 8
jne 0x4a4017
and eax, 7
mov dword [esp + 0x18], 4
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x4a4081
test al, 4
jne 0x4a4049
and eax, 3
mov dword [esp + 0x18], 5
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
jmp 0x4a4081
and eax, 1
mov dword [esp + 0x18], 6
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edi, ecx
mov ebx, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
mov eax, dword [eax*4 + 0x558550]
cmp eax, 1
je 0x4a40c9
cmp eax, 3
je 0x4a40c9
cmp ebx, 0x5f
je 0x4a40c9
xor eax, eax
jmp 0x4a40ce
mov eax, 1
cmp eax, dword [esi + 0x68]
je 0x4a3572
mov eax, dword [esp + 0x18]
add eax, edx
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x4a3f80
jmp 0x4a3572
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x4a3572
mov edi, dword [esi + 8]
mov ebx, 1
cmp edi, dword [ebp + 0x78]
jae 0x4a4253
cmp dword [esp + 0x28], 0
movzx edx, byte [edi]
mov ecx, edx
je 0x4a41f8
cmp edx, 0xc0
jb 0x4a41f8
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a415d
mov eax, edx
mov ebx, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x4a41f4
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x4a4178
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x4a41ee
and eax, 0x3f
test dl, 8
jne 0x4a4198
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a41ee
test dl, 4
jne 0x4a41c1
and edx, 3
mov ebx, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a41ee
and edx, ebx
mov ebx, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov eax, dword [esi + 0x64]
cmp ecx, dword [eax*4 + 0x558a40]
lea eax, [eax*4 + 0x558a40]
jb 0x4a421d
mov ecx, dword [eax]
lea ecx, [ecx]
lea eax, [eax + 4]
cmp edx, ecx
je 0x4a4247
mov ecx, dword [eax]
cmp edx, ecx
jae 0x4a4210
cmp dword [esi + 0x68], 0
je 0x4a3572
lea eax, [ebx + edi]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x4a4110
jmp 0x4a3572
cmp dword [esi + 0x68], 0
jne 0x4a3572
jmp 0x4a4227
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x4a3572
cmp edi, dword [ebp + 0x84]
jmp 0x4a372b
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x4a3572
mov edi, dword [esi + 8]
mov dword [esp + 0x18], 1
cmp edi, dword [ebp + 0x78]
jae 0x4a441d
cmp dword [esp + 0x28], 0
movzx edx, byte [edi]
mov eax, edx
mov dword [esp + 0x14], edx
mov ecx, edx
mov ebx, edx
je 0x4a43bf
mov dword [esp + 0x14], edx
cmp edx, 0xc0
jb 0x4a43bf
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a42eb
and eax, 0x1f
mov dword [esp + 0x18], 2
shl eax, 6
mov edx, ecx
or edx, eax
mov eax, edx
mov dword [esp + 0x14], edx
mov ecx, edx
mov ebx, edx
jmp 0x4a43bf
movzx eax, byte [edi + 2]
and eax, 0x3f
test dl, 0x10
jne 0x4a431b
and edx, 0xf
mov dword [esp + 0x18], 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
mov eax, edx
mov dword [esp + 0x14], edx
mov ecx, edx
mov ebx, edx
jmp 0x4a43bf
test dl, 8
jne 0x4a4350
and edx, 7
mov dword [esp + 0x18], 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
mov dword [esp + 0x14], edx
mov ecx, edx
mov ebx, edx
jmp 0x4a43bf
test dl, 4
jne 0x4a437c
and edx, 3
mov dword [esp + 0x18], 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a43ad
and edx, 1
mov dword [esp + 0x18], 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
mov dword [esp + 0x14], eax
mov ebx, eax
mov ecx, eax
cmp eax, 0x24
je 0x4a43ec
cmp ecx, 0x40
je 0x4a43ec
cmp ebx, 0x60
je 0x4a43ec
cmp dword [esp + 0x14], 0xa0
jb 0x4a43e0
cmp edx, 0xd7ff
jbe 0x4a43ec
cmp edx, 0xe000
jae 0x4a43ec
xor eax, eax
jmp 0x4a43f1
mov eax, 1
cmp eax, dword [esi + 0x68]
je 0x4a3572
mov eax, dword [esp + 0x18]
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x4a4282
jmp 0x4a3572
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x4a3572
cmp edi, dword [ebp + 0x84]
jbe 0x4a3572
mov dword [ebp + 0x64], 1
jmp 0x4a3734
mov eax, dword [esi + 0x7c]
cmp eax, 0x16
jne 0x4a47bc
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x4a476d
jmp 0x4a4470
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x4a474b
cmp dword [esp + 0x28], 0
lea edi, [ecx + 1]
movzx eax, byte [ecx]
mov edx, edi
mov dword [esi + 8], edi
mov ecx, eax
mov ebx, eax
mov dword [esp + 0x18], edi
je 0x4a457d
mov dword [esp + 0x18], edi
cmp eax, 0xc0
jb 0x4a457d
test al, 0x20
jne 0x4a44bb
movzx eax, byte [edi]
lea edx, [edi + 1]
and ecx, 0x1f
jmp 0x4a456c
test al, 0x10
jne 0x4a44d9
movzx eax, byte [edi]
lea edx, [edi + 2]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
jmp 0x4a456c
test al, 8
jne 0x4a4503
movzx eax, byte [edi]
lea edx, [edi + 3]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
jmp 0x4a456c
test al, 4
movzx eax, byte [edi]
jne 0x4a4536
and ecx, 3
lea edx, [edi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
jmp 0x4a456c
and ecx, 1
lea edx, [edi + 5]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov dword [esi + 8], edx
mov ebx, ecx
mov dword [esp + 0x18], edx
shr ecx, 7
and ebx, 0x7f
movzx eax, byte [ecx + 0x55a200]
mov ecx, edx
shl eax, 7
add eax, ebx
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b82]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x78]
cmp dword [esp + 0x18], eax
jae 0x4a470e
mov edi, edx
mov dword [esp + 0x18], eax
jmp 0x4a45c0
cmp dword [esp + 0x28], 0
mov ebx, 1
movzx edx, byte [edi]
mov ecx, edx
je 0x4a469c
cmp edx, 0xc0
jb 0x4a469c
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a4601
mov eax, edx
mov ebx, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x4a4698
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x4a461c
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x4a4692
and eax, 0x3f
test dl, 8
jne 0x4a463c
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a4692
test dl, 4
jne 0x4a4665
and edx, 3
mov ebx, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a4692
and edx, ebx
mov ebx, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov ebp, dword [esp + 0x14]
and ecx, 0x7f
shr edx, 7
mov dword [esp + 0x1c], edi
movzx eax, byte [edx + 0x55a200]
mov edx, edi
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x55c400]
movzx ecx, byte [eax*8 + 0x558b82]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, 1
shl eax, cl
test dword [ebp*4 + 0x5585c8], eax
mov ebp, dword [esp + 0xb0]
je 0x4a4706
lea edx, [ebx + edi]
mov dword [esp + 0x14], ecx
mov dword [esi + 8], edx
mov edi, edx
mov eax, dword [ebp + 0x78]
mov ecx, edx
mov dword [esp + 0x18], eax
cmp edx, eax
jb 0x4a45c0
jmp 0x4a470e
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edi, dword [ebp + 0x88]
test edi, edi
je 0x4a4734
cmp edx, eax
jb 0x4a4734
cmp ecx, dword [ebp + 0x84]
jbe 0x4a4734
mov dword [ebp + 0x64], 1
cmp edi, 1
jg 0x4a7690
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x4a4470
jmp 0x4a476d
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x4a476d
cmp ecx, dword [ebp + 0x84]
jbe 0x4a476d
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x49cfa7
cmp dword [esp + 0x24], 0
jne 0x49bf83
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x49bf10
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a47ad
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x2d
jmp 0x4a6b94
add eax, 0xfffffffa
test ebx, ebx
je 0x4a55df
cmp eax, 0xf
ja case.0x4a7c9a.15
jmp dword [eax*4 + 0x4aa16c]
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x4a55cf
lea esp, [esp]
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x78]
cmp ecx, edx
jae 0x4a48c3
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x4a4832
push dword [esp + 0x28]
lea eax, [ebp + 0x1c]
push eax
push edx
push edi
push ecx
call fcn.00506fd0
mov ecx, dword [ebp + 0x18]
add esp, 0x14
test eax, eax
je 0x4a4826
mov eax, 1
jmp 0x4a4828
xor eax, eax
test eax, eax
jne 0x4a55cf
jmp 0x4a4859
mov edi, dword [ebp + 0x1c]
sub edx, edi
cmp ecx, edx
ja 0x4a4857
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x4a4857
cmp edi, 1
je 0x4a55cf
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je 0x4a55cf
xor ecx, ecx
mov edi, dword [ebp + 0x88]
test edi, edi
je 0x4a488f
mov edx, dword [esi + 8]
lea eax, [edx + 1]
cmp eax, dword [ebp + 0x78]
jb 0x4a488f
test ecx, ecx
jne 0x4a488f
cmp dword [ebp + 0x1c], 2
jne 0x4a488f
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne 0x4a488f
mov dword [ebp + 0x64], 1
cmp edi, 1
jg 0x4a7690
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x4a48b1
lea ebx, [ebx]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x4a48b1
inc ecx
mov dword [esi + 8], ecx
cmp ecx, dword [ebp + 0x78]
jb 0x4a48a0
inc ebx
cmp ebx, dword [esi + 0x8c]
jl 0x4a47f0
jmp 0x4a55cf
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x4a55cf
cmp ecx, dword [ebp + 0x84]
jbe 0x4a55cf
mov dword [ebp + 0x64], 1
cmp eax, 1
jle 0x4a55cf
jmp 0x49cfa7
mov eax, dword [esi + 0x8c]
cmp eax, 0x7fffffff
jge 0x4a4948
mov edi, dword [esi + 0x90]
cmp edi, eax
jge 0x4a55cf
mov edx, dword [ebp + 0x78]
mov eax, dword [esi + 8]
cmp eax, edx
jae 0x4a494e
inc eax
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jae 0x4a493a
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x4a493a
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jb 0x4a4922
inc edi
cmp edi, dword [esi + 0x8c]
jl 0x4a4910
jmp 0x4a55cf
mov eax, dword [ebp + 0x78]
mov dword [esi + 8], eax
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je 0x4a55cf
cmp eax, dword [ebp + 0x84]
jbe 0x4a55cf
mov dword [ebp + 0x64], 1
cmp ecx, 1
jle 0x4a55cf
jmp 0x4a9605
mov edx, dword [ebp + 0x78]
mov eax, edx
mov ecx, dword [esi + 0x8c]
mov edi, dword [esi + 8]
sub eax, edi
sub ecx, dword [esi + 0x90]
cmp ecx, eax
jbe 0x4a49c9
mov dword [esi + 8], edx
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x4a55cf
cmp edx, dword [ebp + 0x84]
jbe 0x4a55cf
mov dword [ebp + 0x64], 1
cmp eax, 1
jle 0x4a55cf
jmp 0x4a9605
lea eax, [ecx + edi]
mov dword [esi + 8], eax
jmp 0x4a55cf
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x4a55cf
lea ebx, [ebx]
mov edi, dword [esi + 8]
mov dword [esp + 0x18], 1
cmp edi, dword [ebp + 0x78]
jae 0x4a4b64
movzx edx, byte [edi]
mov dword [esp + 0x14], edx
mov ecx, edx
mov eax, edx
mov ebx, edx
cmp edx, 0xc0
jb 0x4a4aee
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a4a3e
and eax, 0x1f
mov dword [esp + 0x18], 2
shl eax, 6
mov edx, ecx
jmp 0x4a4ae2
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x4a4a5c
and edx, 0xf
mov dword [esp + 0x18], 3
shl edx, 6
or edx, ecx
jmp 0x4a4adc
and eax, 0x3f
test dl, 8
jne 0x4a4a7f
and edx, 7
mov dword [esp + 0x18], 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a4adc
test dl, 4
jne 0x4a4aab
and edx, 3
mov dword [esp + 0x18], 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a4adc
and edx, 1
mov dword [esp + 0x18], 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov dword [esp + 0x14], edx
mov eax, edx
mov ebx, edx
cmp ecx, 0xd
jne 0x4a4b0a
lea eax, [edi + 1]
mov dword [esi + 8], eax
cmp eax, dword [ebp + 0x78]
jae 0x4a55cf
cmp byte [eax], 0xa
jne 0x4a4b4a
inc eax
jmp 0x4a4b47
cmp eax, 0xa
je 0x4a4b41
cmp dword [ebp + 0x68], 0
jne 0x4a55cf
cmp ebx, 0xb
je 0x4a4b41
cmp dword [esp + 0x14], 0xc
je 0x4a4b41
cmp edx, 0x85
je 0x4a4b41
cmp edx, 0x2028
je 0x4a4b41
cmp edx, 0x2029
jne 0x4a55cf
mov eax, dword [esp + 0x18]
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x4a49f0
jmp 0x4a55cf
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x4a55cf
cmp edi, dword [ebp + 0x84]
jmp 0x4a48d7
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x4a55cf
jmp 0x4a4ba0
mov edi, dword [esi + 8]
mov dword [esp + 0x18], 1
cmp edi, dword [ebp + 0x78]
jae 0x4a4b64
movzx edx, byte [edi]
mov dword [esp + 0x14], edx
mov ebx, edx
mov eax, edx
mov ecx, edx
cmp edx, 0xc0
jb 0x4a4c9a
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a4bea
and eax, 0x1f
mov dword [esp + 0x18], 2
shl eax, 6
mov edx, ecx
jmp 0x4a4c8e
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x4a4c08
and edx, 0xf
mov dword [esp + 0x18], 3
shl edx, 6
or edx, ecx
jmp 0x4a4c88
and eax, 0x3f
test dl, 8
jne 0x4a4c2b
and edx, 7
mov dword [esp + 0x18], 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a4c88
test dl, 4
jne 0x4a4c57
and edx, 3
mov dword [esp + 0x18], 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a4c88
and edx, 1
mov dword [esp + 0x18], 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov dword [esp + 0x14], edx
mov ebx, edx
mov eax, edx
mov ecx, edx
cmp dword [esp + 0x14], 0x2000
ja 0x4a4d0a
cmp ebx, 0x2000
je case.0x4a4d2b.8193
cmp edx, 0xa0
ja 0x4a4cfa
je case.0x4a4d2b.8193
cmp edx, 9
je case.0x4a4d2b.8193
cmp edx, 0x20
je case.0x4a4d2b.8193
xor ecx, ecx
xor eax, eax
cmp dword [esi + 0x7c], 0x12
sete al
cmp ecx, eax
je 0x4a55cf
mov eax, dword [esp + 0x18]
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x4a4ba0
jmp 0x4a55cf
cmp edx, 0x1680
je case.0x4a4d2b.8193
cmp edx, 0x180e
jmp 0x4a4cc2
cmp eax, 0x3000
ja case.0x4a4d2b.8203
cmp ecx, 0x3000
je case.0x4a4d2b.8193
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x4a4d2b.8203
movzx eax, byte [edx + 0x4aa1b4]
jmp dword [eax*4 + 0x4aa1ac]
mov ecx, 1
jmp 0x4a4cc6
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x4a55cf
nop
mov edi, dword [esi + 8]
mov ebx, 1
cmp edi, dword [ebp + 0x78]
jae 0x4a4e91
movzx edx, byte [edi]
mov eax, edx
mov ecx, edx
cmp edx, 0xc0
jb 0x4a4e2c
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a4d92
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ebx, 2
jmp 0x4a4e26
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x4a4daa
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x4a4e20
and eax, 0x3f
test dl, 8
jne 0x4a4dca
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a4e20
test dl, 4
jne 0x4a4df3
and edx, 3
mov ebx, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a4e20
and edx, ebx
mov ebx, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
mov ecx, edx
cmp eax, 0x85
ja 0x4a4e4a
cmp ecx, 0x85
je case.0x4a4e43.10
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x4a4e43
jmp dword [edx*4 + 0x4aa214]
sub edx, 0x2028
je case.0x4a4e43.10
sub edx, 1
je case.0x4a4e43.10
xor ecx, ecx
jmp 0x4a4e60
mov ecx, 1
xor eax, eax
cmp dword [esi + 0x7c], 0x14
sete al
cmp ecx, eax
je 0x4a55cf
lea eax, [ebx + edi]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x4a4d50
jmp 0x4a55cf
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x4a55cf
cmp edi, dword [ebp + 0x84]
jbe 0x4a55cf
mov dword [ebp + 0x64], ebx
jmp 0x4a48e4
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x4a55cf
lea esp, [esp]
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x4a4b64
movzx edx, byte [edi]
mov ebx, 1
mov eax, ebx
mov ecx, edx
cmp edx, 0xc0
jb 0x4a4fc3
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a4f14
mov eax, edx
mov ebx, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x4a4fbd
test dl, 0x10
jne 0x4a4f2f
movzx eax, byte [edi + 2]
and edx, 0xf
shl edx, 6
mov ebx, 3
or edx, ecx
jmp 0x4a4fb7
test dl, 8
jne 0x4a4f53
movzx eax, byte [edi + 2]
and edx, 7
shl edx, 6
and eax, 0x3f
or edx, ecx
mov ebx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a4fb7
test dl, 4
jne 0x4a4f83
movzx eax, byte [edi + 2]
and edx, 3
shl edx, 6
and eax, 0x3f
or edx, ecx
mov ebx, 5
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a4fb7
and edx, eax
mov ebx, 6
movzx eax, byte [edi + 2]
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, ebx
mov ecx, edx
cmp ecx, 0x100
jae 0x4a4fda
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
jne 0x4a55cf
mov eax, ebx
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x4a4ed0
jmp 0x4a55cf
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x4a55cf
jmp 0x4a5010
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x4a4b64
movzx edx, byte [edi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x4a50e9
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a5050
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x4a50e5
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x4a5068
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x4a50df
and eax, 0x3f
test dl, 8
jne 0x4a5088
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a50df
test dl, 4
jne 0x4a50b1
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a50df
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
cmp eax, 0x100
jae 0x4a55cf
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
je 0x4a55cf
lea eax, [ecx + edi]
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x4a5010
jmp 0x4a55cf
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x4a55cf
nop
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x4a4b64
movzx edx, byte [edi]
mov ebx, 1
mov eax, ebx
mov ecx, edx
cmp edx, 0xc0
jb 0x4a5223
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a5174
mov eax, edx
mov ebx, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x4a521d
test dl, 0x10
jne 0x4a518f
movzx eax, byte [edi + 2]
and edx, 0xf
shl edx, 6
mov ebx, 3
or edx, ecx
jmp 0x4a5217
test dl, 8
jne 0x4a51b3
movzx eax, byte [edi + 2]
and edx, 7
shl edx, 6
and eax, 0x3f
or edx, ecx
mov ebx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a5217
test dl, 4
jne 0x4a51e3
movzx eax, byte [edi + 2]
and edx, 3
shl edx, 6
and eax, 0x3f
or edx, ecx
mov ebx, 5
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a5217
and edx, eax
mov ebx, 6
movzx eax, byte [edi + 2]
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, ebx
mov ecx, edx
cmp ecx, 0x100
jae 0x4a523a
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
jne 0x4a55cf
mov eax, ebx
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x4a5130
jmp 0x4a55cf
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x4a55cf
jmp 0x4a5270
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x4a4b64
movzx edx, byte [edi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x4a534c
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a52b0
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x4a5348
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x4a52cb
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x4a5342
and eax, 0x3f
test dl, 8
jne 0x4a52eb
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a5342
test dl, 4
jne 0x4a5314
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a5342
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
cmp eax, 0x100
jae 0x4a55cf
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
je 0x4a55cf
lea eax, [ecx + edi]
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x4a5270
jmp 0x4a55cf
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x4a55cf
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x4a4b64
movzx edx, byte [edi]
mov ebx, 1
mov eax, ebx
mov ecx, edx
cmp edx, 0xc0
jb 0x4a5485
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a53d6
mov eax, edx
mov ebx, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x4a547f
test dl, 0x10
jne 0x4a53f1
movzx eax, byte [edi + 2]
and edx, 0xf
shl edx, 6
mov ebx, 3
or edx, ecx
jmp 0x4a5479
test dl, 8
jne 0x4a5415
movzx eax, byte [edi + 2]
and edx, 7
shl edx, 6
and eax, 0x3f
or edx, ecx
mov ebx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a5479
test dl, 4
jne 0x4a5445
movzx eax, byte [edi + 2]
and edx, 3
shl edx, 6
and eax, 0x3f
or edx, ecx
mov ebx, 5
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a5479
and edx, eax
mov ebx, 6
movzx eax, byte [edi + 2]
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, ebx
mov ecx, edx
cmp ecx, 0x100
jae 0x4a549c
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
jne 0x4a55cf
mov eax, ebx
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x4a5392
jmp 0x4a55cf
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x4a55cf
lea ecx, [ecx]
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x4a4b64
movzx edx, byte [edi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x4a55ac
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a5510
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x4a55a8
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x4a552b
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x4a55a2
and eax, 0x3f
test dl, 8
jne 0x4a554b
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a55a2
test dl, 4
jne 0x4a5574
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a55a2
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
cmp eax, 0x100
jae 0x4a55cf
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
je 0x4a55cf
lea eax, [ecx + edi]
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x4a54d0
cmp dword [esp + 0x24], 0
jne 0x49bf83
jmp 0x4a8005
cmp eax, 0xf
ja case.0x4a7c9a.15
jmp dword [eax*4 + 0x4aa224]
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge case.0x4a58b3.10
mov edx, dword [esi + 8]
mov ecx, dword [ebp + 0x78]
cmp edx, ecx
jae 0x4a56b4
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x4a5641
push 0
lea eax, [ebp + 0x1c]
push eax
push ecx
push edi
push edx
call fcn.00506fd0
mov ecx, dword [ebp + 0x78]
add esp, 0x14
test eax, eax
je 0x4a5635
mov eax, 1
jmp 0x4a5637
xor eax, eax
test eax, eax
jne case.0x4a58b3.10
jmp 0x4a5668
mov edi, dword [ebp + 0x1c]
mov eax, ecx
sub eax, edi
cmp edx, eax
ja 0x4a5668
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne 0x4a5668
cmp edi, 1
je case.0x4a58b3.10
mov al, byte [edx + 1]
cmp al, byte [ebp + 0x35]
je case.0x4a58b3.10
mov edi, dword [ebp + 0x88]
test edi, edi
je 0x4a569f
mov edx, dword [esi + 8]
lea eax, [edx + 1]
cmp eax, ecx
jb 0x4a569f
cmp dword [ebp + 0x18], 0
jne 0x4a569f
cmp dword [ebp + 0x1c], 2
jne 0x4a569f
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne 0x4a569f
mov dword [ebp + 0x64], 1
cmp edi, 1
jg 0x4a7690
inc dword [esi + 8]
inc ebx
cmp ebx, dword [esi + 0x8c]
jl 0x4a5601
jmp case.0x4a58b3.10
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a58b3.10
cmp edx, dword [ebp + 0x84]
jbe case.0x4a58b3.10
mov dword [ebp + 0x64], 1
cmp eax, 1
jle case.0x4a58b3.10
jmp 0x49cfa7
mov edx, dword [ebp + 0x78]
mov eax, edx
mov ecx, dword [esi + 0x8c]
mov edi, dword [esi + 8]
sub eax, edi
sub ecx, dword [esi + 0x90]
cmp ecx, eax
jbe 0x4a572f
mov dword [esi + 8], edx
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a58b3.10
cmp edx, dword [ebp + 0x84]
jbe case.0x4a58b3.10
mov dword [ebp + 0x64], 1
cmp eax, 1
jle case.0x4a58b3.10
jmp 0x4a9605
lea eax, [ecx + edi]
mov dword [esi + 8], eax
jmp case.0x4a58b3.10
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge case.0x4a58b3.10
lea esp, [esp]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x4a57a7
mov al, byte [ecx]
cmp al, 0xd
jne 0x4a5775
lea eax, [ecx + 1]
mov dword [esi + 8], eax
cmp eax, dword [ebp + 0x78]
jae case.0x4a58b3.10
cmp byte [eax], 0xa
jne 0x4a5799
inc eax
jmp 0x4a5796
cmp al, 0xa
je 0x4a5793
cmp dword [ebp + 0x68], 0
jne case.0x4a58b3.10
cmp al, 0xb
je 0x4a5793
cmp al, 0xc
je 0x4a5793
cmp al, 0x85
jne case.0x4a58b3.10
lea eax, [ecx + 1]
mov dword [esi + 8], eax
inc edx
cmp edx, dword [esi + 0x8c]
jl 0x4a5750
jmp case.0x4a58b3.10
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a58b3.10
cmp ecx, dword [ebp + 0x84]
jmp 0x4a5714
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge case.0x4a58b3.10
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x4a5809
mov cl, byte [eax]
cmp cl, 9
je case.0x4a58b3.10
cmp cl, 0x20
je case.0x4a58b3.10
cmp cl, 0xa0
je case.0x4a58b3.10
inc eax
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x4a57d2
jmp case.0x4a58b3.10
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x4a58b3.10
cmp eax, dword [ebp + 0x84]
jbe case.0x4a58b3.10
mov dword [ebp + 0x64], 1
cmp ecx, 1
jle case.0x4a58b3.10
jmp 0x4a9605
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge case.0x4a58b3.10
lea ebx, [ebx]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x4a5809
mov cl, byte [eax]
cmp cl, 9
je 0x4a586d
cmp cl, 0x20
je 0x4a586d
cmp cl, 0xa0
jne case.0x4a58b3.10
inc eax
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x4a5850
jmp case.0x4a58b3.10
mov ecx, dword [esi + 0x90]
cmp ecx, dword [esi + 0x8c]
jge case.0x4a58b3.10
mov edi, ecx
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x4a5700
movzx eax, byte [edx]
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x4a58b3.11
movzx eax, byte [eax + 0x4aa26c]
mov ecx, edi
jmp dword [eax*4 + 0x4aa264]
lea eax, [edx + 1]
inc ecx
mov dword [esi + 8], eax
mov edi, ecx
cmp ecx, dword [esi + 0x8c]
jl 0x4a5893
jmp case.0x4a58b3.10
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge case.0x4a58b3.10
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x4a57a7
movzx eax, byte [ecx]
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x4a58b3.10
movzx eax, byte [eax + 0x4aa2f0]
jmp dword [eax*4 + 0x4aa2e8]
lea eax, [ecx + 1]
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x4a58e2
jmp case.0x4a58b3.10
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge case.0x4a58b3.10
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x4a5700
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
jne case.0x4a58b3.10
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x4a5931
jmp case.0x4a58b3.10
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge case.0x4a58b3.10
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x4a5700
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
je case.0x4a58b3.10
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x4a5973
jmp case.0x4a58b3.10
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge case.0x4a58b3.10
jmp 0x4a59c0
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x4a5700
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
jne case.0x4a58b3.10
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x4a59c0
jmp case.0x4a58b3.10
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge case.0x4a58b3.10
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x4a5700
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
je case.0x4a58b3.10
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x4a5a02
jmp case.0x4a58b3.10
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge case.0x4a58b3.10
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x4a5700
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
jne case.0x4a58b3.10
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x4a5a44
jmp case.0x4a58b3.10
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge case.0x4a58b3.10
nop
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x4a5aa5
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
je case.0x4a58b3.10
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x4a5a80
jmp case.0x4a58b3.10
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a58b3.10
cmp edx, dword [ebp + 0x84]
jbe case.0x4a58b3.10
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x4a9605
cmp dword [esp + 0x24], 0
jne 0x49bf83
jmp 0x4a6b55
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a98cf
mov edi, 0xfffffffb
mov ebx, dword [esp + 0x28]
mov eax, dword [esi + 0x130]
dec eax
cmp eax, 0x42
ja case.default.0x4a5afc
jmp dword [eax*4 + 0x4aa36c]
cmp edi, 0xfffffc1b
je 0x4a5bdb
cmp edi, 0xfffffc20
jne 0x4a5b4a
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add ecx, edx
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae case.default.0x4a5fe8
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x4a5b46
cmp byte [ecx], 0x77
jne case.default.0x4a5fe8
xor edi, edi
jmp 0x4a5b52
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0xa0]
mov dword [ebp + 0x90], eax
mov ecx, dword [esi + 0xc]
movzx edx, byte [ecx + 1]
movzx eax, byte [ecx + 2]
shl edx, 8
or edx, eax
add edx, ecx
mov dword [esi + 0xc], edx
mov eax, dword [esi + 0x28]
mov dword [ebp + 0xac], eax
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
jne 0x4a5bdb
cmp dword [esi + 0x9c], 0x88
jb 0x4a5b9a
mov dword [ebp + 0x98], 2
mov edx, dword [esi + 4]
test edx, edx
jne 0x4a5bc3
push 0x134
call dword [0xc5c7a0]
mov edx, eax
add esp, 4
test edx, edx
je 0x4a95a3
mov dword [edx + 4], 0
mov dword [esi + 4], edx
mov dword [esi + 0x130], 1
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
mov ecx, dword [esi + 0xc]
jmp 0x4a61e3
mov edx, dword [esi + 0x98]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0xa4]
mov dword [ecx + edx*4], eax
mov edx, dword [esi + 0x98]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0xa8]
mov dword [ecx + edx*4 + 4], eax
mov edx, dword [ebp + 0x10]
sub edx, dword [esi + 0x94]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0xac]
mov dword [ecx + edx*4], eax
mov eax, dword [esi]
mov esi, eax
test eax, eax
jne 0x4a5aec
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret
cmp edi, 0xfffffc20
jne 0x4a5cf3
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add ecx, edx
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae 0x4a5d4b
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x4a5c69
cmp byte [ecx], 0x77
jne 0x4a5d4b
mov ecx, dword [esi + 0xc]
movzx edx, byte [ecx + 1]
movzx eax, byte [ecx + 2]
shl edx, 8
or edx, eax
add edx, ecx
mov dword [esi + 0xc], edx
mov eax, dword [esi + 0x28]
mov dword [ebp + 0xac], eax
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
jne case.0x4a69ef.14
mov eax, dword [esi + 0xa0]
mov dword [ebp + 0x90], eax
mov eax, dword [esi + 0x9c]
cmp eax, 0x88
jae 0x4a5d5c
cmp eax, 0x81
je 0x4a5d5c
cmp dword [ebp + 0x6c], 0
jne 0x4a5d66
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
cmp byte [ecx + edx], 0x77
je 0x4a5d66
movzx eax, byte [edx]
movzx eax, byte [eax + 0x558438]
add eax, edx
mov dword [esi + 0xc], eax
jmp 0x49bf10
test edi, edi
je 0x4a5c69
cmp edi, 0xfffffc1b
jne 0x4a5d4b
mov edx, dword [esi + 0xc]
cmp byte [edx], 0x81
je 0x4a5d3d
cmp byte [edx], 0x77
mov ebx, edx
jne 0x4a5d2c
movzx ecx, byte [edx + 1]
movzx edx, byte [edx + 2]
shl ecx, 8
or edx, ecx
add edx, ebx
mov ebx, edx
cmp byte [edx], 0x77
je 0x4a5d12
mov dword [esp + 0x10], edx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
mov edx, ebx
shl ecx, 8
or ecx, eax
sub edx, ecx
mov eax, dword [ebp + 0xb4]
sub eax, edx
neg eax
sbb eax, eax
and edi, eax
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a5c21
jmp 0x4a5ae8
mov dword [ebp + 0x98], 2
mov eax, dword [ebp + 0xac]
mov dword [esi + 0x28], eax
mov eax, dword [ebp + 0x90]
mov dword [esi + 0xa0], eax
mov edx, dword [esi + 4]
test edx, edx
jne 0x4a5da4
push 0x134
call dword [0xc5c7a0]
mov edx, eax
add esp, 4
test edx, edx
je 0x4a95a3
mov dword [edx + 4], 0
mov dword [esi + 4], edx
mov dword [esi + 0x130], 2
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
mov ecx, dword [esi + 0xc]
jmp 0x4a61e3
cmp edi, 1
jne 0x4a5e32
mov eax, dword [ebp + 0x8c]
cmp eax, dword [esi + 0x14]
jle 0x4a5dd3
mov dword [esi + 0x14], eax
mov dword [esi + 0x58], 1
mov edx, dword [esi + 0xc]
cmp byte [edx], 0x92
jne 0x4a5de6
inc edx
mov dword [esi + 0xc], edx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esi + 0xc], edx
cmp byte [edx], 0x77
jne 0x4a5e17
lea ecx, [ecx]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esi + 0xc], edx
cmp byte [edx], 0x77
je 0x4a5e00
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi + 0xc]
movzx eax, byte [eax + 0x558438]
sub ecx, eax
add ecx, 3
mov dword [esi + 0xc], ecx
jmp 0x49c42e
test edi, edi
je 0x49c42e
cmp edi, 0xfffffc20
je 0x49c42e
jmp case.default.0x4a5fe8
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0xc]
add eax, ecx
mov dword [esi + 0xc], eax
cmp dword [esi + 0x58], 0
jne 0x4a5e66
cmp byte [eax - 3], 0x77
jne 0x49bf83
cmp dword [esi + 0x9c], 0x8c
jne 0x49bf10
mov dword [ebp + 0x98], 2
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a5ea9
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x31
jmp 0x4a6b94
cmp edi, 1
je 0x4a5f63
cmp edi, 0xfffffc19
je 0x4a5f63
mov eax, dword [esi + 0x28]
mov dword [ebp + 0xac], eax
cmp edi, 0xfffffc20
jne 0x4a5f09
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add ecx, edx
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae case.default.0x4a5fe8
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x4a5f11
cmp byte [ecx], 0x77
jmp 0x4a5f0b
test edi, edi
jne case.default.0x4a5fe8
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov dword [esi + 0xc], eax
cmp byte [eax], 0x77
jne 0x4a5f69
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a5f54
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 4
jmp 0x4a60a4
mov eax, dword [ebp + 0x7c]
mov dword [esi + 0x10], eax
mov edx, dword [esi + 0xc]
cmp byte [edx], 0x78
je case.0x4a69ef.14
cmp dword [esi + 0x58], 0
jne 0x4a6041
nop
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov edx, eax
mov dword [esi + 0xc], eax
cmp byte [edx], 0x77
je 0x4a5f80
add eax, 3
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x8c]
mov dword [esi + 0x14], eax
jmp 0x49bf83
mov eax, dword [esi + 0x28]
mov dword [ebp + 0xac], eax
cmp edi, 0xfffffc1c
jg 0x4a5fcb
je case.0x4a5fe8.995
cmp edi, 0xfffffc19
jmp 0x4a60db
test edi, edi
jg 0x4a60d6
je 0x4a6057
lea eax, [edi + 0x3e3]
cmp eax, 3
ja case.default.0x4a5fe8
jmp dword [eax*4 + 0x4aa478]
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add ecx, edx
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae case.0x4a5fe8.995
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x4a6057
cmp byte [ecx], 0x77
je 0x4a6057
mov edx, dword [esi + 0xc]
lea esp, [esp]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esi + 0xc], edx
cmp byte [edx], 0x77
je 0x4a6020
cmp dword [esi + 0x58], 0
je 0x4a62db
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a9822
mov edi, 1
jmp 0x4a5ae8
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esi + 0xc], edx
cmp byte [edx], 0x77
jne 0x4a6037
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a609a
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 5
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc]
add eax, 3
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x18], 0
mov eax, dword [esi + 0x1c]
inc eax
mov dword [ecx + 0x1c], eax
mov dword [ecx], esi
mov esi, ecx
jmp 0x49bf00
mov eax, edi
sub eax, 1
je case.0x4a69ef.14
jmp case.default.0x4a5fe8
mov eax, dword [esi + 0x48]
shl eax, 2
push eax
push dword [esi + 0x44]
push dword [ebp + 0xc]
call fcn.004aa840
mov eax, dword [esi + 0x4c]
lea ecx, [esi + 0x3c]
mov dword [ebp + 0x90], eax
add esp, 0xc
mov eax, dword [ecx]
mov dword [ebp + 0xa4], eax
cmp edi, 1
je 0x4a977d
cmp edi, 0xfffffc19
je 0x4a977d
lea eax, [edi + 0x3e4]
cmp eax, 4
ja 0x4a614f
mov ecx, dword [esi + 0x44]
lea eax, [esi + 0xb0]
cmp ecx, eax
je case.0x4a69ef.14
push ecx
call dword [0xc5c79c]
add esp, 4
jmp case.0x4a69ef.14
test edi, edi
je 0x4a6173
mov ecx, dword [esi + 0x44]
lea eax, [esi + 0xb0]
cmp ecx, eax
je case.default.0x4a5fe8
push ecx
call dword [0xc5c79c]
add esp, 4
jmp case.default.0x4a5fe8
mov dword [ebp + 0xa4], ecx
mov edx, dword [esi + 0x20]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov dword [esi + 0x20], eax
cmp byte [eax], 0x77
jne 0x4a6214
cmp dword [esi + 0x58], 0
je 0x4a61a7
mov dword [ebp + 0x98], 2
mov edx, dword [esi + 4]
test edx, edx
jne 0x4a61d0
push 0x134
call dword [0xc5c7a0]
mov edx, eax
add esp, 4
test edx, edx
je 0x4a95a3
mov dword [edx + 4], 0
mov dword [esi + 4], edx
mov dword [esi + 0x130], 6
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
mov ecx, dword [esi + 0x20]
movzx eax, byte [ecx]
movzx eax, byte [eax + 0x558438]
add eax, ecx
mov dword [edx + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [edx + 0x14], eax
mov eax, dword [esi + 0x18]
mov dword [edx + 0x18], eax
mov eax, dword [esi + 0x1c]
inc eax
mov dword [edx + 0x1c], eax
mov dword [edx], esi
mov esi, edx
jmp 0x49bf00
mov eax, dword [esi + 0x3c]
mov dword [ebp + 0xa4], eax
jmp 0x4a612f
test edi, edi
jne case.default.0x4a5fe8
mov ecx, dword [esi + 0x34]
mov al, byte [ecx]
cmp al, 0x81
jne 0x4a6270
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a6258
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], edi
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 8
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x34]
jmp 0x4a6b9d
cmp al, 0x88
jb 0x4a97a8
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a62a1
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x32
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x34]
jmp 0x4a6b9d
test edi, edi
jne case.default.0x4a5fe8
mov edx, dword [esi + 0x2c]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esi + 0x2c], edx
cmp byte [edx], 0x77
je 0x4a62c4
lea eax, [edx + 3]
mov dword [esi + 0xc], eax
jmp 0x49bf83
test edi, edi
je case.0x49deb6.10
jmp case.default.0x4a5fe8
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x34]
mov dword [ebp + 0xb4], eax
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a9832
mov edi, 0xfffffc1b
jmp 0x4a5aec
cmp edi, 0xfffffc1b
jne 0x4a632d
mov eax, dword [ebp + 0xb4]
cmp eax, dword [esi + 0x34]
jmp 0x4a632f
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x34]
cmp byte [eax], 0x81
jne 0x4a7141
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a636a
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 9
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc]
add eax, 3
jmp 0x4a6b9d
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
push dword [esp + 0x30]
mov edi, dword [esi + 8]
push ebp
push dword [esi + 0x88]
push edi
push dword [esi + 0x98]
call fcn.0049bb70
add esp, 0x14
test eax, eax
jns 0x4a63f1
mov ecx, edi
cmp eax, 0xfffffffe
jne 0x4a63cf
mov edi, dword [ebp + 0x78]
mov ecx, edi
mov dword [esi + 8], edi
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a69ef.14
cmp edi, dword [ebp + 0x78]
jb case.0x4a69ef.14
cmp ecx, dword [ebp + 0x84]
jmp 0x49f97e
add eax, edi
mov dword [esi + 8], eax
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a6425
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0xe
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 8]
sub eax, dword [esi + 0x88]
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jb case.default.0x4a7d1c
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a647d
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0xf
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x4a64cd
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x4a69ef.14
cmp eax, dword [ebp + 0x84]
jbe case.0x4a69ef.14
jmp 0x49cf5f
movzx ecx, byte [eax]
inc eax
mov dword [esi + 8], eax
mov edi, ecx
mov edx, dword [esi + 0x28]
and ecx, 7
shr edi, 3
mov eax, 1
shl eax, cl
test byte [edi + edx], al
je case.0x4a69ef.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a651e
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x11
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
dec dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jb case.default.0x4a7d1c
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a656d
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x13
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x4a65bd
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x4a69ef.14
cmp eax, dword [ebp + 0x84]
jbe case.0x4a69ef.14
jmp 0x49cf5f
movzx ecx, byte [eax]
cmp dword [esi + 0x80], ecx
je 0x4a65d4
cmp dword [esi + 0x94], ecx
jne case.0x4a69ef.14
inc eax
mov dword [esi + 8], eax
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a6607
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x18
jmp 0x4a6b94
dec dword [esi + 8]
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
je 0x49bf10
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a6656
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x19
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x49f96a
movzx ecx, byte [edi]
lea eax, [edi + 1]
mov dword [esi + 8], eax
cmp dword [esi + 0x80], ecx
jne case.0x4a69ef.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a66cf
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1a
jmp 0x4a6b94
dec dword [esi + 8]
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
je 0x49bf10
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a671e
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1b
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x4a676e
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x4a69ef.14
cmp eax, dword [ebp + 0x84]
jbe case.0x4a69ef.14
jmp 0x49cf5f
movzx ecx, byte [eax]
cmp dword [esi + 0x80], ecx
je case.0x4a69ef.14
cmp dword [esi + 0x94], ecx
je case.0x4a69ef.14
inc eax
mov dword [esi + 8], eax
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a67bc
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1d
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
dec dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
je 0x49bf10
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a680b
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1f
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x49f96a
movzx ecx, byte [edi]
lea eax, [edi + 1]
mov dword [esi + 8], eax
cmp dword [esi + 0x80], ecx
je case.0x4a69ef.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a6884
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x21
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
dec dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
je 0x49bf10
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a68d3
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x23
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x78]
cmp ecx, edx
jb 0x4a691f
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a69ef.14
cmp ecx, dword [ebp + 0x84]
jmp 0x49f97e
cmp dword [esi + 0x7c], 0xc
jne 0x4a696e
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x4a6949
push ebx
lea eax, [ebp + 0x1c]
push eax
push edx
push edi
push ecx
call fcn.00506fd0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
je 0x4a696e
jmp case.0x4a69ef.14
mov edi, dword [ebp + 0x1c]
sub edx, edi
cmp ecx, edx
ja 0x4a696e
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x4a696e
cmp edi, 1
je case.0x4a69ef.14
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je case.0x4a69ef.14
mov eax, dword [esi + 8]
movzx ecx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 8], edx
mov eax, dword [esi + 0x7c]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x4a7c9a.15
jmp dword [eax*4 + 0x4aa488]
mov edi, dword [ebp + 0x88]
test edi, edi
je case.0x4a6989.13
cmp edx, dword [ebp + 0x78]
jb case.0x4a6989.13
cmp dword [ebp + 0x18], 0
jne case.0x4a6989.13
cmp dword [ebp + 0x1c], 2
jne case.0x4a6989.13
movzx eax, byte [ebp + 0x34]
cmp ecx, eax
jne case.0x4a6989.13
mov dword [ebp + 0x64], 1
cmp edi, 1
jle case.0x4a6989.13
jmp 0x4a9605
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.0x4a69ef.14
movzx eax, byte [ecx + 0x4aa4d8]
jmp dword [eax*4 + 0x4aa4c8]
cmp edx, dword [ebp + 0x78]
jae case.0x4a6989.13
cmp byte [edx], 0xa
jne case.0x4a6989.13
lea eax, [edx + 1]
mov dword [esi + 8], eax
jmp case.0x4a6989.13
cmp dword [ebp + 0x68], 0
je case.0x4a6989.13
jmp case.0x4a69ef.14
cmp ecx, 9
je case.0x4a69ef.14
cmp ecx, 0x20
je case.0x4a69ef.14
cmp ecx, 0xa0
jne case.0x4a6989.13
jmp case.0x4a69ef.14
cmp ecx, 9
je case.0x4a6989.13
cmp ecx, 0x20
je case.0x4a6989.13
cmp ecx, 0xa0
je case.0x4a6989.13
jmp case.0x4a69ef.14
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.0x4a6989.13
movzx eax, byte [ecx + 0x4aa55c]
jmp dword [eax*4 + 0x4aa554]
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.0x4a69ef.14
movzx eax, byte [ecx + 0x4aa5e0]
jmp dword [eax*4 + 0x4aa5d8]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
je case.0x4a6989.13
jmp case.0x4a69ef.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
jne case.0x4a6989.13
jmp case.0x4a69ef.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
je case.0x4a6989.13
jmp case.0x4a69ef.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
jne case.0x4a6989.13
jmp case.0x4a69ef.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
je case.0x4a6989.13
jmp case.0x4a69ef.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
je case.0x4a69ef.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a6b1e
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x2b
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 8]
dec eax
mov dword [esi + 8], eax
cmp dword [esi + 0x7c], 0x11
jne 0x4a6b55
cmp eax, dword [esi + 0x30]
jbe 0x4a6b55
cmp byte [eax], 0xa
jne 0x4a6b55
dec eax
cmp byte [eax], 0xd
jne 0x4a6b55
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
je 0x49bf10
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a6b8a
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x2f
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [ecx + 0x14], eax
mov eax, dword [esi + 0x18]
mov dword [ecx + 0x18], eax
mov eax, dword [esi + 0x1c]
inc eax
mov dword [ecx + 0x1c], eax
mov dword [ecx], esi
mov esi, ecx
jmp 0x49bf00
cmp edi, 0xfffffc1a
jne 0x4a6c21
mov eax, dword [ebp + 0x8c]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x78]
add eax, dword [ebp + 0x70]
mov dword [esi + 0xc], eax
mov dword [esi + 0x5c], 1
mov eax, dword [ebp + 0x7c]
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0x80]
cmp dword [esi + 8], eax
jne 0x4a6c19
mov edx, dword [esi + 0xc]
jmp 0x4a6c00
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esi + 0xc], edx
cmp byte [edx], 0x77
je 0x4a6c00
jmp 0x4a6c76
mov dword [esi + 8], eax
jmp 0x4a6c9b
cmp edi, 0xfffffc20
jne 0x4a6c54
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add ecx, edx
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae case.default.0x4a5fe8
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x4a6c5c
cmp byte [ecx], 0x77
jmp 0x4a6c56
test edi, edi
jne case.default.0x4a5fe8
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esi + 0xc], edx
cmp byte [edx], 0x77
je 0x4a6c8f
cmp dword [esi + 0x5c], 0
jne 0x4a62db
cmp dword [esi + 0x54], 0
jne 0x4a62db
jmp case.0x4a69ef.14
mov eax, dword [esi + 0xa0]
mov dword [ebp + 0x90], eax
cmp dword [esi + 0x9c], 0x88
jb 0x4a6cb1
mov dword [ebp + 0x98], 2
mov edx, dword [esi + 4]
test edx, edx
jne 0x4a6cda
push 0x134
call dword [0xc5c7a0]
mov edx, eax
add esp, 4
test edx, edx
je 0x4a95a3
mov dword [edx + 4], 0
mov dword [esi + 4], edx
mov dword [esi + 0x130], 0x30
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
mov ecx, dword [esi + 0xc]
jmp 0x4a61e3
mov eax, dword [esi]
mov esi, eax
test edi, edi
je 0x4a6de7
jmp 0x4a5c19
mov eax, dword [esi]
mov esi, eax
test edi, edi
jne 0x4a5c19
test eax, eax
je 0x4a9842
mov edi, 0xfffffc1c
jmp 0x4a5aec
test edi, edi
je 0x4a6d9d
jmp case.default.0x4a5fe8
cmp edi, 1
je 0x4a6d3b
cmp edi, 0xfffffc19
jne 0x4a6d55
cmp dword [ebp + 0xac], 0
jne 0x4a6d55
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0xac], eax
jmp case.default.0x4a5fe8
cmp edi, 0xfffffc1f
jne case.default.0x4a5fe8
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp + 0x7c]
add eax, 2
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4a6d90
test dl, dl
je 0x4a6d8c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4a6d90
add eax, 2
add ecx, 2
test dl, dl
jne 0x4a6d70
xor eax, eax
jmp 0x4a6d95
sbb eax, eax
or eax, 1
test eax, eax
jne case.default.0x4a5fe8
mov eax, dword [esi + 8]
mov dword [ebp + 0x7c], eax
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a9852
mov edi, 0xfffffc1e
jmp 0x4a5aec
cmp edi, 1
je 0x4a6dc6
cmp edi, 0xfffffc19
jne 0x4a6ddb
cmp dword [ebp + 0xac], 0
jne 0x4a6ddb
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0xac], eax
mov eax, dword [esi]
mov esi, eax
test edi, edi
jne 0x4a5c19
test eax, eax
je 0x4a9862
mov edi, 0xfffffc1d
jmp 0x4a5aec
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0x7c], eax
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a9872
mov edi, 0xfffffc1f
jmp 0x4a5aec
cmp edi, 1
je 0x4a6e2d
cmp edi, 0xfffffc19
jne case.0x4a5afc.54
cmp dword [ebp + 0xac], 0
jne case.0x4a5afc.54
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0xac], eax
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0xc]
mov dword [ebp + 0x7c], eax
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a9882
mov edi, 0xfffffc20
jmp 0x4a5aec
cmp edi, 0xfffffc1a
jne 0x4a6ed4
mov eax, dword [ebp + 0x8c]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x78]
add eax, dword [ebp + 0x70]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x90]
mov dword [esi + 0xa0], eax
mov dword [esi + 0x5c], 1
mov eax, dword [ebp + 0x7c]
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0x80]
cmp dword [esi + 8], eax
jne 0x4a6ecc
mov edx, dword [esi + 0xc]
jmp 0x4a6eb0
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esi + 0xc], edx
cmp byte [edx], 0x77
je 0x4a6eb0
jmp 0x4a6f39
mov dword [esi + 8], eax
jmp 0x49cb32
cmp edi, 0xfffffc20
jne 0x4a6f07
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add ecx, edx
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae case.default.0x4a5fe8
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x4a6f0f
cmp byte [ecx], 0x77
jmp 0x4a6f09
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0xa0]
mov dword [ebp + 0x90], eax
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov dword [esi + 0xc], eax
cmp byte [eax], 0x77
je 0x49cb32
cmp dword [esi + 0x5c], 0
jne 0x4a6f79
mov edx, dword [esi + 0x98]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0xa4]
mov dword [ecx + edx*4], eax
mov edx, dword [esi + 0x98]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0xa8]
mov dword [ecx + edx*4 + 4], eax
mov edx, dword [ebp + 0x10]
sub edx, dword [esi + 0x94]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0xac]
mov dword [ecx + edx*4], eax
cmp dword [esi + 0x54], 0
jne 0x49c5ea
cmp dword [esi + 0x5c], 0
jne 0x49c5ea
jmp case.0x4a69ef.14
cmp edi, 1
jne 0x4a703f
mov eax, dword [ebp + 0x7c]
mov dword [esi + 0x10], eax
mov edx, dword [esi + 0xc]
mov al, byte [edx]
cmp al, 0x82
je 0x4a6fb2
cmp al, 0x77
jne case.0x4a69ef.14
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov edx, eax
mov dword [esi + 0xc], eax
cmp byte [edx], 0x77
je 0x4a6fb2
mov eax, dword [ebp + 0x8c]
mov dword [esi + 0x14], eax
mov ecx, dword [ebp + 0x80]
mov dword [esi + 8], ecx
mov edi, dword [esi + 0xc]
mov al, byte [edi]
cmp al, 0x78
je 0x49e6f2
cmp ecx, dword [esi + 0x38]
je 0x49e6f2
mov ecx, dword [esi + 4]
cmp al, 0x7a
jne 0x4a70e8
test ecx, ecx
jne 0x4a7024
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x41
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc]
add eax, 3
jmp 0x4a6b9d
cmp edi, 0xfffffc20
jne 0x4a7072
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add ecx, edx
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae case.default.0x4a5fe8
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x4a707a
cmp byte [ecx], 0x77
jmp 0x4a7074
test edi, edi
jne case.default.0x4a5fe8
mov ecx, dword [esi + 0xc]
movzx edx, byte [ecx + 1]
movzx eax, byte [ecx + 2]
shl edx, 8
or edx, eax
add edx, ecx
mov dword [esi + 0xc], edx
mov eax, dword [esi + 0x28]
mov dword [ebp + 0xac], eax
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
jne 0x4a6fa1
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a70cd
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x40
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc]
add eax, 3
jmp 0x4a6b9d
test ecx, ecx
jne 0x4a710e
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x42
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x34]
jmp 0x4a6b9d
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x34]
mov dword [esi + 0xc], eax
jmp 0x49bf10
test edi, edi
jne case.default.0x4a5fe8
add dword [esi + 0xc], 3
jmp 0x49bf10
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x49f96a
movzx edx, byte [edi]
inc edi
mov dword [esi + 8], edi
test ebx, ebx
je 0x4a7256
cmp edx, 0xc0
jb 0x4a7256
test dl, 0x20
jne 0x4a71a6
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x4a7253
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x4a71cd
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x4a7253
test dl, 8
jne 0x4a71f0
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x4a7253
test dl, 4
jne 0x4a721f
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
jmp 0x4a7253
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
push ebx
push dword [esi + 0x28]
push edx
call fcn.00507640
add esp, 0xc
test eax, eax
je case.0x4a69ef.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a729a
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x14
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov ecx, dword [esi + 8]
lea edx, [ecx - 1]
mov dword [esi + 8], edx
cmp ecx, dword [esi + 0x30]
jbe case.0x4a69ef.14
test ebx, ebx
je 0x4a72dc
mov al, byte [edx]
and al, 0xc0
cmp al, 0x80
jne 0x4a72dc
nop
dec edx
mov dword [esi + 8], edx
mov al, byte [edx]
and al, 0xc0
cmp al, 0x80
je 0x4a72d0
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a7305
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x15
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jb 0x4a734f
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a69ef.14
cmp ecx, dword [ebp + 0x84]
jmp 0x49f97e
movzx ebx, byte [ecx]
inc ecx
mov dword [esi + 8], ecx
mov edi, ebx
mov eax, ebx
cmp ebx, 0xc0
jb 0x4a7447
movzx eax, byte [ecx]
and eax, 0x3f
test bl, 0x20
jne 0x4a7381
and ebx, 0x1f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 1]
jmp 0x4a7440
test bl, 0x10
jne 0x4a73a2
and ebx, 0xf
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 2]
jmp 0x4a7440
test bl, 8
jne 0x4a73cf
and ebx, 7
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 3]
jmp 0x4a7440
test bl, 4
jne 0x4a7405
and ebx, 3
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 4]
jmp 0x4a7440
and ebx, 1
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 5]
mov dword [esi + 8], eax
mov edi, ebx
mov eax, ebx
cmp eax, 0xff
jbe 0x4a746e
cmp dword [esi + 0x9c], 0x6e
jne 0x4a7485
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a98b2
mov ebx, dword [esp + 0x28]
xor edi, edi
jmp 0x4a5aec
mov edx, dword [esi + 0x28]
and edi, 7
shr ebx, 3
mov eax, 1
mov ecx, edi
shl eax, cl
test byte [ebx + edx], al
jmp 0x4a7455
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a74b4
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x10
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov ecx, dword [esi + 8]
lea edx, [ecx - 1]
mov dword [esi + 8], edx
cmp ecx, dword [esi + 0x30]
jbe case.default.0x4a7d1c
mov al, byte [edx]
and al, 0xc0
cmp al, 0x80
jne 0x4a74f1
dec edx
mov dword [esi + 8], edx
mov al, byte [edx]
and al, 0xc0
cmp al, 0x80
je 0x4a74e5
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a751a
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x12
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov ecx, dword [ebp + 0x78]
mov eax, ecx
mov edi, dword [esi + 0x88]
sub eax, edi
mov ebx, dword [esi + 8]
cmp ebx, eax
ja 0x4a75af
mov edx, dword [esi + 0x24]
mov ecx, ebx
sub edi, 4
jb 0x4a7572
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4a7577
add ecx, 4
add edx, 4
sub edi, 4
jae 0x4a7561
cmp edi, 0xfffffffc
je 0x4a75a4
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4a75ac
cmp edi, 0xfffffffd
je 0x4a75a4
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4a75ac
cmp edi, 0xfffffffe
je 0x4a75a4
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4a75ac
cmp edi, 0xffffffff
je 0x4a75a4
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4a75ac
mov eax, dword [esi + 0x88]
jmp 0x4a761a
mov ecx, dword [ebp + 0x78]
mov edi, dword [esi + 0x6c]
test edi, edi
jle 0x4a765d
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x4a765d
lea edx, [esi + 0x70]
mov ecx, ebx
sub edi, 4
jb 0x4a75e1
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4a75e6
add ecx, 4
add edx, 4
sub edi, 4
jae 0x4a75d0
cmp edi, 0xfffffffc
je 0x4a7617
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4a765d
cmp edi, 0xfffffffd
je 0x4a7617
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4a765d
cmp edi, 0xfffffffe
je 0x4a7617
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4a765d
cmp edi, 0xffffffff
je 0x4a7617
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4a765d
mov eax, dword [esi + 0x6c]
add eax, ebx
mov dword [esi + 8], eax
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a764e
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x16
jmp 0x4a6b94
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x4a7d1c
cmp ebx, dword [ebp + 0x78]
jb case.default.0x4a7d1c
cmp ebx, dword [ebp + 0x84]
jbe case.default.0x4a7d1c
mov dword [ebp + 0x64], 1
cmp eax, 1
jle case.default.0x4a7d1c
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a98a2
mov ebx, dword [esp + 0x28]
mov edi, 0xfffffff4
jmp 0x4a5aec
test edi, edi
jne case.default.0x4a5fe8
mov ecx, dword [esi + 8]
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x4a76cd
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x4a76c1
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x49bf10
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a7702
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x17
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x49f96a
movzx edx, byte [edi]
inc edi
mov dword [esi + 8], edi
mov eax, edx
cmp edx, 0xc0
jb 0x4a7832
test dl, 0x20
jne 0x4a776c
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
mov dword [esi + 8], eax
mov eax, edx
jmp 0x4a7832
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x4a7798
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
mov dword [esi + 8], eax
mov eax, edx
jmp 0x4a7832
test dl, 8
jne 0x4a77c3
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
mov dword [esi + 8], eax
mov eax, edx
jmp 0x4a7832
test dl, 4
jne 0x4a77f7
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
mov dword [esi + 8], eax
mov eax, edx
jmp 0x4a7832
and edx, 1
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov edx, ecx
mov eax, ecx
cmp dword [esi + 0x80], edx
je case.0x4a69ef.14
cmp dword [esi + 0x94], eax
je case.0x4a69ef.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a7879
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1c
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov ecx, dword [esi + 8]
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x4a78ac
nop
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x4a78a0
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x49bf10
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a78e1
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1e
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x4a7931
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x4a69ef.14
cmp eax, dword [ebp + 0x84]
jbe case.0x4a69ef.14
jmp 0x49cf5f
movzx ebx, byte [eax]
inc eax
mov dword [esp + 0x10], ebx
mov dword [esi + 8], eax
cmp ebx, 0xc0
jb 0x4a7a39
mov cl, byte [eax]
test bl, 0x20
jne 0x4a795e
inc eax
and ebx, 0x1f
mov dword [esi + 8], eax
movzx eax, cl
jmp 0x4a7a31
mov dl, byte [eax + 1]
test bl, 0x10
jne 0x4a7982
add eax, 2
movzx ecx, cl
and ebx, 0xf
mov dword [esi + 8], eax
and ecx, 0x3f
shl ebx, 6
or ebx, ecx
movzx eax, dl
jmp 0x4a7a31
test bl, 8
jne 0x4a79bd
mov bl, byte [eax + 2]
add eax, 3
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
movzx ecx, cl
and eax, 7
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx ebx, bl
shl ecx, 6
and ebx, 0x3f
movzx eax, dl
and eax, 0x3f
or ecx, eax
shl ecx, 6
or ebx, ecx
jmp 0x4a7a39
mov ch, byte [eax + 3]
movzx edi, cl
and edi, 0x3f
test bl, 4
mov bl, byte [eax + 2]
movzx ebx, bl
jne 0x4a79fb
add eax, 4
and ebx, 0x3f
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
and eax, 3
shl eax, 6
or edi, eax
movzx eax, dl
shl edi, 6
and eax, 0x3f
or edi, eax
movzx eax, ch
shl edi, 6
or ebx, edi
jmp 0x4a7a31
mov dh, byte [eax + 4]
and ebx, 0x3f
add eax, 5
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
and eax, 1
shl eax, 6
or edi, eax
movzx eax, dl
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, ch
shl edi, 6
and eax, 0x3f
or ebx, edi
shl ebx, 6
or ebx, eax
movzx eax, dh
and eax, 0x3f
shl ebx, 6
or ebx, eax
cmp dword [esi + 0x80], ebx
je case.default.0x4a7d1c
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a7a74
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x20
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov ecx, dword [esi + 8]
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x4a7aac
lea ebx, [ebx]
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x4a7aa0
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x49bf10
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a7ae1
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x22
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x78]
cmp ecx, edx
jb 0x4a7b2d
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a69ef.14
cmp ecx, dword [ebp + 0x84]
jmp 0x49f97e
cmp dword [esi + 0x7c], 0xc
jne 0x4a7b7c
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x4a7b57
push ebx
lea eax, [ebp + 0x1c]
push eax
push edx
push edi
push ecx
call fcn.00506fd0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
je 0x4a7b7c
jmp case.0x4a69ef.14
mov edi, dword [ebp + 0x1c]
sub edx, edi
cmp ecx, edx
ja 0x4a7b7c
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x4a7b7c
cmp edi, 1
je case.0x4a69ef.14
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je case.0x4a69ef.14
mov eax, dword [esi + 8]
movzx edx, byte [eax]
lea edi, [eax + 1]
mov dword [esi + 8], edi
mov ecx, edx
mov dword [esp + 0x10], edi
mov ebx, edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
cmp edx, 0xc0
jb 0x4a7c8b
movzx ecx, byte [edi]
and ecx, 0x3f
test dl, 0x20
jne 0x4a7bc9
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
or edx, eax
inc edi
jmp 0x4a7c70
movzx eax, byte [edi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x4a7bea
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add edi, 2
jmp 0x4a7c70
test dl, 8
jne 0x4a7c0d
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add edi, 3
jmp 0x4a7c70
test dl, 4
jne 0x4a7c3c
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [edi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add edi, 4
jmp 0x4a7c70
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [edi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [edi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add edi, 5
mov ecx, edx
mov dword [esi + 8], edi
mov dword [esp + 0x10], edi
mov ebx, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 0x7c]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x4a7c9a.15
jmp dword [eax*4 + 0x4aa65c]
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x4a7c9a.13
mov eax, dword [esp + 0x10]
cmp eax, dword [ebp + 0x78]
jb case.0x4a7c9a.13
cmp dword [ebp + 0x18], 0
jne case.0x4a7c9a.13
cmp dword [ebp + 0x1c], 2
jne case.0x4a7c9a.13
movzx eax, byte [ebp + 0x34]
cmp edx, eax
jne case.0x4a7c9a.13
mov dword [ebp + 0x64], 1
cmp ecx, 1
jle case.0x4a7c9a.13
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a98a2
mov ebx, dword [esp + 0x28]
mov edi, 0xfffffff4
jmp 0x4a5aec
cmp edx, 0x85
ja 0x4a7d35
je case.0x4a7d1c.11
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x4a7d1c
jmp dword [edx*4 + 0x4aa69c]
cmp edi, dword [ebp + 0x78]
jae case.0x4a7c9a.13
cmp byte [edi], 0xa
jne case.0x4a7c9a.13
lea eax, [edi + 1]
mov dword [esi + 8], eax
jmp case.0x4a7c9a.13
sub edx, 0x2028
je case.0x4a7d1c.11
sub edx, 1
jne case.default.0x4a7d1c
cmp dword [ebp + 0x68], 0
je case.0x4a7c9a.13
jmp case.default.0x4a7d1c
cmp edx, 0x2000
ja 0x4a7dd5
je case.default.0x4a7d1c
cmp edx, 0xa0
ja 0x4a7dc1
je case.default.0x4a7d1c
cmp edx, 9
je case.default.0x4a7d1c
cmp edx, 0x20
je case.default.0x4a7d1c
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a7db2
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x2a
jmp 0x4a6b94
cmp edx, 0x1680
je case.default.0x4a7d1c
cmp edx, 0x180e
jmp 0x4a7d7d
cmp edx, 0x3000
ja case.0x4a7c9a.13
je case.default.0x4a7d1c
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x4a7c9a.13
movzx eax, byte [edx + 0x4aa6b4]
jmp dword [eax*4 + 0x4aa6ac]
cmp edx, 0x2000
ja 0x4a7e4c
je case.0x4a7c9a.13
cmp edx, 0xa0
ja 0x4a7e2f
je case.0x4a7c9a.13
cmp edx, 9
je case.0x4a7c9a.13
cmp edx, 0x20
je case.0x4a7c9a.13
jmp case.default.0x4a7d1c
cmp edx, 0x1680
je case.0x4a7c9a.13
cmp edx, 0x180e
je case.0x4a7c9a.13
jmp case.default.0x4a7d1c
cmp edx, 0x3000
ja case.default.0x4a7d1c
je case.0x4a7c9a.13
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.default.0x4a7d1c
movzx eax, byte [edx + 0x4aa71c]
jmp dword [eax*4 + 0x4aa714]
cmp edx, 0x85
ja 0x4a7e9c
je case.default.0x4a7d1c
add edx, 0xfffffff6
cmp edx, 3
ja case.0x4a7c9a.13
jmp dword [edx*4 + 0x4aa77c]
sub edx, 0x2028
je case.default.0x4a7d1c
sub edx, 1
jne case.0x4a7c9a.13
jmp case.default.0x4a7d1c
cmp edx, 0x85
ja 0x4a7ed7
je case.0x4a7c9a.13
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x4a7d1c
jmp dword [edx*4 + 0x4aa78c]
sub edx, 0x2028
je case.0x4a7c9a.13
sub edx, 1
je case.0x4a7c9a.13
jmp case.default.0x4a7d1c
cmp ecx, 0x100
jae case.0x4a7c9a.13
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
je case.0x4a7c9a.13
jmp case.default.0x4a7d1c
cmp ebx, 0x100
jae case.default.0x4a7d1c
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
jne case.0x4a7c9a.13
jmp case.default.0x4a7d1c
cmp dword [esp + 0x18], 0x100
jae case.0x4a7c9a.13
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
je case.0x4a7c9a.13
jmp case.default.0x4a7d1c
cmp dword [esp + 0x14], 0x100
jae case.default.0x4a7d1c
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
jne case.0x4a7c9a.13
jmp case.default.0x4a7d1c
cmp dword [esp + 0x1c], 0x100
jae case.0x4a7c9a.13
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
je case.0x4a7c9a.13
jmp case.default.0x4a7d1c
cmp dword [esp + 0x20], 0x100
jae case.default.0x4a7d1c
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
jne case.0x4a7c9a.13
jmp case.default.0x4a7d1c
mov eax, dword [esi]
mov esi, eax
test eax, eax
je case.default.0x4a5afc
mov edi, 0xfffffff2
jmp 0x4a5ae8
test edi, edi
jne case.default.0x4a5fe8
mov ecx, dword [esi + 8]
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x4a7fec
lea ebx, [ebx]
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x4a7fe0
cmp dword [esi + 0x7c], 0x11
jne 0x4a8005
cmp ecx, dword [esi + 0x30]
jbe 0x4a8005
cmp byte [ecx], 0xa
jne 0x4a8005
dec ecx
cmp byte [ecx], 0xd
jne 0x4a8005
mov dword [esi + 8], ecx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x49bf10
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a803a
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x2e
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x4a808a
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x4a69ef.14
cmp eax, dword [ebp + 0x84]
jbe case.0x4a69ef.14
jmp 0x49cf5f
movzx ecx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 8], edx
test ebx, ebx
je 0x4a80cd
cmp ecx, 0xc0
jb 0x4a80cd
test cl, 0x20
jne 0x4a80a9
lea eax, [edx + 1]
jmp 0x4a80ca
test cl, 0x10
jne 0x4a80b3
add eax, 3
jmp 0x4a80ca
test cl, 8
jne 0x4a80bd
add eax, 4
jmp 0x4a80ca
test cl, 4
jne 0x4a80c7
add eax, 5
jmp 0x4a80ca
add eax, 6
mov dword [esi + 8], eax
cmp dword [esi + 0x68], 0
jne case.0x4a69ef.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a8106
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x24
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x4a8150
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a69ef.14
cmp edx, dword [ebp + 0x84]
jmp 0x49f97e
movzx eax, byte [edx]
inc edx
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
test ebx, ebx
je 0x4a824f
cmp eax, 0xc0
jb 0x4a824f
test al, 0x20
jne 0x4a8188
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x4a824a
movzx ecx, byte [edx]
and ecx, 0x3f
test al, 0x10
jne 0x4a81ae
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x4a824a
test al, 8
jne 0x4a81da
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4a824a
test al, 4
jne 0x4a820f
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4a824a
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
cmp eax, 9
je 0x4a8284
cmp eax, 5
je 0x4a8284
cmp eax, 8
je 0x4a8284
xor eax, eax
jmp 0x4a8289
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.0x4a69ef.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a82c1
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x25
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x4a830b
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a69ef.14
cmp edx, dword [ebp + 0x84]
jmp 0x49f97e
movzx eax, byte [edx]
inc edx
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
test ebx, ebx
je 0x4a841a
cmp eax, 0xc0
jb 0x4a841a
test al, 0x20
jne 0x4a8343
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x4a8415
test al, 0x10
jne 0x4a836b
mov ecx, eax
movzx eax, byte [edx]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x4a8415
test al, 8
jne 0x4a839f
mov ecx, eax
movzx eax, byte [edx]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4a8415
movzx ecx, byte [edx]
and ecx, 0x3f
test al, 4
jne 0x4a83da
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4a8415
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
mov eax, dword [eax*4 + 0x558550]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je case.0x4a69ef.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a8483
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x26
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x4a84cd
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a69ef.14
cmp edx, dword [ebp + 0x84]
jmp 0x49f97e
movzx eax, byte [edx]
inc edx
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
test ebx, ebx
je 0x4a85db
cmp eax, 0xc0
jb 0x4a85db
test al, 0x20
jne 0x4a8505
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x4a85d6
test al, 0x10
jne 0x4a852b
movzx eax, byte [edx]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x4a85d6
test al, 8
jne 0x4a855d
movzx eax, byte [edx]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4a85d6
test al, 4
movzx eax, byte [edx]
jne 0x4a8598
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4a85d6
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je case.0x4a69ef.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a863d
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x27
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x4a8687
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a69ef.14
cmp edx, dword [ebp + 0x84]
jmp 0x49f97e
movzx eax, byte [edx]
inc edx
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
test ebx, ebx
je 0x4a8795
cmp eax, 0xc0
jb 0x4a8795
test al, 0x20
jne 0x4a86bf
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x4a8790
test al, 0x10
jne 0x4a86e5
movzx eax, byte [edx]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x4a8790
test al, 8
jne 0x4a8717
movzx eax, byte [edx]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4a8790
test al, 4
movzx eax, byte [edx]
jne 0x4a8752
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4a8790
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b80]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je case.0x4a69ef.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a87f7
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x28
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x4a8841
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a69ef.14
cmp edx, dword [ebp + 0x84]
jmp 0x49f97e
movzx eax, byte [edx]
inc edx
cmp dword [esp + 0x28], 0
mov ecx, eax
mov dword [esi + 8], edx
mov ebx, eax
mov edi, edx
mov dword [esp + 0x10], edx
je 0x4a893e
mov dword [esp + 0x10], edx
cmp eax, 0xc0
jb 0x4a893e
test al, 0x20
jne 0x4a887e
movzx eax, byte [edx]
lea edi, [edx + 1]
and ecx, 0x1f
jmp 0x4a892d
test al, 0x10
jne 0x4a889e
mov ecx, eax
lea edi, [edx + 2]
movzx eax, byte [edx]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
jmp 0x4a892d
test al, 8
jne 0x4a88c7
mov ecx, eax
lea edi, [edx + 3]
movzx eax, byte [edx]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
jmp 0x4a892d
movzx ecx, byte [edx]
and ecx, 0x3f
test al, 4
jne 0x4a88fa
and eax, 3
lea edi, [edx + 4]
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x4a892d
and eax, 1
lea edi, [edx + 5]
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov dword [esi + 8], edi
mov ebx, ecx
mov dword [esp + 0x10], edi
mov edx, dword [ebp + 0x78]
and ebx, 0x7f
shr ecx, 7
movzx eax, byte [ecx + 0x55a200]
shl eax, 7
add eax, ebx
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b82]
mov dword [esp + 0x18], eax
cmp dword [esp + 0x10], edx
jae 0x4a8ab5
mov dword [esp + 0x10], edx
jmp 0x4a8980
cmp dword [esp + 0x28], 0
mov ebx, 1
movzx edx, byte [edi]
mov ecx, edx
je 0x4a8a5c
cmp edx, 0xc0
jb 0x4a8a5c
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a89c1
mov eax, edx
mov ebx, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x4a8a58
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x4a89dc
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x4a8a52
and eax, 0x3f
test dl, 8
jne 0x4a89fc
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a8a52
test dl, 4
jne 0x4a8a25
and edx, 3
mov ebx, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a8a52
and edx, ebx
mov ebx, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov ebp, dword [esp + 0x18]
and ecx, 0x7f
shr edx, 7
movzx eax, byte [edx + 0x55a200]
mov edx, dword [esp + 0x10]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x55c400]
movzx ecx, byte [eax*8 + 0x558b82]
mov eax, 1
shl eax, cl
test dword [ebp*4 + 0x5585c8], eax
mov ebp, dword [esp + 0xb0]
je 0x4a8ab5
add edi, ebx
mov dword [esp + 0x18], ecx
mov dword [esi + 8], edi
mov edx, dword [ebp + 0x78]
mov dword [esp + 0x10], edx
cmp edi, edx
jb 0x4a8980
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je 0x4a8af4
mov eax, dword [esi + 8]
cmp eax, edx
jb 0x4a8af4
cmp eax, dword [ebp + 0x84]
jbe 0x4a8af4
mov dword [ebp + 0x64], 1
cmp ecx, 1
jle 0x4a8af4
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a98a2
mov ebx, dword [esp + 0x28]
mov edi, 0xfffffff4
jmp 0x4a5aec
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a8b23
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x29
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov ecx, dword [esi + 8]
dec ecx
mov dword [esi + 8], ecx
test ebx, ebx
je 0x4a8b5c
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x4a8b5c
lea ecx, [ecx]
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x4a8b50
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x49bf10
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a8b91
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x2c
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov edi, dword [esi + 8]
dec edi
mov dword [esi + 8], edi
test ebx, ebx
jne 0x4a8bbb
movzx edx, byte [edi]
jmp 0x4a8c81
mov al, byte [edi]
and al, 0xc0
cmp al, 0x80
jne 0x4a8bcf
dec edi
mov dword [esi + 8], edi
mov al, byte [edi]
and al, 0xc0
cmp al, 0x80
je 0x4a8bc3
mov edi, dword [esi + 8]
movzx edx, byte [edi]
mov ecx, edx
cmp edx, 0xc0
jb 0x4a8c83
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a8bfe
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
jmp 0x4a8c7f
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x4a8c11
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x4a8c79
and eax, 0x3f
test dl, 8
jne 0x4a8c2c
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a8c79
test dl, 4
jne 0x4a8c50
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a8c79
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
shr edx, 7
and ecx, 0x7f
movzx eax, byte [edx + 0x55a200]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x55c400]
movzx ebx, byte [eax*8 + 0x558b82]
mov eax, edi
cmp eax, dword [esi + 0x30]
jbe 0x49bf10
cmp dword [esp + 0x28], 0
lea edx, [edi - 1]
mov edi, edx
jne 0x4a8cc4
movzx edx, byte [edi]
jmp 0x4a8d8f
mov cl, byte [edi]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x4a8ce0
mov edi, edi
mov al, byte [edx - 1]
lea edi, [edx - 1]
mov cl, al
mov edx, edi
and al, 0xc0
cmp al, 0x80
je 0x4a8cd0
movzx edx, cl
mov ecx, edx
cmp edx, 0xc0
jb 0x4a8d91
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x4a8d0c
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
jmp 0x4a8d8d
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x4a8d1f
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x4a8d87
and eax, 0x3f
test dl, 8
jne 0x4a8d3a
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x4a8d87
test dl, 4
jne 0x4a8d5e
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x4a8d87
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
shr edx, 7
and ecx, 0x7f
movzx eax, byte [edx + 0x55a200]
shl eax, 7
add eax, ecx
mov ecx, ebx
movzx eax, word [eax*2 + 0x55c400]
movzx edx, byte [eax*8 + 0x558b82]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x5585c8], eax
je 0x4a4778
mov dword [esi + 8], edi
mov ebx, edx
jmp 0x4a8ca5
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x4a8e0e
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a69ef.14
cmp edx, dword [ebp + 0x84]
jmp 0x49f97e
movzx eax, byte [edx]
inc edx
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
test ebx, ebx
je 0x4a8f1e
cmp eax, 0xc0
jb 0x4a8f1e
test al, 0x20
jne 0x4a8e46
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x4a8f19
test al, 0x10
jne 0x4a8e6c
movzx ecx, byte [edx]
and eax, 0xf
shl eax, 6
and ecx, 0x3f
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x4a8f19
test al, 8
jne 0x4a8e9e
movzx ecx, byte [edx]
and eax, 7
shl eax, 6
and ecx, 0x3f
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4a8f19
mov ecx, eax
test al, 4
movzx eax, byte [edx]
jne 0x4a8edb
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4a8f19
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
mov eax, dword [eax*4 + 0x558550]
cmp eax, 1
je 0x4a8f55
cmp eax, 3
je 0x4a8f55
xor eax, eax
jmp 0x4a8f5a
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.0x4a69ef.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a8f92
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x3b
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x49f96a
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x28], 0
mov ecx, edx
mov dword [esi + 8], edi
mov eax, edx
mov ebx, edx
mov dword [esp + 0x10], edx
je 0x4a90f3
mov dword [esp + 0x10], edx
cmp edx, 0xc0
jb 0x4a90f3
movzx ecx, byte [edi]
and ecx, 0x3f
test dl, 0x20
jne 0x4a901b
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
lea eax, [edi + 1]
mov ecx, edx
mov dword [esi + 8], eax
mov eax, ecx
mov ebx, ecx
mov edi, ecx
jmp 0x4a90f7
movzx eax, byte [edi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x4a9047
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
mov ecx, edx
mov dword [esi + 8], eax
mov eax, ecx
mov ebx, ecx
mov edi, ecx
jmp 0x4a90f7
test dl, 8
jne 0x4a9078
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
mov ecx, edx
mov dword [esi + 8], eax
mov eax, ecx
mov ebx, ecx
mov edi, ecx
jmp 0x4a90f7
test dl, 4
jne 0x4a90b2
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
mov ecx, edx
mov dword [esi + 8], eax
mov eax, ecx
mov ebx, ecx
mov edi, ecx
jmp 0x4a90f7
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov ecx, edx
mov dword [esi + 8], eax
mov eax, ecx
mov ebx, ecx
mov edi, ecx
jmp 0x4a90f7
mov edi, dword [esp + 0x10]
cmp ecx, 0x24
je 0x4a9122
cmp eax, 0x40
je 0x4a9122
cmp ebx, 0x60
je 0x4a9122
cmp edi, 0xa0
jb 0x4a9116
cmp edx, 0xd7ff
jbe 0x4a9122
cmp edx, 0xe000
jae 0x4a9122
xor eax, eax
jmp 0x4a9127
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.default.0x4a7d1c
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a915f
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x3c
jmp 0x4a6b94
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x49f96a
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x28], 0
mov eax, edx
mov dword [esi + 8], edi
mov ecx, edx
mov dword [esp + 0x10], edx
mov ebx, edx
mov dword [esp + 0x18], edx
je 0x4a92a1
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], edx
cmp edx, 0xc0
jb 0x4a92a1
test dl, 0x20
jne 0x4a91e3
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x4a9290
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x4a920a
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x4a9290
test dl, 8
jne 0x4a922d
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x4a9290
test dl, 4
jne 0x4a925c
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
jmp 0x4a9290
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov ecx, edx
mov dword [esp + 0x10], edx
mov eax, edx
mov ebx, edx
mov dword [esp + 0x18], edx
cmp dword [esp + 0x10], 0x20
mov edi, edx
ja 0x4a92c2
cmp eax, 0x20
je case.0x4a93c8.8193
lea eax, [edx - 9]
cmp eax, 4
ja case.0x4a93c8.8203
jmp dword [eax*4 + 0x4aa79c]
cmp edx, 0x2000
ja 0x4a939c
cmp ecx, 0x2000
je case.0x4a93c8.8193
cmp edi, 0x1680
ja 0x4a9391
cmp edx, 0x1680
je case.0x4a93c8.8193
mov eax, edx
sub eax, 0x85
je case.0x4a93c8.8193
sub eax, 0x1b
je case.0x4a93c8.8193
mov eax, edx
test eax, eax
jns 0x4a9311
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x55a200]
shl eax, 7
and edx, 0x8000007f
jns 0x4a932b
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
cmp dword [eax*4 + 0x558550], 6
sete cl
cmp ecx, dword [esi + 0x68]
je case.default.0x4a7d1c
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a9382
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4a95a3
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x3d
jmp 0x4a6b94
cmp edx, 0x180e
jmp 0x4a9302
cmp ebx, 0x3000
ja case.0x4a93c8.8203
cmp dword [esp + 0x18], 0x3000
je case.0x4a93c8.8193
lea eax, [edx - 0x2001]
cmp eax, 0x5e
ja case.0x4a93c8.8203
movzx eax, byte [eax + 0x4aa7b8]
jmp dword [eax*4 + 0x4aa7b0]
cmp dword [esi + 0x68], 0
je 0x4a9353
jmp case.default.0x4a7d1c
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x4a9419
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a69ef.14
cmp edx, dword [ebp + 0x84]
jmp 0x49f97e
movzx eax, byte [edx]
inc edx
cmp dword [esp + 0x28], 0
mov ecx, eax
mov dword [esi + 8], edx
mov edi, eax
mov ebx, eax
je 0x4a9530
cmp eax, 0xc0
jb 0x4a9530
test al, 0x20
jne 0x4a9456
movzx ecx, byte [edx]
and eax, 0x1f
shl eax, 6
and ecx, 0x3f
or ecx, eax
lea eax, [edx + 1]
jmp 0x4a9529
test al, 0x10
jne 0x4a947c
movzx ecx, byte [edx]
and eax, 0xf
shl eax, 6
and ecx, 0x3f
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x4a9529
test al, 8
jne 0x4a94ae
movzx ecx, byte [edx]
and eax, 7
shl eax, 6
and ecx, 0x3f
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x4a9529
mov ecx, eax
test al, 4
movzx eax, byte [edx]
jne 0x4a94eb
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x4a9529
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
mov ebx, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x55a200]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x55c400]
movzx eax, byte [eax*8 + 0x558b81]
mov eax, dword [eax*4 + 0x558550]
cmp eax, 1
je 0x4a956c
cmp eax, 3
je 0x4a956c
cmp ebx, 0x5f
je 0x4a956c
xor eax, eax
jmp 0x4a9571
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.default.0x4a7d1c
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a97ba
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x4a97b0
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a98bf
mov edi, 0xfffffffa
jmp 0x4a5ae8
test edi, edi
jne case.default.0x4a5fe8
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x4a69ef.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x4a961b
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x4a69ef.14
cmp edi, dword [ebp + 0x84]
jbe case.0x4a69ef.14
mov dword [ebp + 0x64], 1
cmp eax, 1
jle case.0x4a69ef.14
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a98a2
mov edi, 0xfffffff4
jmp 0x4a5aec
movzx edx, byte [edi]
inc edi
mov dword [esi + 8], edi
mov ecx, edx
test ebx, ebx
je 0x4a9703
cmp edx, 0xc0
jb 0x4a9703
movzx ecx, byte [edi]
and ecx, 0x3f
test dl, 0x20
jne 0x4a9657
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x4a96fe
movzx eax, byte [edi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x4a9678
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x4a96fe
test dl, 8
jne 0x4a969b
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x4a96fe
test dl, 4
jne 0x4a96ca
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
jmp 0x4a96fe
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov ecx, edx
mov eax, dword [esi + 0x64]
cmp ecx, dword [eax*4 + 0x558a40]
lea eax, [eax*4 + 0x558a40]
jb 0x4a9725
mov ecx, dword [eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x4a973e
mov ecx, dword [eax]
cmp edx, ecx
jae 0x4a9718
cmp dword [esi + 0x68], 0
jne 0x4a9744
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a98b2
xor edi, edi
jmp 0x4a5aec
cmp dword [esi + 0x68], 0
jne case.0x4a69ef.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4a97d3
push 0x134
call dword [0xc5c7a0]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x4a97c9
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x4a98bf
lea edi, [ecx - 6]
jmp 0x4a5aec
mov ecx, dword [esi + 0x44]
lea eax, [esi + 0xb0]
cmp ecx, eax
je 0x4a9794
push ecx
call dword [0xc5c79c]
add esp, 4
mov eax, dword [ebp + 0x80]
mov dword [esi + 8], eax
mov eax, dword [ebp + 0x7c]
mov dword [esi + 0x10], eax
jmp 0x49bf83
mov dword [esi + 0xc], ecx
jmp 0x49bf10
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x3e
jmp 0x4a6b94
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x43
jmp 0x4a6b94
pop edi
pop esi
pop ebp
mov eax, 0xfffffff8
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffeb
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffe6
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1a
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1b
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1c
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1e
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1d
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1f
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc20
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffff2
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffff4
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffa
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffb
pop ebx
add esp, 0x8c
ret