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

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x68
push ebx
push ebp
mov ebp, dword [esp + 0x84]
push esi
push edi
mov esi, dword [ebp + 0xb8]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x80]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x84]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x88]
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x90]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x94]
mov dword [esi + 0x1c], eax
lea ecx, [ecx]
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
mov edi, edi
mov edx, dword [ebp]
mov ecx, dword [ebp + 4]
mov edi, dword [ebp + 0x4c]
mov dword [esp + 0x8c], edi
lea eax, [edx + 1]
mov dword [ebp], eax
cmp edx, ecx
jb 0x50d0de
mov esi, dword [esi]
test esi, esi
je 0x51ad81
mov edi, 0xfffffff8
jmp 0x516989
mov eax, dword [esi + 0x1c]
cmp eax, dword [ebp + 8]
jb 0x50d0fa
mov esi, dword [esi]
test esi, esi
je 0x51ad8e
mov edi, 0xffffffeb
jmp 0x516989
cmp dword [ebp + 0x98], 2
jne 0x50d131
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
jmp 0x50d131
add dword [esi + 0xc], 3
mov edi, dword [esp + 0x8c]
mov eax, dword [esi + 0xc]
xor ebx, ebx
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], ebx
movzx edx, byte [eax]
mov dword [esi + 0x9c], edx
cmp edx, 0xa1
ja case.0x50d164.98
movzx eax, byte [edx + 0x51af9c]
jmp dword [eax*4 + 0x51ae50]
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 0x51a5e5
push 0x134
call dword [0x725f24]
mov edi, eax
add esp, 4
test edi, edi
jne 0x51a5df
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
mov edx, dword [esi + 4]
test edx, edx
jne 0x51a635
push 0x134
call dword [0x725f24]
mov edx, eax
add esp, 4
test edx, edx
jne 0x51a62f
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
mov edx, dword [esi + 4]
test edx, edx
jne 0x51a653
push 0x134
call dword [0x725f24]
mov edx, eax
add esp, 4
test edx, edx
jne 0x51a64d
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
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 0x51a671
push 0x134
call dword [0x725f24]
mov edi, eax
add esp, 4
test edi, edi
jne 0x51a66b
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
mov edx, dword [esi + 4]
test edx, edx
jne 0x51a686
push 0x134
call dword [0x725f24]
mov edx, eax
add esp, 4
test edx, edx
jne 0x51a680
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp + 0x2c]
ja 0x50d2be
mov ecx, dword [esi + 0xc]
movzx eax, byte [ecx]
movzx edx, byte [eax + 0x5eead8]
movzx eax, byte [ecx + 1]
add edx, eax
add dword [esi + 0xc], edx
jmp 0x50d131
mov edi, dword [esi + 4]
test edi, edi
jne 0x51a6a4
push 0x134
call dword [0x725f24]
mov edi, eax
add esp, 4
test edi, edi
jne 0x51a69e
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
mov edx, dword [esi + 4]
test edx, edx
jne 0x51a6b9
push 0x134
call dword [0x725f24]
mov edx, eax
add esp, 4
test edx, edx
jne 0x51a6b3
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
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 0x51a6d7
push 0x134
call dword [0x725f24]
mov edi, eax
add esp, 4
test edi, edi
jne 0x51a6d1
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
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 0x517ec8
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.0x50d164.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 0x516a2b
mov dword [esi + 0x54], ebx
jmp 0x50dbcf
mov dword [esi + 0x54], ebx
jmp 0x50dbf3
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
add dword [esi + 0xc], 3
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x76
jne 0x50d538
mov edi, dword [0x72b7f4]
test edi, edi
je 0x50d524
mov dword [esp + 0x10], 2
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + 1]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x74]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x78]
sub eax, dword [ebp + 0x74]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x10]
sub eax, dword [ebp + 0x74]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 8]
sub eax, dword [ebp + 0x74]
mov dword [esp + 0x28], 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 + 0x38], 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 + 0x3c], ecx
mov eax, dword [esi + 0x14]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x2c], eax
movzx eax, word [ebp + 0x90]
mov dword [esp + 0x30], eax
test eax, eax
jne 0x50d4de
mov dword [esp + 0x30], 0xffffffff
mov eax, dword [ebp + 0xa8]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0xb0]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x10]
push eax
call edi
mov edi, eax
add esp, 4
test edi, edi
jle 0x50d513
mov esi, dword [esi]
test esi, esi
je 0x51ada8
xor edi, edi
jmp 0x516989
jns 0x50d524
mov esi, dword [esi]
test esi, esi
je 0x516e6c
jmp 0x516989
movzx eax, byte [0x5eeb4e]
add dword [esi + 0xc], eax
movzx eax, byte [0x5eeb4e]
sub dword [esi + 0x78], eax
mov dword [esi + 0x58], ebx
mov ecx, dword [esi + 0xc]
movzx edx, byte [ecx]
mov dword [esp + 0x88], edx
lea eax, [edx - 0x8d]
cmp eax, 0x10
ja case.0x50d55e.146
movzx eax, byte [eax + 0x51b058]
jmp dword [eax*4 + 0x51b040]
mov edi, dword [ebp + 0xa4]
test edi, edi
je case.0x50d55e.145
movzx edx, byte [ecx + 1]
movzx eax, byte [ecx + 2]
shl edx, 8
or edx, eax
cmp edx, 0xffff
je 0x50d597
cmp edx, dword [edi + 4]
je 0x50d597
xor eax, eax
mov dword [esi + 0x58], eax
jmp 0x516cc3
mov eax, 1
mov dword [esi + 0x58], eax
jmp 0x516cc3
cmp dword [ebp + 0xa4], ebx
je case.0x50d55e.145
movzx ebx, byte [ecx + 3]
movzx eax, byte [ecx + 4]
movzx edi, byte [ecx + 1]
shl ebx, 8
shl edi, 8
or ebx, eax
movzx eax, byte [ecx + 2]
or edi, eax
imul edi, dword [ebp + 0x24]
add edi, dword [ebp + 0x30]
test ebx, ebx
jle case.0x50d55e.145
lea esp, [esp]
movzx eax, byte [edi]
xor ecx, ecx
movzx edx, byte [edi + 1]
dec ebx
shl eax, 8
or edx, eax
mov eax, dword [ebp + 0xa4]
cmp edx, dword [eax + 4]
sete cl
mov dword [esi + 0x58], ecx
test ecx, ecx
jne 0x516cc3
add edi, dword [ebp + 0x24]
test ebx, ebx
jg 0x50d5e0
jmp 0x516cc3
mov eax, dword [esi + 0xc]
movzx ecx, byte [ecx + 1]
shl ecx, 8
movzx eax, byte [eax + 2]
or ecx, eax
add ecx, ecx
mov dword [esi + 0x98], ecx
cmp ecx, dword [esi + 0x14]
jge 0x50d644
mov eax, dword [ebp + 0xc]
cmp dword [eax + ecx*4], ebx
jl 0x50d644
mov eax, 1
mov dword [esi + 0x58], eax
jmp case.0x50d55e.145
xor eax, eax
mov dword [esi + 0x58], eax
jmp case.0x50d55e.145
movzx edi, byte [ecx + 3]
movzx eax, byte [ecx + 4]
movzx edx, byte [ecx + 1]
shl edi, 8
shl edx, 8
or edi, eax
movzx eax, byte [ecx + 2]
or edx, eax
imul edx, dword [ebp + 0x24]
add edx, dword [ebp + 0x30]
test edi, edi
jle 0x516cc3
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 0x50d699
mov eax, dword [ebp + 0xc]
cmp dword [eax + ecx*4], ebx
jge 0x50d6a8
mov dword [esi + 0x58], ebx
add edx, dword [ebp + 0x24]
test edi, edi
jg 0x50d677
jmp 0x516cc3
mov dword [esi + 0x58], 1
jmp 0x516cc3
mov dword [ebp + 0x98], 1
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a6ec
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a6e6
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
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 0x50d744
or eax, 0x10000
mov dword [ebp + 0x90], eax
jmp 0x50d126
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 ecx, dword [esi + 0x98]
mov edx, dword [esi + 0x14]
cmp ecx, edx
jl 0x50d126
mov eax, dword [ebp + 0xc]
lea edi, [eax + edx*4]
lea ecx, [eax + ecx*4]
cmp edi, ecx
jae 0x50d793
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x98]
add eax, 2
mov dword [esi + 0x14], eax
jmp 0x50d126
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0x10]
cmp edi, ecx
jne 0x50d7e6
cmp edx, 0x9f
je 0x50d7e6
cmp dword [ebp + 0xa4], ebx
jne 0x50d7e6
cmp dword [ebp + 0x5c], ebx
jne 0x50d7d5
cmp dword [ebp + 0x60], ebx
je 0x50d7e6
mov eax, dword [ebp + 0x94]
add eax, dword [ebp + 0x74]
cmp ecx, eax
jne 0x50d7e6
mov esi, dword [esi]
test esi, esi
je 0x51ada8
xor edi, edi
jmp 0x516989
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 esi, dword [esi]
neg edi
sbb edi, edi
and edi, 0xfffffc18
inc edi
test esi, esi
je 0x516e6c
jmp 0x516989
mov eax, dword [ebp + 0xac]
mov dword [esi + 0x28], eax
cmp dword [ebp + 0x98], 1
jne 0x50d83f
mov dword [esi + 0x58], 1
mov dword [ebp + 0x98], ebx
jmp 0x516dbd
mov dword [esi + 0x58], ebx
jmp 0x516dbd
mov eax, dword [ebp + 0xac]
mov dword [esi + 0x28], eax
cmp dword [ebp + 0x98], 1
jne 0x50d86b
mov dword [esi + 0x58], 1
mov dword [ebp + 0x98], ebx
jmp 0x516f0b
mov dword [esi + 0x58], ebx
jmp 0x516f0b
mov edx, dword [esp + 0x8c]
mov eax, dword [esi + 0xc]
test edx, edx
je 0x50d8d2
movzx edx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl edx, 8
or edx, eax
jle 0x50d8b8
dec dword [esi + 8]
dec edx
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x74]
jb case.0x5140b6.14
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x50d8b4
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x50d8a8
test edx, edx
jg 0x50d890
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jae 0x50d126
mov dword [ebp + 0x84], eax
jmp 0x50d126
movzx ecx, byte [eax + 1]
mov eax, dword [esi + 0xc]
shl ecx, 8
movzx eax, byte [eax + 2]
or ecx, eax
sub dword [esi + 8], ecx
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
jae 0x50d8b8
mov esi, dword [esi]
test esi, esi
je 0x51ada8
xor edi, edi
jmp 0x516990
mov edi, dword [0x72b7f4]
test edi, edi
je 0x50d9dc
mov dword [esp + 0x44], 2
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + 1]
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0x74]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x78]
sub eax, dword [ebp + 0x74]
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0x10]
sub eax, dword [ebp + 0x74]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 8]
sub eax, dword [ebp + 0x74]
mov dword [esp + 0x5c], 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 + 0x6c], 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 + 0x70], ecx
mov eax, dword [esi + 0x14]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x60], eax
movzx eax, word [ebp + 0x90]
mov dword [esp + 0x64], eax
test eax, eax
jne 0x50d996
mov dword [esp + 0x64], 0xffffffff
mov eax, dword [ebp + 0xa8]
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0xb0]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x44]
push eax
call edi
mov edi, eax
add esp, 4
test edi, edi
jle 0x50d9cb
mov esi, dword [esi]
test esi, esi
je 0x51ada8
xor edi, edi
jmp 0x516989
jns 0x50d9dc
mov esi, dword [esi]
test esi, esi
je 0x516e6c
jmp 0x516989
add dword [esi + 0xc], 6
jmp 0x50d12a
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 0x50da06
xor edx, edx
jmp 0x50da13
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 0x50da33
lea ecx, [ecx]
cmp edx, dword [ecx + 4]
jne 0x50da2d
mov eax, dword [esi + 8]
cmp eax, dword [ecx + 0x14]
je 0x50da94
mov ecx, dword [ecx]
test ecx, ecx
jne 0x50da20
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 0x50daa8
lea eax, [esi + 0xb0]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x48]
shl eax, 2
push eax
push dword [ebp + 0xc]
push dword [esi + 0x44]
call sub.MSVCRT.dll_memcpy
mov eax, dword [esi + 0x20]
add esp, 0xc
cmp byte [eax], 0x88
sbb eax, eax
inc eax
mov dword [esi + 0x58], eax
jmp 0x516ff4
mov esi, dword [esi]
test esi, esi
je 0x51adb2
mov edi, 0xffffffe6
jmp 0x516989
shl eax, 2
push eax
call dword [0x725f1c]
add esp, 4
mov dword [esi + 0x44], eax
test eax, eax
jne 0x50da6e
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
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 0x50dad1
jmp 0x50d131
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0x2c], eax
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a727
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a721
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
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 ecx, eax
add edx, ecx
mov dword [esi + 0x2c], edx
cmp byte [edx], 0x77
je 0x50db30
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a745
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a73f
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
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 ecx, eax
add edx, ecx
mov dword [esi + 0x2c], edx
cmp byte [edx], 0x77
je 0x50db83
lea eax, [edx + 3]
mov dword [esi + 0xc], eax
jmp 0x50d131
inc dword [esi + 0xc]
mov eax, dword [esi + 0xc]
movzx eax, byte [eax]
mov dword [esi + 0x9c], eax
mov dword [esi + 0x54], 1
mov eax, dword [esi + 0x9c]
cmp eax, 0x86
je 0x50dbcf
cmp eax, 0x8b
jne 0x50dbf3
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 0x50dc10
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 0x517add
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 0x50dc8d
mov dword [ebp + 0x98], 2
mov edx, dword [esi + 4]
test edx, edx
jne 0x51aad7
push 0x134
call dword [0x725f24]
mov edx, eax
add esp, 4
test edx, edx
jne 0x51aacd
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
mov edx, dword [esi + 0xc]
mov eax, edx
movzx ecx, byte [eax + 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 0x50dce8
cmp al, 0x81
je 0x50dce8
mov dword [esi + 0x38], ebx
jmp 0x50dcf9
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 0x50dd06
cmp al, 0x80
jbe 0x50dd0a
cmp al, 0x82
jne 0x50dd36
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
mov esi, dword [esi]
test esi, esi
je 0x51ade6
mov edi, 1
jmp 0x516989
cmp al, 0x85
je 0x50dd4a
cmp al, 0x8a
je 0x50dd4a
cmp al, 0x86
je 0x50dd4a
cmp al, 0x8b
jne 0x50de11
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 0x50dd86
mov eax, dword [eax + 4]
cmp eax, dword [esi + 0x94]
jne 0x50dd86
mov eax, dword [esi + 8]
mov dword [ebp + 0x80], eax
jmp 0x50dd1c
mov eax, dword [ebp + 0x90]
and eax, 0xffff0000
or eax, dword [esi + 0x94]
mov dword [ebp + 0x90], eax
mov ecx, dword [esi + 0x98]
cmp ecx, dword [ebp + 0x14]
jl 0x50ddb5
or eax, 0x10000
mov dword [ebp + 0x90], eax
jmp 0x50de11
mov edx, dword [esi + 0x14]
cmp ecx, edx
jle 0x50ddd5
mov eax, dword [ebp + 0xc]
lea edi, [eax + edx*4]
lea ecx, [eax + ecx*4]
cmp edi, ecx
jae 0x50ddd5
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
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 0x50de11
add eax, 2
mov dword [esi + 0x14], eax
mov edx, dword [esi + 0xc]
mov cl, byte [edx]
cmp cl, 0x7b
jne 0x50de47
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 esi, dword [esi]
test esi, esi
je 0x51adbf
mov edi, 0xfffffc1a
jmp 0x516989
cmp cl, 0x78
je 0x50dec0
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x38]
je 0x50dec0
cmp cl, 0x7a
mov ecx, dword [esi + 4]
jne 0x50de8e
test ecx, ecx
jne 0x51a766
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a760
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test ecx, ecx
jne 0x51a787
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a781
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
mov eax, dword [esi + 0x34]
cmp byte [eax], 0x81
jne 0x517127
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a7a5
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a79f
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
cmp dword [ebp + 0x44], ebx
je case.0x50d164.1
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
jne case.0x50d164.1
mov esi, dword [esi]
test esi, esi
je 0x51ada8
xor edi, edi
jmp 0x516989
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
je 0x50dfe8
mov esi, dword [esi]
test esi, esi
je 0x51ada8
xor edi, edi
jmp 0x516989
cmp dword [ebp + 0x44], ebx
je 0x50df5a
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
jne 0x50df5a
mov esi, dword [esi]
test esi, esi
je 0x51ada8
xor edi, edi
jmp 0x516989
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x74]
cmp ecx, edx
je 0x50e9a4
cmp ecx, dword [ebp + 0x78]
je 0x50dfc0
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x50df98
cmp ecx, edx
jbe 0x50dfc0
push dword [esp + 0x8c]
lea eax, [ebp + 0x1c]
push eax
push edx
push edi
push ecx
call fcn.0051d3b0
add esp, 0x14
test eax, eax
jne 0x50e9a4
jmp 0x50dfc0
mov edi, dword [ebp + 0x1c]
lea eax, [edi + edx]
cmp ecx, eax
jb 0x50dfc0
sub ecx, edi
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x50dfc0
cmp edi, 1
je 0x50e9a4
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je 0x50e9a4
mov esi, dword [esi]
test esi, esi
je 0x51ada8
xor edi, edi
jmp 0x516989
mov eax, dword [ebp + 0x94]
add eax, dword [ebp + 0x74]
cmp dword [esi + 8], eax
jmp 0x50df25
mov eax, dword [esi + 8]
mov dword [esi + 0x10], eax
inc dword [esi + 0xc]
jmp 0x50d131
mov ecx, dword [esi + 8]
mov eax, dword [ebp + 0x78]
cmp ecx, eax
jae 0x50e0aa
mov edx, dword [ebp + 0x18]
lea edi, [ebp + 0x1c]
test edx, edx
je 0x50e025
push dword [esp + 0x8c]
push edi
push eax
push edx
push ecx
call fcn.0051d260
add esp, 0x14
test eax, eax
jne 0x50e9a4
jmp 0x50e049
mov edx, dword [edi]
sub eax, edx
cmp ecx, eax
ja 0x50e049
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x50e049
cmp edx, 1
je 0x50e9a4
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je 0x50e9a4
cmp dword [ebp + 0x88], ebx
je case.0x5140b6.14
mov eax, dword [esi + 8]
inc eax
cmp eax, dword [ebp + 0x78]
jb case.0x5140b6.14
cmp dword [ebp + 0x18], ebx
jne case.0x5140b6.14
cmp dword [edi], 2
jne case.0x5140b6.14
mov eax, dword [esi + 8]
mov al, byte [eax]
cmp al, byte [ebp + 0x34]
jne case.0x5140b6.14
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle case.0x5140b6.14
mov esi, dword [esi]
test esi, esi
je 0x51adcc
mov edi, 0xfffffff4
jmp 0x516989
cmp dword [ebp + 0x48], ebx
jne 0x50df2b
cmp dword [ebp + 0x88], ebx
je 0x50e9a4
cmp ecx, dword [ebp + 0x84]
jbe 0x50e9a4
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x50e9a4
mov esi, dword [esi]
test esi, esi
je 0x51adcc
mov edi, 0xfffffff4
jmp 0x516989
cmp dword [ebp + 0x48], ebx
jne 0x50df2b
cmp dword [ebp + 0x58], ebx
je case.0x50d164.23
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x50df2b
cmp dword [ebp + 0x88], ebx
je 0x50dfe8
cmp eax, dword [ebp + 0x84]
jbe 0x50dfe8
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x50dfe8
mov esi, dword [esi]
test esi, esi
je 0x51adcc
mov edi, 0xfffffff4
jmp 0x516989
mov ecx, dword [esi + 8]
mov eax, dword [ebp + 0x78]
cmp ecx, eax
jae 0x50e1b5
mov edx, dword [ebp + 0x18]
lea edi, [ebp + 0x1c]
test edx, edx
je 0x50e17d
push dword [esp + 0x8c]
push edi
push eax
push edx
push ecx
call fcn.0051d260
add esp, 0x14
test eax, eax
jne 0x50e1a5
jmp 0x50e049
mov edx, dword [edi]
sub eax, edx
cmp ecx, eax
ja 0x50e049
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x50e049
cmp edx, 1
je 0x50e1a5
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
jne 0x50e049
mov eax, dword [ebp + 0x78]
sub eax, dword [edi]
mov ecx, dword [esi + 8]
cmp ecx, eax
jne 0x50e049
cmp dword [ebp + 0x88], ebx
je 0x50e9a4
cmp ecx, dword [ebp + 0x84]
jbe 0x50e9a4
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x50e9a4
jmp 0x50e096
mov edx, dword [esp + 0x8c]
test edx, edx
je 0x50e4b7
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x74]
jne 0x50e205
mov dword [esi + 0x5c], ebx
jmp 0x50e33e
mov al, byte [edx - 1]
dec edx
and al, 0xc0
cmp al, 0x80
jne 0x50e21a
nop
mov al, byte [edx - 1]
dec edx
and al, 0xc0
cmp al, 0x80
je 0x50e210
cmp edx, dword [ebp + 0x84]
jae 0x50e228
mov dword [ebp + 0x84], edx
movzx ebx, byte [edx]
cmp ebx, 0xc0
jb 0x50e2dc
test bl, 0x20
jne 0x50e250
movzx eax, byte [edx + 1]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
jmp 0x50e2dc
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
and ecx, 0x3f
test bl, 0x10
jne 0x50e26a
and ebx, 0xf
shl ebx, 6
or ecx, ebx
jmp 0x50e2d2
and eax, 0x3f
test bl, 8
jne 0x50e285
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x50e2d2
test bl, 4
jne 0x50e2a9
and ebx, 3
shl ebx, 6
or ecx, ebx
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 0x50e2d2
and ebx, 1
shl ebx, 6
or ecx, ebx
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]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov ebx, ecx
cmp dword [ebp + 0x54], 0
je 0x50e377
cmp ebx, 0x5f
jne 0x50e2f4
mov dword [esi + 0x5c], 1
jmp 0x50e33e
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x50e316
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
mov eax, dword [eax*4 + 0x5eebf0]
cmp eax, 1
je 0x50e388
cmp eax, 3
je 0x50e388
xor eax, eax
mov dword [esi + 0x5c], eax
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x50e38f
cmp dword [ebp + 0x88], 0
je 0x50e36b
cmp edx, dword [ebp + 0x84]
jbe 0x50e36b
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
mov dword [esi + 0x54], 0
jmp 0x50e5f5
cmp ebx, 0x100
jae 0x50e339
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 0x10
je 0x50e339
mov eax, 1
jmp 0x50e33b
movzx ebx, byte [edx]
cmp ebx, 0xc0
jb 0x50e439
test bl, 0x20
jne 0x50e3af
movzx eax, byte [edx + 1]
and ebx, 0x1f
jmp 0x50e431
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
and ecx, 0x3f
test bl, 0x10
jne 0x50e3c9
and ebx, 0xf
shl ebx, 6
or ebx, ecx
jmp 0x50e431
and eax, 0x3f
test bl, 8
jne 0x50e3e4
and ebx, 7
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
jmp 0x50e431
test bl, 4
jne 0x50e408
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 0x50e431
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]
and eax, 0x3f
shl ebx, 6
or ebx, eax
cmp dword [ebp + 0x54], 0
je 0x50e49c
cmp ebx, 0x5f
jne 0x50e450
mov dword [esi + 0x54], 1
jmp 0x50e5f5
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x50e472
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
mov eax, dword [eax*4 + 0x5eebf0]
cmp eax, 1
je 0x50e4ad
cmp eax, 3
je 0x50e4ad
xor eax, eax
jmp 0x50e5f2
cmp ebx, 0x100
jae 0x50e495
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 0x10
je 0x50e495
mov eax, 1
jmp 0x50e5f2
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
jne 0x50e4c7
mov dword [esi + 0x5c], ebx
jmp 0x50e562
cmp eax, dword [ebp + 0x84]
ja 0x50e4d6
dec eax
mov dword [ebp + 0x84], eax
mov eax, dword [esi + 8]
cmp dword [ebp + 0x54], ebx
je 0x50e54e
movzx ecx, byte [eax - 1]
cmp ecx, 0x5f
jne 0x50e4f0
mov dword [esi + 0x5c], 1
jmp 0x50e562
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ecx, 0x8000007f
jns 0x50e512
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
mov eax, dword [eax*4 + 0x5eebf0]
cmp eax, 1
je 0x50e540
cmp eax, 3
je 0x50e540
mov edx, dword [esp + 0x8c]
xor eax, eax
jmp 0x50e55f
mov edx, dword [esp + 0x8c]
mov eax, 1
jmp 0x50e55f
movzx eax, byte [eax - 1]
mov ecx, dword [ebp + 0x40]
movzx eax, byte [eax + ecx]
shr eax, 4
and eax, 1
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x50e5a3
cmp dword [ebp + 0x88], ebx
je 0x50e59e
cmp eax, dword [ebp + 0x84]
jbe 0x50e59e
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x50e59e
mov esi, dword [esi]
test esi, esi
je 0x51adcc
mov edi, 0xfffffff4
jmp 0x516990
mov dword [esi + 0x54], ebx
jmp 0x50e5f5
cmp dword [ebp + 0x54], ebx
je 0x50e5e2
movzx ecx, byte [eax]
cmp ecx, 0x5f
jne 0x50e5b9
mov dword [esi + 0x54], 1
jmp 0x50e5f5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ecx, 0x8000007f
jns 0x50e5db
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
jmp 0x50e474
movzx eax, byte [eax]
mov ecx, 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 0x50e610
xor ecx, ecx
cmp eax, dword [esi + 0x5c]
sete cl
jmp 0x50e618
xor ecx, ecx
cmp eax, dword [esi + 0x5c]
setne cl
mov edi, dword [esp + 0x8c]
test ecx, ecx
je 0x50d131
jmp 0x50df2b
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x50e65d
mov edx, dword [esi + 8]
mov edi, dword [ebp + 0x78]
cmp edx, edi
jae 0x50e688
push dword [esp + 0x8c]
lea eax, [ebp + 0x1c]
push eax
push edi
push ecx
push edx
call fcn.0051d260
add esp, 0x14
test eax, eax
jne 0x50df2b
jmp 0x50e688
mov eax, dword [ebp + 0x78]
mov edx, dword [ebp + 0x1c]
sub eax, edx
mov ecx, dword [esi + 8]
cmp ecx, eax
ja 0x50e688
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x50e688
cmp edx, 1
je 0x50df2b
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je 0x50df2b
cmp dword [ebp + 0x88], ebx
je case.0x50d164.13
mov eax, dword [ebp + 0x78]
mov ecx, dword [esi + 8]
dec eax
cmp ecx, eax
jne case.0x50d164.13
cmp dword [ebp + 0x18], ebx
jne case.0x50d164.13
cmp dword [ebp + 0x1c], 2
jne case.0x50d164.13
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne case.0x50d164.13
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x50e6e6
cmp dword [ebp + 0x88], ebx
je case.0x5140b6.14
cmp eax, dword [ebp + 0x84]
jbe case.0x5140b6.14
jmp 0x50e082
mov edi, dword [esp + 0x8c]
inc eax
mov dword [esi + 8], eax
test edi, edi
je 0x50dfe8
cmp eax, dword [ebp + 0x78]
jae 0x50dfe8
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x50dfe8
lea eax, [ecx + 1]
mov dword [esi + 8], eax
cmp eax, dword [ebp + 0x78]
jb 0x50e702
inc dword [esi + 0xc]
jmp 0x50d131
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x50e6c9
inc eax
mov dword [esi + 8], eax
inc dword [esi + 0xc]
jmp 0x50d131
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x50e75d
cmp dword [ebp + 0x88], ebx
je case.0x5140b6.14
cmp edi, dword [ebp + 0x84]
jbe case.0x5140b6.14
jmp 0x50e082
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x50e859
cmp ebx, 0xc0
jb 0x50e859
test bl, 0x20
jne 0x50e79a
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x50e856
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x50e7c4
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x50e859
mov edx, dword [esi + 8]
test bl, 8
jne 0x50e7ea
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x50e84d
test bl, 4
jne 0x50e819
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x50e84d
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 edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0x100
jae 0x50e9a4
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 4
je 0x50e9a4
mov esi, dword [esi]
test esi, esi
je 0x51ada8
xor edi, edi
jmp 0x516990
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x50e740
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x50e98b
cmp ebx, 0xc0
jb 0x50e98b
test bl, 0x20
jne 0x50e8cc
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x50e988
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x50e8f6
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x50e98b
mov edx, dword [esi + 8]
test bl, 8
jne 0x50e91c
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x50e97f
test bl, 4
jne 0x50e94b
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x50e97f
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 edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0xff
ja 0x50d8ed
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 4
je 0x50d8ed
inc dword [esi + 0xc]
jmp 0x50d12a
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x50e740
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x50eab4
cmp ebx, 0xc0
jb 0x50eab4
test bl, 0x20
jne 0x50e9f5
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x50eab1
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x50ea1f
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x50eab4
mov edx, dword [esi + 8]
test bl, 8
jne 0x50ea45
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x50eaa8
test bl, 4
jne 0x50ea74
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x50eaa8
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 edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0x100
jae 0x50e9a4
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 1
jmp 0x50e86c
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x50e740
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x50ebd4
cmp ebx, 0xc0
jb 0x50ebd4
test bl, 0x20
jne 0x50eb15
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x50ebd1
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x50eb3f
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x50ebd4
mov edx, dword [esi + 8]
test bl, 8
jne 0x50eb65
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x50ebc8
test bl, 4
jne 0x50eb94
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x50ebc8
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 edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0xff
ja 0x50d8ed
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 1
je 0x50d8ed
inc dword [esi + 0xc]
jmp 0x50d12a
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x50e740
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x50ecfd
cmp ebx, 0xc0
jb 0x50ecfd
test bl, 0x20
jne 0x50ec3e
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x50ecfa
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x50ec68
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x50ecfd
mov edx, dword [esi + 8]
test bl, 8
jne 0x50ec8e
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x50ecf1
test bl, 4
jne 0x50ecbd
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x50ecf1
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 edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0x100
jae 0x50e9a4
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 0x10
jmp 0x50e86c
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x50e740
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x50ee1d
cmp ebx, 0xc0
jb 0x50ee1d
test bl, 0x20
jne 0x50ed5e
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x50ee1a
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x50ed88
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x50ee1d
mov edx, dword [esi + 8]
test bl, 8
jne 0x50edae
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x50ee11
test bl, 4
jne 0x50eddd
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x50ee11
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 edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0xff
ja 0x50d8ed
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 0x10
je 0x50d8ed
inc dword [esi + 0xc]
jmp 0x50d12a
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x50e740
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x50ef46
cmp ebx, 0xc0
jb 0x50ef46
test bl, 0x20
jne 0x50ee87
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x50ef43
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x50eeb1
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x50ef46
mov edx, dword [esi + 8]
test bl, 8
jne 0x50eed7
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x50ef3a
test bl, 4
jne 0x50ef06
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x50ef3a
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 edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0xd
ja 0x50efbf
je 0x50ef61
cmp ebx, 0xa
je 0x50e9a4
jbe 0x50e872
cmp ebx, 0xc
jmp 0x50efd9
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x50efaa
cmp dword [ebp + 0x88], 0
je 0x50e9a4
cmp eax, dword [ebp + 0x84]
jbe 0x50e9a4
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x50e9a4
mov esi, dword [esi]
test esi, esi
je 0x51adcc
mov edi, 0xfffffff4
jmp 0x516990
cmp byte [eax], 0xa
jne 0x50e9a4
inc eax
mov dword [esi + 8], eax
inc dword [esi + 0xc]
jmp 0x50d12a
cmp ebx, 0x85
je 0x50efdf
cmp ebx, 0x2027
jbe 0x50e872
cmp ebx, 0x2029
ja 0x50e872
cmp dword [ebp + 0x68], 0
jmp 0x50e86c
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x50e740
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x50f0f0
cmp ebx, 0xc0
jb 0x50f0f0
test bl, 0x20
jne 0x50f031
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x50f0ed
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x50f05b
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x50f0f0
mov edx, dword [esi + 8]
test bl, 8
jne 0x50f081
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x50f0e4
test bl, 4
jne 0x50f0b0
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x50f0e4
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 edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0x180e
ja 0x50f128
je 0x50d8ed
cmp ebx, 0xa0
ja 0x50f11d
je 0x50d8ed
cmp ebx, 9
je 0x50d8ed
cmp ebx, 0x20
jmp 0x50e99e
cmp ebx, 0x1680
jmp 0x50e99e
cmp ebx, 0x205f
ja 0x50f159
je 0x50d8ed
cmp ebx, 0x2000
jb 0x50e9a4
cmp ebx, 0x200a
jbe 0x50d8ed
cmp ebx, 0x202f
jmp 0x50e99e
cmp ebx, 0x3000
je 0x50d8ed
inc dword [esi + 0xc]
jmp 0x50d12a
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x50e740
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x50f275
cmp ebx, 0xc0
jb 0x50f275
test bl, 0x20
jne 0x50f1b6
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x50f272
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x50f1e0
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x50f275
mov edx, dword [esi + 8]
test bl, 8
jne 0x50f206
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x50f269
test bl, 4
jne 0x50f235
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x50f269
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 edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0x180e
ja 0x50f2ad
je 0x50e9a4
cmp ebx, 0xa0
ja 0x50f2a2
je 0x50e9a4
cmp ebx, 9
je 0x50e9a4
cmp ebx, 0x20
jmp 0x50e86c
cmp ebx, 0x1680
jmp 0x50e86c
cmp ebx, 0x205f
ja 0x50f2de
je 0x50e9a4
cmp ebx, 0x2000
jb 0x50e872
cmp ebx, 0x200a
jbe 0x50e9a4
cmp ebx, 0x202f
jmp 0x50e86c
cmp ebx, 0x3000
jmp 0x50e86c
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x50e740
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x50f3f1
cmp ebx, 0xc0
jb 0x50f3f1
test bl, 0x20
jne 0x50f332
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x50f3ee
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x50f35c
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x50f3f1
mov edx, dword [esi + 8]
test bl, 8
jne 0x50f382
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x50f3e5
test bl, 4
jne 0x50f3b1
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x50f3e5
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 edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0x85
ja 0x50f419
je 0x50e872
cmp ebx, 0xa
jb 0x50e9a4
cmp ebx, 0xd
jbe 0x50e872
inc dword [esi + 0xc]
jmp 0x50d12a
lea eax, [ebx - 0x2028]
cmp eax, 1
ja 0x50e9a4
jmp 0x50e872
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x50e740
movzx ebx, byte [edi]
inc edi
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test edx, edx
je 0x50f535
cmp ebx, 0xc0
jb 0x50f535
test bl, 0x20
jne 0x50f476
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x50f532
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x50f4a0
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x50f535
mov edx, dword [esi + 8]
test bl, 8
jne 0x50f4c6
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x50f529
test bl, 4
jne 0x50f4f5
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x50f529
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 edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0x85
ja 0x50f55a
je 0x50e9a4
cmp ebx, 0xa
jb 0x50d8ed
cmp ebx, 0xd
jbe 0x50e9a4
jmp 0x50d8ed
lea eax, [ebx - 0x2028]
cmp eax, 1
ja 0x50d8ed
inc dword [esi + 0xc]
jmp 0x50d12a
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x50e740
movzx ebx, byte [edi]
inc edi
cmp dword [esp + 0x8c], 0
mov dword [esi + 8], edi
je 0x50f66d
cmp ebx, 0xc0
jb 0x50f66d
test bl, 0x20
jne 0x50f5b9
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x50f66a
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x50f5e1
and ebx, 0xf
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
add dword [esi + 8], 2
jmp 0x50f66d
mov edx, dword [esi + 8]
test bl, 8
jne 0x50f607
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]
jmp 0x50f66a
test bl, 4
jne 0x50f636
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]
jmp 0x50f66a
and ebx, 1
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
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x5f0460]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x50f690
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + 1]
movzx edx, word [ecx*2 + 0x5f2660]
cmp eax, 0xa
ja case.default.0x50f6aa
jmp dword [eax*4 + 0x51b06c]
cmp dword [esi + 0x9c], 0xf
jne 0x50d126
jmp 0x50df2b
mov al, byte [edx*8 + 0x5eede1]
cmp al, 9
je 0x50f6da
cmp al, 5
je 0x50f6da
cmp al, 8
je 0x50f6da
xor ecx, ecx
jmp 0x50f6df
mov ecx, 1
xor eax, eax
cmp dword [esi + 0x9c], 0xf
sete al
cmp ecx, eax
jne 0x50d126
jmp 0x50df2b
movzx ecx, byte [edx*8 + 0x5eede1]
xor edx, edx
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + 2]
cmp eax, dword [ecx*4 + 0x5eebf0]
setne dl
xor eax, eax
cmp dword [esi + 0x9c], 0x10
sete al
cmp edx, eax
jne 0x50d126
jmp 0x50df2b
mov eax, dword [esi + 0xc]
xor ecx, ecx
mov al, byte [eax + 2]
cmp al, byte [edx*8 + 0x5eede1]
setne cl
xor eax, eax
cmp dword [esi + 0x9c], 0x10
sete al
cmp ecx, eax
jne 0x50d126
jmp 0x50df2b
mov eax, dword [esi + 0xc]
xor ecx, ecx
mov al, byte [eax + 2]
cmp al, byte [edx*8 + 0x5eede0]
jmp 0x50f73b
movzx eax, byte [edx*8 + 0x5eede1]
mov eax, dword [eax*4 + 0x5eebf0]
cmp eax, 1
je 0x50f6da
cmp eax, 3
je 0x50f6da
xor ecx, ecx
jmp 0x50f6df
cmp ebx, 0x180e
ja 0x50f7d3
je case.0x50f6aa.0
cmp ebx, 0x85
ja 0x50f7bf
je case.0x50f6aa.0
cmp ebx, 9
jb case.0x50f7f3.8203
cmp ebx, 0xd
jbe case.0x50f6aa.0
cmp ebx, 0x20
jmp 0x50f80c
cmp ebx, 0xa0
je case.0x50f6aa.0
cmp ebx, 0x1680
jmp 0x50f80c
cmp ebx, 0x202f
ja 0x50f7fa
je case.0x50f6aa.0
add ebx, 0xffffe000
cmp ebx, 0x29
ja case.0x50f7f3.8203
movzx eax, byte [ebx + 0x51b0a0]
jmp dword [eax*4 + 0x51b098]
cmp ebx, 0x205f
je case.0x50f6aa.0
cmp ebx, 0x3000
je case.0x50f6aa.0
movzx eax, byte [edx*8 + 0x5eede1]
xor ecx, ecx
cmp dword [eax*4 + 0x5eebf0], 6
sete cl
xor eax, eax
cmp dword [esi + 0x9c], 0xf
jmp 0x50f747
movzx eax, byte [edx*8 + 0x5eede1]
mov eax, dword [eax*4 + 0x5eebf0]
cmp eax, 1
je 0x50f6da
cmp eax, 3
je 0x50f6da
cmp ebx, 0x5f
je 0x50f6da
xor ecx, ecx
jmp 0x50f6df
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + 2]
mov ecx, dword [eax*4 + 0x5eeca0]
lea eax, [eax*4 + 0x5eeca0]
cmp ebx, ecx
jb 0x50f88d
nop
lea eax, [eax + 4]
cmp ebx, ecx
je 0x50f89f
mov ecx, dword [eax]
cmp ebx, ecx
jae 0x50f880
cmp dword [esi + 0x9c], 0x10
jne 0x50d126
jmp 0x50df2b
cmp dword [esi + 0x9c], 0x10
je 0x50d126
jmp 0x50df2b
cmp ebx, 0x24
je 0x50f6da
cmp ebx, 0x40
je 0x50f6da
cmp ebx, 0x60
je 0x50f6da
cmp ebx, 0xa0
jb 0x50f8e0
cmp ebx, 0xd7ff
jbe 0x50f6da
cmp ebx, 0xe000
jae 0x50f6da
xor ecx, ecx
jmp 0x50f6df
mov esi, dword [esi]
test esi, esi
je case.default.0x5169a4
mov edi, 0xfffffff2
jmp 0x516989
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x50e740
movzx ebx, byte [edi]
inc edi
mov ecx, dword [esp + 0x8c]
mov dword [esi + 8], edi
test ecx, ecx
je 0x50fa12
cmp ebx, 0xc0
jb 0x50fa12
test bl, 0x20
jne 0x50f950
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x50fa0f
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x50f97f
and ebx, 0xf
shl ebx, 6
or ebx, ecx
mov ecx, dword [esp + 0x8c]
shl ebx, 6
or ebx, eax
add dword [esi + 8], 2
jmp 0x50fa12
mov edx, dword [esi + 8]
test bl, 8
jne 0x50f9a5
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]
jmp 0x50fa08
test bl, 4
jne 0x50f9d4
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]
jmp 0x50fa08
and ebx, 1
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
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 5]
mov ecx, dword [esp + 0x8c]
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x50fa34
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede2]
mov dword [esp + 0x80], eax
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x50fbc6
lea esp, [esp]
mov eax, dword [esi + 8]
mov edi, 1
movzx ebx, byte [eax]
test ecx, ecx
je 0x50fb5e
cmp ebx, 0xc0
jb 0x50fb5e
test bl, 0x20
jne 0x50fa95
movzx eax, byte [eax + 1]
and ebx, 0x1f
mov edi, 2
jmp 0x50fb56
test bl, 0x10
jne 0x50faba
movzx ecx, byte [eax + 1]
and ebx, 0xf
mov eax, dword [esi + 8]
and ecx, 0x3f
shl ebx, 6
mov edi, 3
or ebx, ecx
movzx eax, byte [eax + 2]
jmp 0x50fb56
test bl, 8
jne 0x50fae8
movzx ecx, byte [eax + 1]
and ebx, 7
mov eax, dword [esi + 8]
and ecx, 0x3f
shl ebx, 6
mov edi, 4
or ecx, ebx
shl ecx, 6
movzx ebx, byte [eax + 2]
movzx eax, byte [eax + 3]
and ebx, 0x3f
or ebx, ecx
jmp 0x50fb56
movzx eax, byte [eax + 1]
mov ecx, dword [esi + 8]
and eax, 0x3f
test bl, 4
jne 0x50fb22
and ebx, 3
mov edi, 5
shl ebx, 6
or eax, ebx
movzx ebx, byte [ecx + 2]
shl eax, 6
and ebx, 0x3f
or ebx, eax
movzx eax, byte [ecx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 4]
jmp 0x50fb56
and ebx, edi
mov edi, 6
shl ebx, 6
or eax, ebx
movzx ebx, byte [ecx + 2]
shl eax, 6
and ebx, 0x3f
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
movzx eax, byte [ecx + 5]
and eax, 0x3f
shl ebx, 6
or ebx, eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x50fb80
dec ebx
or ebx, 0xffffff80
inc ebx
mov edx, dword [esp + 0x80]
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx ecx, byte [eax*8 + 0x5eede2]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x5eec68], eax
je 0x50fbc6
add dword [esi + 8], edi
mov eax, dword [esi + 8]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x8c]
cmp eax, dword [ebp + 0x78]
jb 0x50fa60
cmp dword [ebp + 0x88], 0
je 0x50e9a4
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x50e9a4
cmp eax, dword [ebp + 0x84]
jbe 0x50e9a4
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x50e9a4
jmp 0x50e096
mov ecx, dword [esi + 0xc]
xor eax, eax
cmp edx, 0x74
sete al
movzx ebx, byte [ecx + 3]
movzx edx, byte [ecx + 2]
mov dword [esp + 0x7c], eax
movzx eax, byte [ecx + 4]
shl ebx, 8
or ebx, eax
movzx eax, byte [ecx + 1]
shl eax, 8
or edx, eax
lea eax, [ecx + 5]
imul edx, dword [ebp + 0x24]
add edx, 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
jle 0x50fcf4
lea esp, [esp]
movzx ecx, byte [edx]
dec ebx
movzx eax, byte [edx + 1]
shl ecx, 8
or ecx, eax
lea edi, [ecx + ecx]
mov dword [esi + 0x98], edi
cmp edi, dword [esi + 0x14]
jge 0x50fc84
mov eax, dword [ebp + 0xc]
cmp dword [eax + edi*4], 0
jge 0x50fc8d
add edx, dword [ebp + 0x24]
test ebx, ebx
jg 0x50fc60
jmp 0x50fcf4
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
mov dword [esi + 0x88], ecx
jmp 0x50fcf4
xor eax, eax
cmp edx, 0x72
sete al
mov dword [esp + 0x7c], 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 edx, dword [esi + 0x98]
cmp edx, dword [esi + 0x14]
jge 0x50fce4
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
test ecx, ecx
js 0x50fce4
mov eax, dword [eax + edx*4 + 4]
sub eax, ecx
jmp 0x50fcee
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
lea eax, [ecx - 0x62]
cmp eax, 7
ja case.default.0x50fd0f
movzx eax, byte [eax + 0x51b0d4]
jmp dword [eax*4 + 0x51b0cc]
add ecx, 0xffffff9e
lea eax, [edx + 1]
mov dword [esi + 0xc], eax
mov ebx, ecx
and ebx, 1
mov dword [esp + 0x80], ebx
movsx eax, byte [ecx + 0x5ee130]
mov dword [esi + 0x90], eax
movsx eax, byte [ecx + 0x5ee13c]
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x50fd9d
mov dword [esi + 0x8c], SysStringLen
jmp 0x50fd9d
movzx ecx, byte [edx + 1]
xor eax, eax
cmp bl, 0x69
sete al
shl ecx, 8
mov dword [esp + 0x80], 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 0x50fd99
mov dword [esi + 0x8c], SysStringLen
add dword [esi + 0xc], 5
mov eax, dword [esi + 0x88]
mov edi, dword [esp + 0x8c]
test eax, eax
je 0x50d131
jns 0x50fdc1
cmp dword [esi + 0x90], 0
je 0x50d131
mov edi, 1
cmp dword [esi + 0x90], edi
jl 0x50fdff
mov edi, edi
push dword [esp + 0x7c]
mov ebx, dword [esi + 8]
push ebp
push dword [esi + 0x88]
push ebx
push dword [esi + 0x98]
call fcn.0051b5d0
add esp, 0x14
test eax, eax
js 0x50fe31
add eax, ebx
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x50fdd0
mov eax, dword [esi + 0x90]
mov edi, dword [esp + 0x8c]
cmp eax, dword [esi + 0x8c]
je 0x50d131
cmp dword [esp + 0x80], 0
je 0x50fe5a
mov ebx, dword [esp + 0x7c]
mov dword [esi + 0x84], eax
jmp 0x517242
cmp eax, 0xfffffffe
jne 0x50fe3c
mov eax, dword [ebp + 0x78]
mov dword [esi + 8], eax
cmp dword [ebp + 0x88], 0
je case.0x5140b6.14
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb case.0x5140b6.14
jmp 0x50e6d5
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov edi, dword [esi + 0x90]
jmp 0x50fe70
cmp edi, dword [esi + 0x8c]
jge 0x517291
push dword [esp + 0x7c]
mov ebx, dword [esi + 8]
push ebp
push dword [esi + 0x88]
push ebx
push dword [esi + 0x98]
call fcn.0051b5d0
add esp, 0x14
test eax, eax
js 0x50fea5
add eax, ebx
inc edi
mov dword [esi + 8], eax
jmp 0x50fe70
cmp eax, 0xfffffffe
jne 0x517291
cmp dword [ebp + 0x88], 0
je 0x517291
mov eax, dword [ebp + 0x78]
cmp eax, dword [ebp + 0x84]
jbe 0x517291
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x517291
jmp 0x50e096
mov ebx, dword [esp + 0x7c]
push ebx
push ebp
push dword [esi + 0x88]
push dword [esi + 8]
push dword [esi + 0x98]
call fcn.0051b5d0
add esp, 0x14
mov dword [esi + 0x88], eax
test eax, eax
jns 0x50ff69
cmp eax, 0xfffffffe
jne 0x50ff15
mov eax, dword [ebp + 0x78]
mov dword [esi + 8], eax
cmp dword [ebp + 0x88], 0
je case.0x51786d.14
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb case.0x51786d.14
cmp eax, dword [ebp + 0x84]
jbe case.0x51786d.14
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle case.0x51786d.14
mov esi, dword [esi]
test esi, esi
je 0x51adcc
mov edx, dword [esp + 0x8c]
mov edi, 0xfffffff4
jmp 0x516994
add dword [esi + 8], eax
jmp 0x50d12a
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0x28], eax
add dword [esi + 0xc], 0x21
mov edx, dword [esi + 0xc]
mov cl, byte [edx]
movzx edi, cl
lea eax, [edi - 0x62]
cmp eax, 0xb
ja case.default.0x50ff97
movzx eax, byte [eax + 0x51b0e4]
jmp dword [eax*4 + 0x51b0dc]
lea ecx, [edi - 0x62]
lea eax, [edx + 1]
mov dword [esi + 0xc], eax
cmp ecx, 8
jae 0x50ffba
mov ebx, ecx
and ebx, 1
mov dword [esp + 0x84], ebx
jmp 0x50ffc5
mov dword [esp + 0x80], 1
movsx eax, byte [ecx + 0x5ee130]
mov dword [esi + 0x90], eax
movsx eax, byte [ecx + 0x5ee13c]
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x51005c
mov dword [esi + 0x8c], SysStringLen
jmp 0x51005c
xor ebx, ebx
cmp cl, 0x69
sete bl
xor eax, eax
cmp cl, 0x6d
mov dword [esp + 0x84], ebx
movzx ecx, byte [edx + 1]
sete al
shl ecx, 8
mov dword [esp + 0x80], 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 0x510042
mov dword [esi + 0x8c], SysStringLen
add dword [esi + 0xc], 5
jmp 0x51005c
mov dword [esi + 0x8c], 1
mov dword [esi + 0x90], 1
mov edx, dword [esp + 0x8c]
test edx, edx
je 0x5101bc
mov edi, 1
cmp dword [esi + 0x90], edi
jl 0x510211
lea esp, [esp]
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x5101a7
movzx ebx, byte [edx]
inc edx
mov dword [esi + 8], edx
cmp ebx, 0xc0
jb 0x51016c
test bl, 0x20
jne 0x5100ba
movzx eax, byte [edx]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 1]
jmp 0x510169
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x5100e1
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x510167
test bl, 8
jne 0x510104
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x510167
test bl, 4
jne 0x510133
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x510167
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 ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0xff
jbe 0x51017d
cmp dword [esi + 0x9c], 0x6e
jmp 0x510192
mov eax, dword [esi + 0x28]
mov ecx, ebx
and ecx, 7
shr ebx, 3
mov edx, 1
shl edx, cl
test byte [ebx + eax], dl
je case.0x5140b6.14
inc edi
cmp edi, dword [esi + 0x90]
jle 0x510080
jmp 0x510203
cmp dword [ebp + 0x88], 0
je case.0x5140b6.14
mov eax, dword [esi + 8]
jmp 0x50e6d5
mov ebx, 1
cmp dword [esi + 0x90], ebx
jl 0x51020a
lea esp, [esp]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5101a7
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.0x5140b6.14
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x5101d0
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x84]
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x8c]
je 0x50d12a
test ebx, ebx
je 0x51023a
test edx, edx
jne 0x51a4a7
mov dword [esi + 0x84], eax
jmp 0x51732b
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x90]
test edx, edx
je 0x5103f2
mov dword [esp + 0x90], eax
cmp eax, dword [esi + 0x8c]
jge 0x5103df
mov edi, dword [esi + 8]
mov dword [esp + 0x84], 1
cmp edi, dword [ebp + 0x78]
jae 0x5103b7
movzx ebx, byte [edi]
cmp ebx, 0xc0
jb 0x510366
test bl, 0x20
jne 0x5102ab
movzx eax, byte [edi + 1]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
mov dword [esp + 0x84], 2
jmp 0x510366
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test bl, 0x10
jne 0x5102d3
and ebx, 0xf
mov dword [esp + 0x84], 3
shl ebx, 6
or ecx, ebx
jmp 0x51035c
and eax, 0x3f
test bl, 8
jne 0x5102f9
and ebx, 7
mov dword [esp + 0x84], 4
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
jmp 0x51035c
test bl, 4
jne 0x510328
and ebx, 3
mov dword [esp + 0x84], 5
shl ebx, 6
or ecx, ebx
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]
jmp 0x51035c
and ebx, 1
mov dword [esp + 0x84], 6
shl ebx, 6
or ecx, ebx
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
movzx eax, byte [edi + 5]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov ebx, ecx
cmp ebx, 0xff
jbe 0x510377
cmp dword [esi + 0x9c], 0x6e
jmp 0x51038c
mov eax, dword [esi + 0x28]
mov ecx, ebx
and ecx, 7
shr ebx, 3
mov edx, 1
shl edx, cl
test byte [ebx + eax], dl
je 0x5103df
mov eax, dword [esp + 0x84]
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x90]
inc eax
mov dword [esp + 0x90], eax
cmp eax, dword [esi + 0x8c]
jl 0x510261
jmp 0x5103df
cmp dword [ebp + 0x88], 0
je 0x5103df
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x5103df
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
cmp dword [esp + 0x80], 0
je 0x5182ec
jmp 0x50d12a
mov dword [esp + 0x84], eax
cmp eax, dword [esi + 0x8c]
jge 0x51046a
mov ebx, dword [esi + 8]
cmp ebx, dword [ebp + 0x78]
jae 0x510442
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 0x51046a
lea eax, [ebx + 1]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x84]
inc eax
mov dword [esp + 0x84], eax
cmp eax, dword [esi + 0x8c]
jl 0x510401
jmp 0x51046a
cmp dword [ebp + 0x88], 0
je 0x51046a
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x51046a
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
cmp dword [esp + 0x80], 0
je 0x51736b
jmp 0x50d12a
mov eax, dword [esi + 0xc]
add eax, 3
mov dword [esi + 0x28], eax
mov edx, dword [esi + 0xc]
mov eax, edx
movzx ecx, byte [eax + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esi + 0xc], edx
mov cl, byte [edx]
movzx edi, cl
lea eax, [edi - 0x62]
cmp eax, 0xb
ja case.default.0x5104b5
movzx eax, byte [eax + 0x51b0f8]
jmp dword [eax*4 + 0x51b0f0]
lea ecx, [edi - 0x62]
lea eax, [edx + 1]
mov dword [esi + 0xc], eax
cmp ecx, 8
jae 0x5104d8
mov eax, ecx
and eax, 1
mov dword [esp + 0x84], eax
jmp 0x5104e3
mov dword [esp + 0x80], 1
movsx eax, byte [ecx + 0x5ee130]
mov dword [esi + 0x90], eax
movsx eax, byte [ecx + 0x5ee13c]
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x51057a
mov dword [esi + 0x8c], SysStringLen
jmp 0x51057a
xor eax, eax
cmp cl, 0x69
sete al
mov dword [esp + 0x84], eax
xor eax, eax
cmp cl, 0x6d
movzx ecx, byte [edx + 1]
sete al
shl ecx, 8
mov dword [esp + 0x80], 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 0x510560
mov dword [esi + 0x8c], SysStringLen
add dword [esi + 0xc], 5
jmp 0x51057a
mov dword [esi + 0x8c], 1
mov dword [esi + 0x90], 1
mov ebx, 1
cmp dword [esi + 0x90], ebx
jl 0x5106b5
jmp 0x510590
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x5101a7
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x8c], 0
mov dword [esi + 8], edi
je 0x51068a
cmp edx, 0xc0
jb 0x51068a
test dl, 0x20
jne 0x5105d8
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x510687
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x5105ff
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
lea eax, [edi + 2]
jmp 0x510685
test dl, 8
jne 0x510622
and edx, 7
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
lea eax, [edi + 3]
jmp 0x510685
test dl, 4
jne 0x510651
and edx, 3
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
lea eax, [edi + 4]
jmp 0x510685
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 edx, ecx
mov dword [esi + 8], eax
mov edi, dword [esp + 0x8c]
push edi
push dword [esi + 0x28]
push edx
call fcn.0051cbf0
add esp, 0xc
test eax, eax
je case.0x5140b6.14
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x510590
jmp 0x5106bc
mov edi, dword [esp + 0x8c]
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x8c]
je 0x50d131
cmp dword [esp + 0x84], 0
jne 0x51a4b8
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x90]
mov dword [esp + 0x84], eax
cmp eax, dword [esi + 0x8c]
jge 0x51084d
jmp 0x510700
mov edi, dword [esi + 8]
mov ebx, 1
cmp edi, dword [ebp + 0x78]
jae 0x510823
cmp dword [esp + 0x8c], 0
movzx edx, byte [edi]
je 0x5107eb
cmp edx, 0xc0
jb 0x5107eb
test dl, 0x20
jne 0x51074c
movzx eax, byte [edi + 1]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
mov ebx, 2
jmp 0x5107eb
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x51076b
and edx, 0xf
mov ebx, 3
shl edx, 6
or ecx, edx
jmp 0x5107e1
and eax, 0x3f
test dl, 8
jne 0x51078b
and edx, 7
mov ebx, 4
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
jmp 0x5107e1
test dl, 4
jne 0x5107b4
and edx, 3
mov ebx, 5
shl edx, 6
or ecx, edx
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]
jmp 0x5107e1
and edx, ebx
mov ebx, 6
shl edx, 6
or ecx, edx
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
movzx eax, byte [edi + 5]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov edx, ecx
mov edi, dword [esp + 0x8c]
push edi
push dword [esi + 0x28]
push edx
call fcn.0051cbf0
add esp, 0xc
test eax, eax
je 0x51084d
mov eax, dword [esp + 0x84]
add dword [esi + 8], ebx
inc eax
mov dword [esp + 0x84], eax
cmp eax, dword [esi + 0x8c]
jl 0x510700
jmp 0x51084d
cmp dword [ebp + 0x88], 0
je 0x510846
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x510846
mov dword [ebp + 0x64], ebx
cmp dword [ebp + 0x88], ebx
jg 0x50e096
mov edi, dword [esp + 0x8c]
cmp dword [esp + 0x80], 0
jne 0x50d131
jmp 0x518101
mov edx, dword [esp + 0x8c]
test edx, edx
je 0x510a39
mov dword [esi + 0x88], 1
inc dword [esi + 0xc]
mov eax, dword [esi + 0xc]
movzx eax, byte [eax]
mov dword [esi + 0x80], eax
cmp eax, 0xc0
jb 0x5109c0
test al, 0x20
jne 0x5108c0
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
mov eax, dword [esi + 0x80]
and ecx, 0x3f
and eax, 0x1f
shl eax, 6
or ecx, eax
mov dword [esi + 0x80], ecx
inc dword [esi + 0x88]
jmp 0x5109c0
mov ecx, dword [esi + 0xc]
movzx edx, byte [ecx + 1]
and edx, 0x3f
test al, 0x10
jne 0x5108fa
mov eax, dword [esi + 0x80]
and eax, 0xf
shl eax, 6
or edx, eax
movzx eax, byte [ecx + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
mov dword [esi + 0x80], edx
add dword [esi + 0x88], 2
jmp 0x5109c0
test al, 8
jne 0x510936
mov eax, dword [esi + 0x80]
and eax, 7
shl eax, 6
or edx, eax
movzx eax, byte [ecx + 2]
shl edx, 6
and eax, 0x3f
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 0x5109c0
test al, 4
mov eax, dword [esi + 0x80]
jne 0x51097b
and eax, 3
shl eax, 6
or edx, eax
movzx eax, byte [ecx + 2]
shl edx, 6
and eax, 0x3f
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 0x5109c0
and eax, 1
shl eax, 6
or edx, eax
movzx eax, byte [ecx + 2]
shl edx, 6
and eax, 0x3f
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 0x5109f9
cmp dword [ebp + 0x88], ebx
je case.0x5140b6.14
cmp edx, edi
jb case.0x5140b6.14
cmp edx, dword [ebp + 0x84]
jbe case.0x5140b6.14
jmp 0x50e082
test ecx, ecx
jle 0x510a2e
lea ecx, [ecx]
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.0x5140b6.14
mov ecx, dword [esi + 0x88]
test ecx, ecx
jg 0x510a00
dec dword [esi + 0x88]
jmp 0x50d12a
mov eax, dword [ebp + 0x78]
mov edi, dword [esi + 8]
sub eax, edi
cmp eax, 1
jge 0x510a86
cmp dword [ebp + 0x88], ebx
je 0x50d8ed
cmp edi, dword [ebp + 0x84]
jbe 0x50d8ed
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x50d8ed
mov esi, dword [esi]
test esi, esi
je 0x51adcc
mov edi, 0xfffffff4
jmp 0x516990
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 0x510d9b
jmp 0x50df2b
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x50e740
cmp dword [esp + 0x8c], ebx
je 0x510d7c
mov dword [esi + 0x88], 1
inc dword [esi + 0xc]
mov eax, dword [esi + 0xc]
movzx eax, byte [eax]
mov dword [esi + 0x80], eax
cmp eax, 0xc0
jb 0x510c0b
test al, 0x20
jne 0x510b0b
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
mov eax, dword [esi + 0x80]
and ecx, 0x3f
and eax, 0x1f
shl eax, 6
or ecx, eax
mov dword [esi + 0x80], ecx
inc dword [esi + 0x88]
jmp 0x510c0b
mov ecx, dword [esi + 0xc]
movzx edx, byte [ecx + 1]
and edx, 0x3f
test al, 0x10
jne 0x510b45
mov eax, dword [esi + 0x80]
and eax, 0xf
shl eax, 6
or edx, eax
movzx eax, byte [ecx + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
mov dword [esi + 0x80], edx
add dword [esi + 0x88], 2
jmp 0x510c0b
test al, 8
jne 0x510b81
mov eax, dword [esi + 0x80]
and eax, 7
shl eax, 6
or edx, eax
movzx eax, byte [ecx + 2]
shl edx, 6
and eax, 0x3f
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 0x510c0b
test al, 4
mov eax, dword [esi + 0x80]
jne 0x510bc6
and eax, 3
shl eax, 6
or edx, eax
movzx eax, byte [ecx + 2]
shl edx, 6
and eax, 0x3f
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 0x510c0b
and eax, 1
shl eax, 6
or edx, eax
movzx eax, byte [ecx + 2]
shl edx, 6
and eax, 0x3f
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 [esi + 0x80]
mov eax, dword [esi + 8]
cmp edi, 0x80
jae 0x510c39
mov edx, dword [ebp + 0x38]
movzx ecx, byte [eax]
mov al, byte [edi + edx]
cmp al, byte [ecx + edx]
jne 0x50df2b
inc dword [esi + 0xc]
inc dword [esi + 8]
jmp 0x50d12a
movzx ebx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 8], edx
cmp ebx, 0xc0
jb 0x510d1b
test bl, 0x20
jne 0x510c69
movzx eax, byte [edx]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 1]
jmp 0x510d18
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x510c90
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x510d16
test bl, 8
jne 0x510cb3
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x510d16
test bl, 4
jne 0x510ce2
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x510d16
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 ebx, ecx
mov dword [esi + 8], eax
mov eax, dword [esi + 0x88]
add dword [esi + 0xc], eax
mov edi, dword [esi + 0x80]
cmp edi, ebx
je 0x50d12a
mov eax, edi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x5f0460]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x510d55
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5f2660]
mov eax, dword [eax*8 + 0x5eede4]
add eax, edi
mov edi, dword [esp + 0x8c]
cmp ebx, eax
je 0x50d131
jmp 0x50df2b
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 0x50df2b
lea eax, [edi + 1]
mov dword [esi + 8], eax
add dword [esi + 0xc], 2
jmp 0x50d12a
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 0x510ecd
mov dword [esp + 0x80], 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 0x510e04
mov dword [esp + 0x84], ebx
cmp al, 0x35
jne 0x510e0f
mov dword [esp + 0x84], 1
lea eax, [ecx + 3]
mov dword [esi + 0xc], eax
jmp 0x510ecd
mov dword [esi + 0x90], ebx
mov edi, 1
mov dword [esi + 0x8c], SysStringLen
inc dword [esi + 0xc]
mov dword [esp + 0x80], 1
jmp 0x510ed4
mov edi, 1
mov dword [esi + 0x90], edi
mov dword [esi + 0x8c], SysStringLen
inc dword [esi + 0xc]
mov dword [esp + 0x80], edi
jmp 0x510ed4
mov edi, 1
mov dword [esi + 0x90], ebx
mov dword [esi + 0x8c], edi
inc dword [esi + 0xc]
mov dword [esp + 0x80], edi
jmp 0x510ed4
mov ecx, dword [esi + 0xc]
cmp edx, 0x2e
sbb eax, eax
and eax, 0xfffffff3
movzx edx, byte [ecx]
add eax, 0x2e
sub edx, eax
lea eax, [ecx + 1]
mov dword [esi + 0xc], eax
mov eax, edx
and eax, 1
mov dword [esp + 0x84], eax
movsx eax, byte [edx + 0x5ee130]
mov dword [esi + 0x90], eax
movsx eax, byte [edx + 0x5ee13c]
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x510ecd
mov dword [esi + 0x8c], SysStringLen
mov edi, dword [esp + 0x80]
cmp dword [esp + 0x8c], ebx
je 0x511348
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 0x51101b
mov eax, dword [esi + 0xc]
test bl, 0x20
jne 0x510f31
movzx eax, byte [eax + 1]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or eax, ebx
mov dword [esi + 0x80], eax
inc dword [esi + 0x88]
jmp 0x51101b
test bl, 0x10
jne 0x510f66
movzx ecx, byte [eax + 1]
and ebx, 0xf
mov eax, dword [esi + 0xc]
and ecx, 0x3f
shl ebx, 6
or ecx, ebx
shl ecx, 6
movzx eax, byte [eax + 2]
and eax, 0x3f
or ecx, eax
mov dword [esi + 0x80], ecx
add dword [esi + 0x88], 2
jmp 0x51101b
mov ecx, dword [esi + 0xc]
movzx edx, byte [eax + 1]
and edx, 0x3f
movzx eax, byte [ecx + 2]
and eax, 0x3f
test bl, 8
jne 0x510fa4
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 0x51101b
test bl, 4
jne 0x510fdd
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 0x51101b
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 0x511357
cmp dword [esi + 0x9c], 0x2e
jb 0x51108c
mov edi, dword [esi + 0x80]
mov eax, edi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x5f0460]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x511063
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5f2660]
mov ecx, dword [eax*8 + 0x5eede4]
add ecx, edi
cmp ecx, edi
je 0x51108c
lea eax, [esi + 0x70]
push eax
push ecx
call fcn.0051cb90
add esp, 8
mov dword [esi + 0x6c], eax
jmp 0x511093
mov dword [esi + 0x6c], 0
cmp dword [esi + 0x90], 1
mov dword [esp + 0x94], 1
jl 0x5111c6
jmp 0x5110b0
mov ecx, dword [ebp + 0x78]
mov eax, ecx
mov ebx, dword [esi + 0x88]
sub eax, ebx
mov edi, dword [esi + 8]
mov dword [esp + 0x90], ecx
cmp edi, eax
ja 0x511134
mov edx, dword [esi + 0x24]
mov ecx, edi
mov edi, ebx
sub edi, 4
jb 0x5110e8
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5110f1
add ecx, 4
add edx, 4
sub edi, 4
jae 0x5110d7
cmp edi, 0xfffffffc
je 0x5111a8
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x51112a
cmp edi, 0xfffffffd
je 0x5111a8
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x51112a
cmp edi, 0xfffffffe
je 0x5111a8
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x51112a
cmp edi, 0xffffffff
je 0x5111a8
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x5111a8
mov edi, dword [esi + 8]
mov ecx, dword [esp + 0x90]
mov ebx, dword [esi + 0x6c]
test ebx, ebx
jle 0x50fe3c
sub ecx, ebx
cmp edi, ecx
ja 0x50fe3c
mov ecx, edi
lea edx, [esi + 0x70]
mov edi, ebx
sub edi, 4
jb 0x511166
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x51116b
add ecx, 4
add edx, 4
sub edi, 4
jae 0x511155
cmp edi, 0xfffffffc
je 0x5111a8
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x50fe3c
cmp edi, 0xfffffffd
je 0x5111a8
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x50fe3c
cmp edi, 0xfffffffe
je 0x5111a8
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x50fe3c
cmp edi, 0xffffffff
je 0x5111a8
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x50fe3c
mov edx, dword [esp + 0x94]
add dword [esi + 8], ebx
inc edx
mov dword [esp + 0x94], edx
cmp edx, dword [esi + 0x90]
jle 0x5110b0
mov eax, dword [esi + 0x90]
mov edi, dword [esp + 0x8c]
cmp eax, dword [esi + 0x8c]
je 0x50d131
cmp dword [esp + 0x84], 0
jne 0x51a4c9
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x90]
mov dword [esp + 0x90], eax
cmp eax, dword [esi + 0x8c]
jge 0x511335
lea esp, [esp]
mov ecx, dword [ebp + 0x78]
mov eax, ecx
mov ebx, dword [esi + 0x88]
sub eax, ebx
mov edi, dword [esi + 8]
mov dword [esp + 0x84], ecx
cmp edi, eax
ja 0x51128c
mov edx, dword [esi + 0x24]
mov ecx, edi
mov edi, ebx
sub edi, 4
jb 0x511248
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x511251
add ecx, 4
add edx, 4
sub edi, 4
jae 0x511237
cmp edi, 0xfffffffc
je 0x5112e8
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x511282
cmp edi, 0xfffffffd
je 0x5112e8
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x511282
cmp edi, 0xfffffffe
je 0x5112e8
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x511282
cmp edi, 0xffffffff
je 0x5112e8
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x5112e8
mov edi, dword [esi + 8]
mov ecx, dword [esp + 0x84]
mov ebx, dword [esi + 0x6c]
test ebx, ebx
jle 0x511308
sub ecx, ebx
cmp edi, ecx
ja 0x511308
mov ecx, edi
lea edx, [esi + 0x70]
mov edi, ebx
sub edi, 4
jb 0x5112b6
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5112bb
add ecx, 4
add edx, 4
sub edi, 4
jae 0x5112a5
cmp edi, 0xfffffffc
je 0x5112e8
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x511308
cmp edi, 0xfffffffd
je 0x5112e8
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x511308
cmp edi, 0xfffffffe
je 0x5112e8
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x511308
cmp edi, 0xffffffff
je 0x5112e8
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x511308
mov edx, dword [esp + 0x90]
add dword [esi + 8], ebx
inc edx
mov dword [esp + 0x90], edx
cmp edx, dword [esi + 0x8c]
jl 0x511210
jmp 0x511335
cmp dword [ebp + 0x88], 0
je 0x511335
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x511335
cmp eax, dword [ebp + 0x84]
jbe 0x511335
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
cmp dword [esp + 0x80], 0
je 0x5184ac
jmp 0x50d12a
mov eax, dword [esi + 0xc]
movzx eax, byte [eax]
mov dword [esi + 0x80], eax
inc dword [esi + 0xc]
cmp dword [esi + 0x9c], 0x2e
jb 0x51144f
mov ecx, dword [ebp + 0x3c]
mov edx, 1
mov eax, dword [esi + 0x80]
movzx eax, byte [ecx + eax]
mov dword [esi + 0x94], eax
cmp dword [esi + 0x90], edx
jl 0x5113b4
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5101a7
movzx ecx, byte [eax]
cmp dword [esi + 0x80], ecx
je 0x5113a7
cmp dword [esi + 0x94], ecx
jne case.0x5140b6.14
inc eax
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x90]
jle 0x511384
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x8c]
je 0x50d12a
cmp dword [esp + 0x84], 0
je 0x5113db
mov dword [esi + 0x84], eax
jmp 0x51740b
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge 0x511442
nop
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x51141a
movzx ecx, byte [eax]
cmp dword [esi + 0x80], ecx
je 0x51140b
cmp dword [esi + 0x94], ecx
jne 0x511442
inc eax
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x5113f0
jmp 0x511442
cmp dword [ebp + 0x88], 0
je 0x511442
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x511442
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
test edi, edi
je 0x51744b
jmp 0x50d12a
mov edi, 1
cmp dword [esi + 0x90], edi
jl 0x51148a
lea esp, [esp]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5101a7
movzx edx, byte [eax]
inc eax
mov ecx, dword [esi + 0x80]
mov dword [esi + 8], eax
cmp ecx, edx
jne case.0x5140b6.14
inc edi
cmp edi, dword [esi + 0x90]
jle 0x511460
mov eax, dword [esi + 0x90]
mov edi, dword [esp + 0x8c]
cmp eax, dword [esi + 0x8c]
je 0x50d131
cmp dword [esp + 0x84], 0
je 0x5114b8
mov dword [esi + 0x84], eax
jmp 0x5174d8
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge 0x51151c
lea esp, [esp]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x5114f4
movzx eax, byte [ecx]
cmp dword [esi + 0x80], eax
jne 0x51151c
lea eax, [ecx + 1]
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x5114d0
jmp 0x51151c
cmp dword [ebp + 0x88], 0
je 0x51151c
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x51151c
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
cmp dword [esp + 0x80], 0
je 0x517518
jmp 0x50d131
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jb 0x511554
cmp dword [ebp + 0x88], ebx
je case.0x5140b6.14
cmp ecx, dword [ebp + 0x84]
jbe case.0x5140b6.14
jmp 0x50e082
test edi, edi
je 0x5117cc
inc dword [esi + 0xc]
mov eax, dword [esi + 0xc]
movzx ebx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 0xc], edx
cmp ebx, 0xc0
jb 0x511655
movzx eax, byte [edx]
and eax, 0x3f
test bl, 0x20
jne 0x511592
and ebx, 0x1f
shl ebx, 6
or ebx, eax
lea eax, [edx + 1]
jmp 0x511652
test bl, 0x10
jne 0x5115b3
and ebx, 0xf
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 2]
jmp 0x511652
test bl, 8
jne 0x5115de
and ebx, 7
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [edx + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add dword [esi + 0xc], 3
jmp 0x511655
mov ecx, dword [esi + 0xc]
test bl, 4
jne 0x511617
and ebx, 3
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 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 0x511652
and ebx, 1
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 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 edi, [eax + 1]
mov dword [esp + 0x80], edx
mov dword [esi + 8], edi
cmp edx, 0xc0
jb 0x511748
test dl, 0x20
jne 0x51168f
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x51173e
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x5116b6
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
lea eax, [edi + 2]
jmp 0x51173c
test dl, 8
jne 0x5116d9
and edx, 7
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
lea eax, [edi + 3]
jmp 0x51173c
test dl, 4
jne 0x511708
and edx, 3
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
lea eax, [edi + 4]
jmp 0x51173c
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 edx, ecx
mov dword [esp + 0x80], edx
mov dword [esi + 8], eax
cmp dword [esi + 0x9c], 0x1f
jne 0x511765
mov edi, dword [esp + 0x8c]
cmp ebx, edx
jne 0x50d131
jmp 0x50df2b
cmp ebx, 0x7f
jbe 0x5117a2
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x5f0460]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x51178d
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5f2660]
mov ecx, dword [eax*8 + 0x5eede4]
add ecx, ebx
jmp 0x5117a9
mov eax, dword [ebp + 0x3c]
movzx ecx, byte [eax + ebx]
mov eax, dword [esp + 0x80]
cmp ebx, eax
je 0x50df2b
mov edi, dword [esp + 0x8c]
cmp ecx, eax
jne 0x50d131
jmp 0x50df2b
mov eax, dword [esi + 0xc]
movzx edi, byte [ecx]
movzx edx, byte [eax + 1]
lea eax, [ecx + 1]
mov dword [esi + 8], eax
cmp edx, edi
je case.0x5140b6.14
cmp dword [esi + 0x9c], 0x20
jne 0x510d9b
mov eax, dword [ebp + 0x3c]
movzx eax, byte [eax + edx]
cmp eax, edi
je case.0x5140b6.14
add dword [esi + 0xc], 2
jmp 0x50d12a
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 0x511966
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 0x51186b
cmp al, 0x4f
je 0x51186b
xor ebx, ebx
lea eax, [ecx + 3]
mov dword [esp + 0x84], ebx
mov dword [esi + 0xc], eax
jmp 0x511966
mov ebx, 1
lea eax, [ecx + 3]
mov dword [esp + 0x84], ebx
mov dword [esi + 0xc], eax
jmp 0x511966
mov dword [esi + 0x90], ebx
mov dword [esi + 0x8c], SysStringLen
inc dword [esi + 0xc]
mov dword [esp + 0x80], 1
jmp 0x511966
mov dword [esi + 0x90], 1
mov dword [esi + 0x8c], SysStringLen
inc dword [esi + 0xc]
mov dword [esp + 0x80], 1
jmp 0x511966
mov dword [esi + 0x90], ebx
mov dword [esi + 0x8c], 1
inc dword [esi + 0xc]
mov dword [esp + 0x80], 1
jmp 0x511966
mov dword [esi + 0x90], ebx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x80], 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 0x511966
mov ecx, dword [esi + 0xc]
cmp edx, 0x48
sbb eax, eax
and eax, 0xfffffff3
movzx edx, byte [ecx]
add eax, 0x48
sub edx, eax
lea eax, [ecx + 1]
mov dword [esi + 0xc], eax
mov ebx, edx
and ebx, 1
mov dword [esp + 0x84], ebx
movsx eax, byte [edx + 0x5ee130]
mov dword [esi + 0x90], eax
movsx eax, byte [edx + 0x5ee13c]
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x511966
mov dword [esi + 0x8c], SysStringLen
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x8c]
movzx eax, byte [eax]
mov dword [esi + 0x80], eax
inc dword [esi + 0xc]
mov edi, dword [esi + 0xc]
test edx, edx
je 0x511ac1
mov eax, dword [esi + 0x80]
cmp eax, 0xc0
jb 0x511ac1
test al, 0x20
jne 0x5119b8
movzx ecx, byte [edi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
mov dword [esi + 0x80], ecx
inc dword [esi + 0xc]
jmp 0x511ac1
test al, 0x10
jne 0x5119eb
mov eax, dword [esi + 0x80]
movzx ecx, byte [edi]
and eax, 0xf
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx eax, byte [edi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov dword [esi + 0x80], ecx
add dword [esi + 0xc], 2
jmp 0x511ac1
test al, 8
jne 0x511a2d
mov eax, dword [esi + 0x80]
movzx ecx, byte [edi]
and eax, 7
shl eax, 6
and ecx, 0x3f
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov eax, dword [esi + 0xc]
shl ecx, 6
movzx eax, byte [eax + 2]
and eax, 0x3f
or ecx, eax
mov dword [esi + 0x80], ecx
add dword [esi + 0xc], 3
jmp 0x511ac1
movzx edx, byte [edi]
mov ecx, dword [esi + 0xc]
and edx, 0x3f
test al, 4
mov eax, dword [esi + 0x80]
jne 0x511a78
and eax, 3
shl eax, 6
or edx, eax
movzx eax, byte [edi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [ecx + 2]
shl edx, 6
and eax, 0x3f
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 + 0xc], 4
jmp 0x511aba
and eax, 1
shl eax, 6
or edx, eax
movzx eax, byte [edi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [ecx + 2]
shl edx, 6
and eax, 0x3f
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 + 0xc], 5
mov edx, dword [esp + 0x8c]
cmp dword [esi + 0x9c], 0x48
jb 0x511ee5
test edx, edx
je 0x511b1c
mov edi, dword [esi + 0x80]
cmp edi, 0x7f
jbe 0x511b1c
mov eax, edi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x5f0460]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x511b00
dec eax
or eax, 0xffffff80
inc eax
mov edx, dword [esp + 0x8c]
add ecx, eax
movzx eax, word [ecx*2 + 0x5f2660]
mov eax, dword [eax*8 + 0x5eede4]
add eax, edi
jmp 0x511b29
mov ecx, dword [ebp + 0x3c]
mov eax, dword [esi + 0x80]
movzx eax, byte [ecx + eax]
mov dword [esi + 0x94], eax
test edx, edx
je 0x511c70
mov edi, 1
cmp dword [esi + 0x90], edi
jl 0x511cbb
jmp 0x511b50
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x5101a7
movzx ecx, byte [edx]
inc edx
mov dword [esi + 8], edx
cmp ecx, 0xc0
jb 0x511c49
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x511b8a
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x511c46
test cl, 0x10
jne 0x511bab
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 0x511c46
test cl, 8
jne 0x511bd5
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 0x511c46
test cl, 4
jne 0x511c0b
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 0x511c46
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
cmp dword [esi + 0x80], ecx
je case.0x5140b6.14
cmp dword [esi + 0x94], ecx
je case.0x5140b6.14
inc edi
cmp edi, dword [esi + 0x90]
jle 0x511b50
jmp 0x511cb4
mov edx, 1
cmp dword [esi + 0x90], edx
jl 0x511cb4
lea ecx, [ecx]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5101a7
movzx ecx, byte [eax]
cmp dword [esi + 0x80], ecx
je case.0x5140b6.14
cmp dword [esi + 0x94], ecx
je case.0x5140b6.14
inc eax
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x90]
jle 0x511c80
mov edx, dword [esp + 0x8c]
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x8c]
je 0x50d12a
test ebx, ebx
je 0x511ce4
test edx, edx
jne 0x51a4da
mov dword [esi + 0x84], eax
jmp 0x5175af
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
test edx, edx
je 0x511e6d
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x511e5a
mov edi, dword [esi + 8]
mov eax, 1
cmp edi, dword [ebp + 0x78]
jae 0x511e32
movzx edx, byte [edi]
cmp edx, 0xc0
jb 0x511e0e
test dl, 0x20
jne 0x511d42
movzx eax, byte [edi + 1]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 2
jmp 0x511e0e
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x10
jne 0x511d6c
movzx eax, byte [edi + 2]
and edx, 0xf
shl edx, 6
and eax, 0x3f
or ecx, edx
shl ecx, 6
or ecx, eax
mov eax, 3
jmp 0x511e0c
test dl, 8
jne 0x511d98
movzx eax, byte [edi + 2]
and edx, 7
shl edx, 6
and eax, 0x3f
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov eax, 4
jmp 0x511e0c
test dl, 4
jne 0x511dd0
movzx eax, byte [edi + 2]
and edx, 3
and eax, 0x3f
shl edx, 6
or ecx, edx
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 eax, 5
jmp 0x511e0c
and edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or ecx, edx
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
movzx eax, byte [edi + 5]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov eax, 6
mov edx, ecx
cmp dword [esi + 0x80], edx
je 0x511e5a
cmp dword [esi + 0x94], edx
je 0x511e5a
add eax, edi
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x511d04
jmp 0x511e5a
cmp dword [ebp + 0x88], 0
je 0x511e5a
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x511e5a
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
cmp dword [esp + 0x80], 0
je 0x51868c
jmp 0x50d12a
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge 0x511ed2
jmp 0x511e80
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x511eaa
movzx ecx, byte [eax]
cmp dword [esi + 0x80], ecx
je 0x511ed2
cmp dword [esi + 0x94], ecx
je 0x511ed2
inc eax
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x511e80
jmp 0x511ed2
cmp dword [ebp + 0x88], 0
je 0x511ed2
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x511ed2
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
cmp dword [esp + 0x80], 0
je 0x5175ef
jmp 0x50d12a
test edx, edx
je 0x512007
mov ebx, 1
cmp dword [esi + 0x90], ebx
jl 0x512045
mov edi, edi
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x5101a7
movzx edx, byte [edi]
inc edi
mov dword [esi + 8], edi
cmp edx, 0xc0
jb 0x511fec
test dl, 0x20
jne 0x511f3a
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x511fe9
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x511f61
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
lea eax, [edi + 2]
jmp 0x511fe7
test dl, 8
jne 0x511f84
and edx, 7
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
lea eax, [edi + 3]
jmp 0x511fe7
test dl, 4
jne 0x511fb3
and edx, 3
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
lea eax, [edi + 4]
jmp 0x511fe7
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 edx, ecx
mov dword [esi + 8], eax
cmp dword [esi + 0x80], edx
je case.0x5140b6.14
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x511f00
jmp 0x51203e
mov edi, 1
cmp dword [esi + 0x90], edi
jl 0x512045
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5101a7
movzx edx, byte [eax]
inc eax
mov ecx, dword [esi + 0x80]
mov dword [esi + 8], eax
cmp ecx, edx
je case.0x5140b6.14
inc edi
cmp edi, dword [esi + 0x90]
jle 0x512014
mov edx, dword [esp + 0x8c]
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x8c]
je 0x50d12a
cmp dword [esp + 0x84], 0
je 0x512074
test edx, edx
jne 0x51a4ef
mov dword [esi + 0x84], eax
jmp 0x51767c
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
test edx, edx
je 0x5121f8
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x5121e5
mov edi, dword [esi + 8]
mov eax, 1
cmp edi, dword [ebp + 0x78]
jae 0x5121bd
movzx edx, byte [edi]
cmp edx, 0xc0
jb 0x5121a1
test dl, 0x20
jne 0x5120d2
movzx eax, byte [edi + 1]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 2
jmp 0x5121a1
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x10
jne 0x5120fc
movzx eax, byte [edi + 2]
and edx, 0xf
shl edx, 6
and eax, 0x3f
or ecx, edx
shl ecx, 6
or ecx, eax
mov eax, 3
jmp 0x51219f
test dl, 8
jne 0x51212b
movzx eax, byte [edi + 2]
and edx, 7
shl edx, 6
and eax, 0x3f
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov eax, 4
jmp 0x51219f
test dl, 4
jne 0x512163
movzx eax, byte [edi + 2]
and edx, 3
and eax, 0x3f
shl edx, 6
or ecx, edx
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 eax, 5
jmp 0x51219f
and edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or ecx, edx
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
movzx eax, byte [edi + 5]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov eax, 6
mov edx, ecx
cmp dword [esi + 0x80], edx
je 0x5121e5
add eax, edi
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x512094
jmp 0x5121e5
cmp dword [ebp + 0x88], 0
je 0x5121e5
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x5121e5
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
cmp dword [esp + 0x80], 0
je 0x518850
jmp 0x50d12a
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge 0x512252
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x51222a
movzx eax, byte [ecx]
cmp dword [esi + 0x80], eax
je 0x512252
lea eax, [ecx + 1]
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x512206
jmp 0x512252
cmp dword [ebp + 0x88], 0
je 0x512252
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x512252
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
cmp dword [esp + 0x80], 0
je 0x5176bc
jmp 0x50d12a
mov eax, dword [esi + 0xc]
mov dword [esp + 0x84], 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 0x5123a4
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 + 0x84], edx
mov dword [esi + 0xc], eax
jmp 0x5123a4
mov dword [esi + 0x90], ebx
mov dword [esi + 0x8c], SysStringLen
inc dword [esi + 0xc]
mov dword [esp + 0x80], 1
jmp 0x5123a4
mov dword [esi + 0x90], 1
mov dword [esi + 0x8c], SysStringLen
inc dword [esi + 0xc]
mov dword [esp + 0x80], 1
jmp 0x5123a4
mov dword [esi + 0x90], ebx
mov dword [esi + 0x8c], 1
inc dword [esi + 0xc]
mov dword [esp + 0x80], 1
jmp 0x5123a4
mov dword [esi + 0x90], ebx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x80], 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 0x5123a4
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax]
inc eax
mov dword [esi + 0xc], eax
movsx eax, byte [ecx + 0x5ee0db]
lea edx, [ecx - 0x55]
mov dword [esi + 0x90], eax
and edx, 1
movsx eax, byte [ecx + 0x5ee0e7]
mov dword [esp + 0x84], edx
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x5123a4
mov dword [esi + 0x8c], SysStringLen
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 0x5123c6
cmp ecx, 0xf
je 0x5123c6
mov dword [esi + 0x60], 0xffffffff
jmp 0x5123e9
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
inc dword [esi + 0xc]
mov eax, dword [esi + 0xc]
movzx eax, byte [eax]
mov dword [esi + 0x64], eax
inc dword [esi + 0xc]
mov ecx, dword [esi + 0x90]
test ecx, ecx
jle 0x51438b
mov eax, dword [esi + 0x60]
test eax, eax
js 0x513198
cmp eax, 0xa
ja case.default.0x50f6aa
jmp dword [eax*4 + 0x51b104]
cmp dword [esi + 0x68], ebx
jne 0x50df2b
mov edx, 1
cmp ecx, edx
jl 0x51438b
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x51247d
movzx ecx, byte [eax]
inc eax
mov dword [esi + 8], eax
test edi, edi
je 0x51246f
cmp ecx, 0xc0
jb 0x51246f
test cl, 0x20
jne 0x51244b
inc eax
jmp 0x51246c
test cl, 0x10
jne 0x512455
add eax, 2
jmp 0x51246c
test cl, 8
jne 0x51245f
add eax, 3
jmp 0x51246c
test cl, 4
jne 0x512469
add eax, 4
jmp 0x51246c
add eax, 5
mov dword [esi + 8], eax
inc edx
cmp edx, dword [esi + 0x90]
jle 0x512428
jmp 0x51438b
cmp dword [ebp + 0x88], ebx
je case.0x5140b6.14
mov eax, dword [esi + 8]
jmp 0x50e6d5
mov edi, 1
cmp ecx, edi
jl 0x51438b
mov edi, edi
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x5101a7
movzx ebx, byte [edx]
inc edx
cmp dword [esp + 0x8c], 0
mov dword [esi + 8], edx
je 0x51259a
cmp ebx, 0xc0
jb 0x51259a
test bl, 0x20
jne 0x5124e8
movzx eax, byte [edx]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 1]
jmp 0x512597
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x51250f
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x512595
test bl, 8
jne 0x512532
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x512595
test bl, 4
jne 0x512561
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x512595
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 ebx, ecx
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x5125bc
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
cmp eax, 9
je 0x5125e1
cmp eax, 5
je 0x5125e1
cmp eax, 8
je 0x5125e1
xor eax, eax
jmp 0x5125e6
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.0x5140b6.14
inc edi
cmp edi, dword [esi + 0x90]
jle 0x5124a0
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x51438b
mov edi, edi
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x5101a7
movzx ebx, byte [edx]
inc edx
cmp dword [esp + 0x8c], 0
mov dword [esi + 8], edx
je 0x512708
cmp ebx, 0xc0
jb 0x512708
test bl, 0x20
jne 0x512658
movzx eax, byte [edx]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 1]
jmp 0x512705
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x51267f
and ebx, 0xf
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
lea eax, [edx + 2]
jmp 0x512705
test bl, 8
jne 0x5126a2
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]
jmp 0x512705
test bl, 4
jne 0x5126d1
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]
jmp 0x512705
and ebx, 1
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
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x51272a
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
mov eax, dword [eax*4 + 0x5eebf0]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je case.0x5140b6.14
inc edi
cmp edi, dword [esi + 0x90]
jle 0x512610
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x51438b
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x5101a7
movzx ebx, byte [edx]
inc edx
cmp dword [esp + 0x8c], 0
mov dword [esi + 8], edx
je 0x51286b
cmp ebx, 0xc0
jb 0x51286b
test bl, 0x20
jne 0x5127bb
movzx eax, byte [edx]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 1]
jmp 0x512868
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x5127e2
and ebx, 0xf
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
lea eax, [edx + 2]
jmp 0x512868
test bl, 8
jne 0x512805
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]
jmp 0x512868
test bl, 4
jne 0x512834
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]
jmp 0x512868
and ebx, 1
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
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x51288d
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je case.0x5140b6.14
inc edi
cmp edi, dword [esi + 0x90]
jle 0x512773
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x51438b
nop
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x5101a7
movzx ebx, byte [edx]
inc edx
cmp dword [esp + 0x8c], 0
mov dword [esi + 8], edx
je 0x5129c8
cmp ebx, 0xc0
jb 0x5129c8
test bl, 0x20
jne 0x512918
movzx eax, byte [edx]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 1]
jmp 0x5129c5
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x51293f
and ebx, 0xf
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
lea eax, [edx + 2]
jmp 0x5129c5
test bl, 8
jne 0x512962
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]
jmp 0x5129c5
test bl, 4
jne 0x512991
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]
jmp 0x5129c5
and ebx, 1
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
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x5129ea
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede0]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je case.0x5140b6.14
inc edi
cmp edi, dword [esi + 0x90]
jle 0x5128d0
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x51438b
lea esp, [esp]
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x5101a7
movzx ebx, byte [edx]
inc edx
cmp dword [esp + 0x8c], 0
mov dword [esi + 8], edx
je 0x512b2a
cmp ebx, 0xc0
jb 0x512b2a
test bl, 0x20
jne 0x512a78
movzx eax, byte [edx]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 1]
jmp 0x512b27
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x512a9f
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x512b25
test bl, 8
jne 0x512ac2
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x512b25
test bl, 4
jne 0x512af1
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x512b25
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 ebx, ecx
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x512b4c
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
mov eax, dword [eax*4 + 0x5eebf0]
cmp eax, 1
je 0x512b73
cmp eax, 3
je 0x512b73
xor eax, eax
jmp 0x512b78
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.0x5140b6.14
inc edi
cmp edi, dword [esi + 0x90]
jle 0x512a30
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x51438b
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x5101a7
movzx ebx, byte [edx]
inc edx
cmp dword [esp + 0x8c], 0
mov dword [esi + 8], edx
je 0x512c9a
cmp ebx, 0xc0
jb 0x512c9a
test bl, 0x20
jne 0x512be8
movzx eax, byte [edx]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 1]
jmp 0x512c97
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x512c0f
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x512c95
test bl, 8
jne 0x512c32
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x512c95
test bl, 4
jne 0x512c61
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x512c95
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 ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0x180e
ja 0x512cdd
je case.0x512cf9.8192
cmp ebx, 0x85
ja 0x512cc9
je case.0x512cf9.8192
cmp ebx, 9
jb case.0x512cf9.8203
cmp ebx, 0xd
jbe case.0x512cf9.8192
cmp ebx, 0x20
jmp 0x512d0e
cmp ebx, 0xa0
je case.0x512cf9.8192
cmp ebx, 0x1680
jmp 0x512d0e
cmp ebx, 0x202f
ja 0x512d00
je case.0x512cf9.8192
lea eax, [ebx - 0x2000]
cmp eax, 0x29
ja case.0x512cf9.8203
movzx eax, byte [eax + 0x51b138]
jmp dword [eax*4 + 0x51b130]
cmp ebx, 0x205f
je case.0x512cf9.8192
cmp ebx, 0x3000
je case.0x512cf9.8192
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x512d32
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
cmp dword [eax*4 + 0x5eebf0], 6
sete cl
cmp ecx, dword [esi + 0x68]
je case.0x5140b6.14
jmp 0x512d66
cmp dword [esi + 0x68], 0
jne case.0x5140b6.14
inc edi
cmp edi, dword [esi + 0x90]
jle 0x512ba0
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x51438b
jmp 0x512d90
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x5101a7
movzx ebx, byte [edx]
inc edx
cmp dword [esp + 0x8c], 0
mov dword [esi + 8], edx
je 0x512e88
cmp ebx, 0xc0
jb 0x512e88
test bl, 0x20
jne 0x512dd8
movzx eax, byte [edx]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 1]
jmp 0x512e85
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x512dff
and ebx, 0xf
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
lea eax, [edx + 2]
jmp 0x512e85
test bl, 8
jne 0x512e22
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]
jmp 0x512e85
test bl, 4
jne 0x512e51
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]
jmp 0x512e85
and ebx, 1
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
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x5f0460]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x512eab
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
mov eax, dword [eax*4 + 0x5eebf0]
cmp eax, 1
je 0x512ed7
cmp eax, 3
je 0x512ed7
cmp ebx, 0x5f
je 0x512ed7
xor eax, eax
jmp 0x512edc
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.0x5140b6.14
inc edi
cmp edi, dword [esi + 0x90]
jle 0x512d90
jmp 0x51438b
mov ebx, 1
cmp ecx, ebx
jl 0x51438b
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x5101a7
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x8c], 0
mov dword [esi + 8], edi
je 0x512ffc
cmp edx, 0xc0
jb 0x512ffc
test dl, 0x20
jne 0x512f4c
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x512ff9
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x512f73
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x512ff9
test dl, 8
jne 0x512f96
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 0x512ff9
test dl, 4
jne 0x512fc5
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 0x512ff9
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, dword [esi + 0x64]
mov ecx, dword [eax*4 + 0x5eeca0]
lea eax, [eax*4 + 0x5eeca0]
cmp edx, ecx
jb 0x51301e
lea eax, [eax + 4]
cmp edx, ecx
je 0x51303a
mov ecx, dword [eax]
cmp edx, ecx
jae 0x513011
cmp dword [esi + 0x68], 0
je case.0x5140b6.14
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x512f04
jmp 0x51438b
cmp dword [esi + 0x68], 0
jne case.0x5140b6.14
jmp 0x513028
mov ebx, 1
cmp ecx, ebx
jl 0x51438b
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x5101a7
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x8c], 0
mov dword [esi + 8], edi
je 0x51314d
cmp edx, 0xc0
jb 0x51314d
test dl, 0x20
jne 0x51309b
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x51314a
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x5130c2
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
lea eax, [edi + 2]
jmp 0x513148
test dl, 8
jne 0x5130e5
and edx, 7
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
lea eax, [edi + 3]
jmp 0x513148
test dl, 4
jne 0x513114
and edx, 3
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
lea eax, [edi + 4]
jmp 0x513148
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 edx, ecx
mov dword [esi + 8], eax
cmp edx, 0x24
je 0x513178
cmp edx, 0x40
je 0x513178
cmp edx, 0x60
je 0x513178
cmp edx, 0xa0
jb 0x51316c
cmp edx, 0xd7ff
jbe 0x513178
cmp edx, 0xe000
jae 0x513178
xor eax, eax
jmp 0x51317d
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.0x5140b6.14
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x513053
jmp 0x51438b
mov eax, dword [esi + 0x7c]
cmp eax, 0x16
jne 0x5134c3
mov edi, 1
mov dword [esp + 0x94], edi
cmp ecx, edi
jl 0x51438b
jmp 0x5131c0
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x5101a7
movzx ebx, byte [edx]
inc edx
mov ecx, dword [esp + 0x8c]
mov dword [esi + 8], edx
test ecx, ecx
je 0x5132c0
cmp ebx, 0xc0
jb 0x5132c0
test bl, 0x20
jne 0x513209
movzx eax, byte [edx]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 1]
jmp 0x5132bd
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x513230
and ebx, 0xf
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
lea eax, [edx + 2]
jmp 0x5132b6
test bl, 8
jne 0x513253
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]
jmp 0x5132b6
test bl, 4
jne 0x513282
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]
jmp 0x5132b6
and ebx, 1
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
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 5]
mov ecx, dword [esp + 0x8c]
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x5132e2
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede2]
mov dword [esp + 0x90], eax
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x51347d
jmp 0x513310
mov eax, dword [esi + 8]
mov edi, 1
movzx ebx, byte [eax]
test ecx, ecx
je 0x51340e
cmp ebx, 0xc0
jb 0x51340e
test bl, 0x20
jne 0x513345
movzx eax, byte [eax + 1]
and ebx, 0x1f
mov edi, 2
jmp 0x513406
test bl, 0x10
jne 0x51336a
movzx ecx, byte [eax + 1]
and ebx, 0xf
mov eax, dword [esi + 8]
and ecx, 0x3f
shl ebx, 6
mov edi, 3
or ebx, ecx
movzx eax, byte [eax + 2]
jmp 0x513406
test bl, 8
jne 0x513398
movzx ecx, byte [eax + 1]
and ebx, 7
mov eax, dword [esi + 8]
and ecx, 0x3f
shl ebx, 6
mov edi, 4
or ecx, ebx
shl ecx, 6
movzx ebx, byte [eax + 2]
movzx eax, byte [eax + 3]
and ebx, 0x3f
or ebx, ecx
jmp 0x513406
movzx eax, byte [eax + 1]
mov ecx, dword [esi + 8]
and eax, 0x3f
test bl, 4
jne 0x5133d2
and ebx, 3
mov edi, 5
shl ebx, 6
or eax, ebx
movzx ebx, byte [ecx + 2]
shl eax, 6
and ebx, 0x3f
or ebx, eax
movzx eax, byte [ecx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 4]
jmp 0x513406
and ebx, edi
mov edi, 6
shl ebx, 6
or eax, ebx
movzx ebx, byte [ecx + 2]
shl eax, 6
and ebx, 0x3f
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
movzx eax, byte [ecx + 5]
and eax, 0x3f
shl ebx, 6
or ebx, eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x513430
dec ebx
or ebx, 0xffffff80
inc ebx
mov edx, dword [esp + 0x90]
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx ecx, byte [eax*8 + 0x5eede2]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x5eec68], eax
je 0x513476
add dword [esi + 8], edi
mov eax, dword [esi + 8]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x8c]
cmp eax, dword [ebp + 0x78]
jb 0x513310
mov edi, dword [esp + 0x94]
cmp dword [ebp + 0x88], 0
je 0x5134aa
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x5134aa
cmp eax, dword [ebp + 0x84]
jbe 0x5134aa
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
inc edi
mov dword [esp + 0x94], edi
cmp edi, dword [esi + 0x90]
jle 0x5131c0
jmp 0x51438b
mov edx, dword [esp + 0x8c]
add eax, 0xfffffffa
test edx, edx
je 0x513f8f
cmp eax, 0xf
ja case.0x5164d7.9
jmp dword [eax*4 + 0x51b164]
mov ebx, 1
cmp ecx, ebx
jl 0x514392
mov ecx, dword [esi + 8]
mov eax, dword [ebp + 0x78]
cmp ecx, eax
jae 0x5101a7
mov edx, dword [ebp + 0x18]
lea edi, [ebp + 0x1c]
test edx, edx
je 0x513527
push dword [esp + 0x8c]
push edi
push eax
push edx
push ecx
call fcn.0051d260
add esp, 0x14
test eax, eax
jne case.0x5140b6.14
jmp 0x51354b
mov edx, dword [edi]
sub eax, edx
cmp ecx, eax
ja 0x51354b
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x51354b
cmp edx, 1
je case.0x5140b6.14
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je case.0x5140b6.14
cmp dword [ebp + 0x88], 0
je 0x513586
mov eax, dword [esi + 8]
inc eax
cmp eax, dword [ebp + 0x78]
jb 0x513586
cmp dword [ebp + 0x18], 0
jne 0x513586
cmp dword [edi], 2
jne 0x513586
mov eax, dword [esi + 8]
mov al, byte [eax]
cmp al, byte [ebp + 0x34]
jne 0x513586
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x5135a2
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x5135a2
inc ecx
mov dword [esi + 8], ecx
cmp ecx, dword [ebp + 0x78]
jb 0x513591
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x5134f2
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x514392
mov edx, dword [ebp + 0x78]
mov eax, dword [esi + 8]
cmp eax, edx
jae 0x51247d
inc eax
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jae 0x5135f8
lea ebx, [ebx]
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x5135f8
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jb 0x5135e0
inc edi
cmp edi, dword [esi + 0x90]
jle 0x5135c4
jmp 0x51438b
mov eax, dword [ebp + 0x78]
mov edx, dword [esi + 8]
sub eax, ecx
cmp edx, eax
ja 0x50df2b
lea eax, [ecx + edx]
mov dword [esi + 8], eax
jmp 0x51438b
mov ebx, 1
cmp ecx, ebx
jl 0x514392
mov edi, edi
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x5101a7
movzx edx, byte [edi]
inc edi
mov dword [esi + 8], edi
cmp edx, 0xc0
jb 0x51371c
test dl, 0x20
jne 0x51366a
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x513719
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x513691
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
lea eax, [edi + 2]
jmp 0x513717
test dl, 8
jne 0x5136b4
and edx, 7
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
lea eax, [edi + 3]
jmp 0x513717
test dl, 4
jne 0x5136e3
and edx, 3
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
lea eax, [edi + 4]
jmp 0x513717
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 edx, ecx
mov dword [esi + 8], eax
cmp edx, 0xd
ja 0x513740
je 0x51372d
cmp edx, 0xa
je 0x513761
lea eax, [edx - 0xb]
jmp 0x51374e
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x513761
cmp byte [eax], 0xa
jne 0x513761
inc eax
mov dword [esi + 8], eax
jmp 0x513761
cmp edx, 0x85
je 0x513757
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x5140b6.14
cmp dword [ebp + 0x68], 0
jne case.0x5140b6.14
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x513630
jmp 0x51438b
mov ebx, 1
cmp ecx, ebx
jl 0x514392
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x5101a7
movzx edx, byte [edi]
inc edi
mov dword [esi + 8], edi
cmp edx, 0xc0
jb 0x51386c
test dl, 0x20
jne 0x5137ba
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x513869
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x5137e1
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
lea eax, [edi + 2]
jmp 0x513867
test dl, 8
jne 0x513804
and edx, 7
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
lea eax, [edi + 3]
jmp 0x513867
test dl, 4
jne 0x513833
and edx, 3
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
lea eax, [edi + 4]
jmp 0x513867
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 edx, ecx
mov dword [esi + 8], eax
cmp edx, 0x180e
ja 0x51389e
je case.0x5140b6.14
cmp edx, 0xa0
ja 0x513896
je case.0x5140b6.14
cmp edx, 9
je case.0x5140b6.14
cmp edx, 0x20
jmp 0x5138ce
cmp edx, 0x1680
jmp 0x5138ce
cmp edx, 0x205f
ja 0x5138c8
je case.0x5140b6.14
cmp edx, 0x2000
jb 0x5138d4
cmp edx, 0x200a
jbe case.0x5140b6.14
cmp edx, 0x202f
jmp 0x5138ce
cmp edx, 0x3000
je case.0x5140b6.14
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x513780
jmp 0x51438b
mov ebx, 1
cmp ecx, ebx
jl 0x514392
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x5101a7
movzx edx, byte [edi]
inc edi
mov dword [esi + 8], edi
cmp edx, 0xc0
jb 0x5139df
test dl, 0x20
jne 0x51392d
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x5139dc
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x513954
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
lea eax, [edi + 2]
jmp 0x5139da
test dl, 8
jne 0x513977
and edx, 7
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
lea eax, [edi + 3]
jmp 0x5139da
test dl, 4
jne 0x5139a6
and edx, 3
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
lea eax, [edi + 4]
jmp 0x5139da
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 edx, ecx
mov dword [esi + 8], eax
cmp edx, 0x180e
ja 0x513a05
je 0x513a37
cmp edx, 0xa0
ja 0x5139fd
je 0x513a37
cmp edx, 9
je 0x513a37
cmp edx, 0x20
jmp 0x513a31
cmp edx, 0x1680
jmp 0x513a31
cmp edx, 0x205f
ja 0x513a2b
je 0x513a37
cmp edx, 0x2000
jb case.0x5140b6.14
cmp edx, 0x200a
jbe 0x513a37
cmp edx, 0x202f
jmp 0x513a31
cmp edx, 0x3000
jne case.0x5140b6.14
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x5138f3
jmp 0x51438b
mov ebx, 1
cmp ecx, ebx
jl 0x514392
jmp 0x513a60
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x5101a7
movzx edx, byte [edi]
inc edi
mov dword [esi + 8], edi
cmp edx, 0xc0
jb 0x513b4c
test dl, 0x20
jne 0x513a9a
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x513b49
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x513ac1
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
lea eax, [edi + 2]
jmp 0x513b47
test dl, 8
jne 0x513ae4
and edx, 7
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
lea eax, [edi + 3]
jmp 0x513b47
test dl, 4
jne 0x513b13
and edx, 3
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
lea eax, [edi + 4]
jmp 0x513b47
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 edx, ecx
mov dword [esi + 8], eax
cmp edx, 0x85
ja 0x513b64
je case.0x5140b6.14
cmp edx, 0xa
jb 0x513b78
cmp edx, 0xd
jmp 0x513b72
cmp edx, 0x2028
jb 0x513b78
cmp edx, 0x2029
jbe case.0x5140b6.14
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x513a60
jmp 0x51438b
mov ebx, 1
cmp ecx, ebx
jl 0x514392
jmp 0x513ba0
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x5101a7
movzx edx, byte [edi]
inc edi
mov dword [esi + 8], edi
cmp edx, 0xc0
jb 0x513c8c
test dl, 0x20
jne 0x513bda
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x513c89
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x513c01
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
lea eax, [edi + 2]
jmp 0x513c87
test dl, 8
jne 0x513c24
and edx, 7
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
lea eax, [edi + 3]
jmp 0x513c87
test dl, 4
jne 0x513c53
and edx, 3
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
lea eax, [edi + 4]
jmp 0x513c87
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 edx, ecx
mov dword [esi + 8], eax
cmp edx, 0x85
ja 0x513c9e
je 0x513cad
lea eax, [edx - 0xa]
cmp eax, 3
jmp 0x513ca7
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x5140b6.14
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x513ba0
jmp 0x51438b
mov ebx, 1
cmp ecx, ebx
jl 0x514392
lea esp, [esp]
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x5101a7
movzx edx, byte [edi]
inc edi
mov dword [esi + 8], edi
cmp edx, 0xc0
jb 0x513dbc
test dl, 0x20
jne 0x513d0a
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x513db9
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x513d31
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
lea eax, [edi + 2]
jmp 0x513db7
test dl, 8
jne 0x513d54
and edx, 7
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
lea eax, [edi + 3]
jmp 0x513db7
test dl, 4
jne 0x513d83
and edx, 3
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
lea eax, [edi + 4]
jmp 0x513db7
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 edx, ecx
mov dword [esi + 8], eax
cmp edx, 0x80
jae 0x513dd1
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
jne case.0x5140b6.14
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x513cd0
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x514392
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x51247d
movzx edx, byte [ecx]
cmp edx, 0x80
jae case.0x5140b6.14
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
je case.0x5140b6.14
lea eax, [ecx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x513df0
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x514392
mov edx, dword [ebp + 0x78]
lea esp, [esp]
mov ecx, dword [esi + 8]
cmp ecx, edx
jae 0x51247d
movzx edx, byte [ecx]
cmp edx, 0x80
jae 0x513e63
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
jne case.0x5140b6.14
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jae 0x513e88
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x513e88
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jb 0x513e70
inc edi
cmp edi, dword [esi + 0x90]
jle 0x513e40
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x514392
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x51247d
movzx edx, byte [ecx]
cmp edx, 0x80
jae case.0x5140b6.14
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
je case.0x5140b6.14
lea eax, [ecx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x513ea3
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x514392
mov edx, dword [ebp + 0x78]
nop
mov ecx, dword [esi + 8]
cmp ecx, edx
jae 0x51247d
movzx edx, byte [ecx]
cmp edx, 0x80
jae 0x513f13
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
jne case.0x5140b6.14
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jae 0x513f38
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x513f38
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jb 0x513f20
inc edi
cmp edi, dword [esi + 0x90]
jle 0x513ef0
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x514392
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x51247d
movzx edx, byte [ecx]
cmp edx, 0x80
jae case.0x5140b6.14
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
je case.0x5140b6.14
lea eax, [ecx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x513f53
jmp 0x51438b
cmp eax, 0xf
ja case.0x5164d7.9
jmp dword [eax*4 + 0x51b1a4]
mov ebx, 1
cmp ecx, ebx
jl 0x514392
lea esp, [esp]
mov ecx, dword [esi + 8]
mov eax, dword [ebp + 0x78]
cmp ecx, eax
jae 0x5101a7
mov edx, dword [ebp + 0x18]
lea edi, [ebp + 0x1c]
test edx, edx
je 0x513fe0
push 0
push edi
push eax
push edx
push ecx
call fcn.0051d260
add esp, 0x14
test eax, eax
jne case.0x5140b6.14
jmp 0x514004
mov edx, dword [edi]
sub eax, edx
cmp ecx, eax
ja 0x514004
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x514004
cmp edx, 1
je case.0x5140b6.14
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je case.0x5140b6.14
cmp dword [ebp + 0x88], 0
je 0x51403f
mov eax, dword [esi + 8]
inc eax
cmp eax, dword [ebp + 0x78]
jb 0x51403f
cmp dword [ebp + 0x18], 0
jne 0x51403f
cmp dword [edi], 2
jne 0x51403f
mov eax, dword [esi + 8]
mov al, byte [eax]
cmp al, byte [ebp + 0x34]
jne 0x51403f
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
inc dword [esi + 8]
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x513fb0
jmp 0x51438b
mov eax, dword [ebp + 0x78]
mov edx, dword [esi + 8]
sub eax, ecx
cmp edx, eax
jbe 0x513616
cmp dword [ebp + 0x88], ebx
je case.0x5140b6.14
cmp edx, dword [ebp + 0x84]
jbe case.0x5140b6.14
jmp 0x50e082
mov edx, 1
cmp ecx, edx
jl 0x51438b
mov edi, edi
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x51247d
movzx eax, byte [ecx]
inc ecx
sub eax, 0xa
mov dword [esi + 8], ecx
cmp eax, 0x7b
ja case.0x5140b6.14
movzx eax, byte [eax + 0x51b1f4]
jmp dword [eax*4 + 0x51b1e4]
cmp ecx, dword [ebp + 0x78]
jae case.0x5140b6.10
cmp byte [ecx], 0xa
jne case.0x5140b6.10
lea eax, [ecx + 1]
mov dword [esi + 8], eax
jmp case.0x5140b6.10
cmp dword [ebp + 0x68], ebx
jne case.0x5140b6.14
inc edx
cmp edx, dword [esi + 0x90]
jle 0x514090
jmp 0x51438b
mov edx, 1
cmp ecx, edx
jl 0x51438b
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x51247d
movzx ecx, byte [eax]
inc eax
mov dword [esi + 8], eax
cmp ecx, 9
je case.0x5140b6.14
cmp ecx, 0x20
je case.0x5140b6.14
cmp ecx, 0xa0
je case.0x5140b6.14
inc edx
cmp edx, dword [esi + 0x90]
jle 0x5140f3
jmp 0x51438b
mov edx, 1
cmp ecx, edx
jl 0x51438b
nop
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x51247d
movzx ecx, byte [eax]
inc eax
mov dword [esi + 8], eax
cmp ecx, 9
je 0x514169
cmp ecx, 0x20
je 0x514169
cmp ecx, 0xa0
jne case.0x5140b6.14
inc edx
cmp edx, dword [esi + 0x90]
jle 0x514140
jmp 0x51438b
mov edx, 1
cmp ecx, edx
jl 0x51438b
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x51247d
movzx ecx, byte [eax]
inc eax
mov dword [esi + 8], eax
cmp ecx, 0xa
jl 0x5141b1
cmp ecx, 0xd
jle case.0x5140b6.14
cmp ecx, 0x85
je case.0x5140b6.14
inc edx
cmp edx, dword [esi + 0x90]
jle 0x514184
jmp 0x51438b
mov edx, 1
cmp ecx, edx
jl 0x51438b
lea esp, [esp]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x51247d
movzx ecx, byte [eax]
inc eax
mov dword [esi + 8], eax
cmp ecx, 0xa
jl case.0x5140b6.14
cmp ecx, 0xd
jle 0x5141fd
cmp ecx, 0x85
jne case.0x5140b6.14
inc edx
cmp edx, dword [esi + 0x90]
jle 0x5141d0
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x514392
jmp 0x514220
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x51247d
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
jne case.0x5140b6.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x514220
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x514392
lea ecx, [ecx]
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x51247d
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
je case.0x5140b6.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x514260
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x514392
lea ecx, [ecx]
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x51247d
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
jne case.0x5140b6.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x5142a0
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x514392
lea ecx, [ecx]
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x51247d
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
je case.0x5140b6.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x5142e0
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x514392
jmp 0x514320
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x51247d
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
jne case.0x5140b6.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x514320
jmp 0x51438b
mov edi, 1
cmp ecx, edi
jl 0x514392
jmp 0x514360
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x51247d
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
je case.0x5140b6.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x514360
mov edx, dword [esp + 0x8c]
mov ecx, dword [esi + 0x90]
cmp ecx, dword [esi + 0x8c]
je 0x50d12a
cmp dword [esp + 0x84], 0
je 0x5143f2
mov eax, dword [esi + 0x60]
test eax, eax
js 0x5143d5
cmp eax, 0xa
ja case.0x5164d7.9
jmp dword [eax*4 + 0x51b270]
mov esi, dword [esi]
test esi, esi
je case.default.0x5169a4
mov edi, 0xfffffff2
jmp 0x516990
cmp dword [esi + 0x7c], 0x16
je 0x51a5c3
test edx, edx
jne 0x51a5ae
mov dword [esi + 0x84], ecx
jmp 0x517825
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x60]
test eax, eax
js 0x51542b
cmp eax, 0xa
ja case.0x5164d7.9
jmp dword [eax*4 + 0x51b29c]
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge 0x515418
mov ebx, dword [esp + 0x8c]
jmp 0x514430
mov edx, dword [esi + 8]
mov eax, 1
cmp edx, dword [ebp + 0x78]
jae 0x51449b
movzx ecx, byte [edx]
test ebx, ebx
je 0x51447e
cmp ecx, 0xc0
jb 0x51447e
test cl, 0x20
jne 0x514458
mov eax, 2
jmp 0x51447e
test cl, 0x10
jne 0x514464
mov eax, 3
jmp 0x51447e
test cl, 8
jne 0x514470
mov eax, 4
jmp 0x51447e
test cl, 4
mov eax, 0
setne al
add eax, 5
cmp dword [esi + 0x68], 0
jne 0x515418
add eax, edx
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x514430
jmp 0x515418
cmp dword [ebp + 0x88], 0
je 0x515418
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x515418
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x515418
mov esi, dword [esi]
test esi, esi
je 0x51adcc
mov edi, 0xfffffff4
mov edx, ebx
jmp 0x516990
mov eax, dword [esi + 0x90]
mov dword [esp + 0x84], eax
cmp eax, dword [esi + 0x8c]
jge 0x515418
lea ebx, [ebx]
mov edi, dword [esi + 8]
mov ecx, 1
cmp edi, dword [ebp + 0x78]
jae 0x51465e
movzx ebx, byte [edi]
test edx, edx
je 0x5145dc
cmp ebx, 0xc0
jb 0x5145dc
test bl, 0x20
jne 0x51453e
movzx eax, byte [edi + 1]
and ebx, 0x1f
mov ecx, 2
jmp 0x5145d4
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test bl, 0x10
jne 0x51455d
and ebx, 0xf
shl ebx, 6
or ebx, ecx
mov ecx, 3
jmp 0x5145d4
and eax, 0x3f
test bl, 8
jne 0x51457d
and ebx, 7
shl ebx, 6
or ebx, ecx
mov ecx, 4
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 3]
jmp 0x5145d4
test bl, 4
jne 0x5145a6
and ebx, 3
shl ebx, 6
or ebx, ecx
mov ecx, 5
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]
jmp 0x5145d4
and ebx, 1
shl ebx, 6
or ebx, ecx
mov ecx, 6
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, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x5145fe
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
cmp eax, 9
je 0x514623
cmp eax, 5
je 0x514623
cmp eax, 8
je 0x514623
xor eax, eax
jmp 0x514628
mov eax, 1
cmp eax, dword [esi + 0x68]
je 0x515418
mov edx, dword [esp + 0x8c]
lea eax, [ecx + edi]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x84]
inc eax
mov dword [esp + 0x84], eax
cmp eax, dword [esi + 0x8c]
jl 0x514500
jmp 0x515418
cmp dword [ebp + 0x88], 0
je 0x515418
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x515418
mov dword [ebp + 0x64], ecx
cmp dword [ebp + 0x88], ecx
jle 0x515418
mov esi, dword [esi]
test esi, esi
je 0x51adcc
mov edi, 0xfffffff4
jmp 0x516990
mov eax, dword [esi + 0x90]
mov dword [esp + 0x90], eax
cmp eax, dword [esi + 0x8c]
jge 0x515418
jmp 0x5146c0
mov edi, dword [esi + 8]
mov dword [esp + 0x84], 1
cmp edi, dword [ebp + 0x78]
jae 0x514842
movzx ebx, byte [edi]
test edx, edx
je 0x5147c3
cmp ebx, 0xc0
jb 0x5147c3
test bl, 0x20
jne 0x51470a
movzx eax, byte [edi + 1]
and ebx, 0x1f
mov dword [esp + 0x84], 2
jmp 0x5147bb
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test bl, 0x10
jne 0x514732
and ebx, 0xf
mov dword [esp + 0x84], 3
shl ebx, 6
or ebx, ecx
jmp 0x5147bb
and eax, 0x3f
test bl, 8
jne 0x514758
and ebx, 7
mov dword [esp + 0x84], 4
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 3]
jmp 0x5147bb
test bl, 4
jne 0x514787
and ebx, 3
mov dword [esp + 0x84], 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]
jmp 0x5147bb
and ebx, 1
mov dword [esp + 0x84], 6
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, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x5147e5
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
mov eax, dword [eax*4 + 0x5eebf0]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je 0x515418
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x8c]
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x90]
inc eax
mov dword [esp + 0x90], eax
cmp eax, dword [esi + 0x8c]
jl 0x5146c0
jmp 0x515418
cmp dword [ebp + 0x88], 0
je 0x515418
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x515418
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jmp 0x514683
mov eax, dword [esi + 0x90]
mov dword [esp + 0x90], eax
cmp eax, dword [esi + 0x8c]
jge 0x515418
lea ebx, [ebx]
mov edi, dword [esi + 8]
mov dword [esp + 0x84], 1
cmp edi, dword [ebp + 0x78]
jae 0x514842
movzx ebx, byte [edi]
test edx, edx
je 0x51498f
cmp ebx, 0xc0
jb 0x51498f
test bl, 0x20
jne 0x5148d6
movzx eax, byte [edi + 1]
and ebx, 0x1f
mov dword [esp + 0x84], 2
jmp 0x514987
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test bl, 0x10
jne 0x5148fe
and ebx, 0xf
mov dword [esp + 0x84], 3
shl ebx, 6
or ebx, ecx
jmp 0x514987
and eax, 0x3f
test bl, 8
jne 0x514924
and ebx, 7
mov dword [esp + 0x84], 4
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 3]
jmp 0x514987
test bl, 4
jne 0x514953
and ebx, 3
mov dword [esp + 0x84], 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]
jmp 0x514987
and ebx, 1
mov dword [esp + 0x84], 6
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, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x5149b1
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je 0x515418
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x8c]
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x90]
inc eax
mov dword [esp + 0x90], eax
cmp eax, dword [esi + 0x8c]
jl 0x514890
jmp 0x515418
mov eax, dword [esi + 0x90]
mov dword [esp + 0x90], eax
cmp eax, dword [esi + 0x8c]
jge 0x515418
mov edi, dword [esi + 8]
mov dword [esp + 0x84], 1
cmp edi, dword [ebp + 0x78]
jae 0x514842
movzx ebx, byte [edi]
test edx, edx
je 0x514b23
cmp ebx, 0xc0
jb 0x514b23
test bl, 0x20
jne 0x514a6a
movzx eax, byte [edi + 1]
and ebx, 0x1f
mov dword [esp + 0x84], 2
jmp 0x514b1b
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test bl, 0x10
jne 0x514a92
and ebx, 0xf
mov dword [esp + 0x84], 3
shl ebx, 6
or ebx, ecx
jmp 0x514b1b
and eax, 0x3f
test bl, 8
jne 0x514ab8
and ebx, 7
mov dword [esp + 0x84], 4
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 3]
jmp 0x514b1b
test bl, 4
jne 0x514ae7
and ebx, 3
mov dword [esp + 0x84], 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]
jmp 0x514b1b
and ebx, 1
mov dword [esp + 0x84], 6
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, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x514b45
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede0]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je 0x515418
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x8c]
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x90]
inc eax
mov dword [esp + 0x90], eax
cmp eax, dword [esi + 0x8c]
jl 0x514a20
jmp 0x515418
mov eax, dword [esi + 0x90]
mov dword [esp + 0x84], eax
cmp eax, dword [esi + 0x8c]
jge 0x515418
mov edi, dword [esi + 8]
mov ecx, 1
cmp edi, dword [ebp + 0x78]
jae 0x51465e
movzx ebx, byte [edi]
test edx, edx
je 0x514c93
cmp ebx, 0xc0
jb 0x514c93
test bl, 0x20
jne 0x514bf2
movzx eax, byte [edi + 1]
and ebx, 0x1f
mov ecx, 2
jmp 0x514c8b
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test bl, 0x10
jne 0x514c14
and ebx, 0xf
shl ebx, 6
or ebx, ecx
mov ecx, 3
jmp 0x514c8b
and eax, 0x3f
test bl, 8
jne 0x514c34
and ebx, 7
shl ebx, 6
or ebx, ecx
mov ecx, 4
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 3]
jmp 0x514c8b
test bl, 4
jne 0x514c5d
and ebx, 3
shl ebx, 6
or ebx, ecx
mov ecx, 5
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]
jmp 0x514c8b
and ebx, 1
shl ebx, 6
or ebx, ecx
mov ecx, 6
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, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x514cb5
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
mov eax, dword [eax*4 + 0x5eebf0]
cmp eax, 1
je 0x514cdc
cmp eax, 3
je 0x514cdc
xor eax, eax
jmp 0x514ce1
mov eax, 1
cmp eax, dword [esi + 0x68]
je 0x515418
mov edx, dword [esp + 0x8c]
lea eax, [ecx + edi]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x84]
inc eax
mov dword [esp + 0x84], eax
cmp eax, dword [esi + 0x8c]
jl 0x514bb4
jmp 0x515418
mov eax, dword [esi + 0x90]
mov dword [esp + 0x90], eax
cmp eax, dword [esi + 0x8c]
jge 0x515418
mov edi, dword [esi + 8]
mov dword [esp + 0x84], 1
cmp edi, dword [ebp + 0x78]
jae 0x514842
movzx ebx, byte [edi]
test edx, edx
je 0x514e3d
cmp ebx, 0xc0
jb 0x514e3d
test bl, 0x20
jne 0x514d82
movzx eax, byte [edi + 1]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
mov dword [esp + 0x84], 2
jmp 0x514e3d
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test bl, 0x10
jne 0x514daa
and ebx, 0xf
mov dword [esp + 0x84], 3
shl ebx, 6
or ecx, ebx
jmp 0x514e33
and eax, 0x3f
test bl, 8
jne 0x514dd0
and ebx, 7
mov dword [esp + 0x84], 4
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
jmp 0x514e33
test bl, 4
jne 0x514dff
and ebx, 3
mov dword [esp + 0x84], 5
shl ebx, 6
or ecx, ebx
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]
jmp 0x514e33
and ebx, 1
mov dword [esp + 0x84], 6
shl ebx, 6
or ecx, ebx
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
movzx eax, byte [edi + 5]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov ebx, ecx
cmp ebx, 0x180e
ja 0x514e80
je case.0x514ea0.8192
cmp ebx, 0x85
ja 0x514e6c
je case.0x514ea0.8192
cmp ebx, 9
jb case.0x514ea0.8203
cmp ebx, 0xd
jbe case.0x514ea0.8192
cmp ebx, 0x20
jmp 0x514eb5
cmp ebx, 0xa0
je case.0x514ea0.8192
cmp ebx, 0x1680
jmp 0x514eb5
cmp ebx, 0x202f
ja 0x514ea7
je case.0x514ea0.8192
lea eax, [ebx - 0x2000]
cmp eax, 0x29
ja case.0x514ea0.8203
movzx eax, byte [eax + 0x51b2d0]
jmp dword [eax*4 + 0x51b2c8]
cmp ebx, 0x205f
je case.0x514ea0.8192
cmp ebx, 0x3000
je case.0x514ea0.8192
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x514ed9
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
cmp dword [eax*4 + 0x5eebf0], 6
sete cl
cmp ecx, dword [esi + 0x68]
je 0x515418
mov edx, dword [esp + 0x8c]
jmp 0x514f14
cmp dword [esi + 0x68], 0
jne 0x515418
mov eax, dword [esp + 0x84]
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x90]
inc eax
mov dword [esp + 0x90], eax
cmp eax, dword [esi + 0x8c]
jl 0x514d30
jmp 0x515418
mov eax, dword [esi + 0x90]
mov dword [esp + 0x90], eax
cmp eax, dword [esi + 0x8c]
jge 0x515418
lea esp, [esp]
mov edi, dword [esi + 8]
mov dword [esp + 0x84], 1
cmp edi, dword [ebp + 0x78]
jae 0x514842
movzx ebx, byte [edi]
test edx, edx
je 0x515063
cmp ebx, 0xc0
jb 0x515063
test bl, 0x20
jne 0x514faa
movzx eax, byte [edi + 1]
and ebx, 0x1f
mov dword [esp + 0x84], 2
jmp 0x51505b
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test bl, 0x10
jne 0x514fd2
and ebx, 0xf
mov dword [esp + 0x84], 3
shl ebx, 6
or ebx, ecx
jmp 0x51505b
and eax, 0x3f
test bl, 8
jne 0x514ff8
and ebx, 7
mov dword [esp + 0x84], 4
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 3]
jmp 0x51505b
test bl, 4
jne 0x515027
and ebx, 3
mov dword [esp + 0x84], 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]
jmp 0x51505b
and ebx, 1
mov dword [esp + 0x84], 6
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, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x5f0460]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x515086
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
mov eax, dword [eax*4 + 0x5eebf0]
cmp eax, 1
je 0x5150b2
cmp eax, 3
je 0x5150b2
cmp ebx, 0x5f
je 0x5150b2
xor eax, eax
jmp 0x5150b7
mov eax, 1
cmp eax, dword [esi + 0x68]
je 0x515418
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x8c]
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x90]
inc eax
mov dword [esp + 0x90], eax
cmp eax, dword [esi + 0x8c]
jl 0x514f60
jmp 0x515418
mov eax, dword [esi + 0x90]
mov dword [esp + 0x84], eax
cmp eax, dword [esi + 0x8c]
jge 0x515418
lea esp, [esp]
mov edi, dword [esi + 8]
mov ebx, 1
cmp edi, dword [ebp + 0x78]
jae 0x51524f
cmp dword [esp + 0x8c], 0
movzx edx, byte [edi]
je 0x5151f1
cmp edx, 0xc0
jb 0x5151f1
test dl, 0x20
jne 0x515154
movzx eax, byte [edi + 1]
and edx, 0x1f
mov ebx, 2
jmp 0x5151e9
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x515173
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x5151e9
and eax, 0x3f
test dl, 8
jne 0x515193
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x5151e9
test dl, 4
jne 0x5151bc
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 0x5151e9
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
mov eax, dword [esi + 0x64]
mov ecx, dword [eax*4 + 0x5eeca0]
lea eax, [eax*4 + 0x5eeca0]
cmp edx, ecx
jb 0x515213
lea eax, [eax + 4]
cmp edx, ecx
je 0x515243
mov ecx, dword [eax]
cmp edx, ecx
jae 0x515206
cmp dword [esi + 0x68], 0
je 0x515418
lea eax, [ebx + edi]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x84]
inc eax
mov dword [esp + 0x84], eax
cmp eax, dword [esi + 0x8c]
jl 0x515110
jmp 0x515418
cmp dword [esi + 0x68], 0
jne 0x515418
jmp 0x51521d
cmp dword [ebp + 0x88], 0
je 0x515418
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x515418
mov dword [ebp + 0x64], ebx
cmp dword [ebp + 0x88], ebx
jle 0x515418
jmp 0x50e096
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x515418
mov edi, dword [esi + 8]
mov eax, 1
cmp edi, dword [ebp + 0x78]
jae 0x5153f0
cmp dword [esp + 0x8c], 0
movzx edx, byte [edi]
je 0x5153a7
cmp edx, 0xc0
jb 0x5153a7
test dl, 0x20
jne 0x5152dd
movzx eax, byte [edi + 1]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 2
jmp 0x5153a7
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x10
jne 0x515307
movzx eax, byte [edi + 2]
and edx, 0xf
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
mov eax, 3
jmp 0x5153a7
test dl, 8
jne 0x515333
movzx eax, byte [edi + 2]
and edx, 7
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
mov eax, 4
jmp 0x5153a7
test dl, 4
jne 0x51536b
movzx eax, byte [edi + 2]
and edx, 3
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
mov eax, 5
jmp 0x5153a7
and edx, eax
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]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 6
cmp edx, 0x24
je 0x5153d2
cmp edx, 0x40
je 0x5153d2
cmp edx, 0x60
je 0x5153d2
cmp edx, 0xa0
jb 0x5153c6
cmp edx, 0xd7ff
jbe 0x5153d2
cmp edx, 0xe000
jae 0x5153d2
xor ecx, ecx
jmp 0x5153d7
mov ecx, 1
cmp ecx, dword [esi + 0x68]
je 0x515418
add eax, edi
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x515291
jmp 0x515418
cmp dword [ebp + 0x88], 0
je 0x515418
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x515418
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
cmp dword [esp + 0x80], 0
je 0x5198cc
jmp 0x50d12a
mov eax, dword [esi + 0x7c]
cmp eax, 0x16
jne 0x5157c7
mov edi, dword [esi + 0x90]
mov dword [esp + 0x90], edi
cmp edi, dword [esi + 0x8c]
jge 0x515778
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x515750
movzx ebx, byte [edx]
inc edx
mov ecx, dword [esp + 0x8c]
mov dword [esi + 8], edx
test ecx, ecx
je 0x515550
cmp ebx, 0xc0
jb 0x515550
test bl, 0x20
jne 0x515499
movzx eax, byte [edx]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 1]
jmp 0x51554d
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x5154c0
and ebx, 0xf
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
lea eax, [edx + 2]
jmp 0x515546
test bl, 8
jne 0x5154e3
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]
jmp 0x515546
test bl, 4
jne 0x515512
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]
jmp 0x515546
and ebx, 1
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
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 5]
mov ecx, dword [esp + 0x8c]
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x515572
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede2]
mov dword [esp + 0x84], eax
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x51570d
jmp 0x5155a0
mov eax, dword [esi + 8]
mov edi, 1
movzx ebx, byte [eax]
test ecx, ecx
je 0x51569e
cmp ebx, 0xc0
jb 0x51569e
test bl, 0x20
jne 0x5155d5
movzx eax, byte [eax + 1]
and ebx, 0x1f
mov edi, 2
jmp 0x515696
test bl, 0x10
jne 0x5155fa
movzx ecx, byte [eax + 1]
and ebx, 0xf
mov eax, dword [esi + 8]
and ecx, 0x3f
shl ebx, 6
mov edi, 3
or ebx, ecx
movzx eax, byte [eax + 2]
jmp 0x515696
test bl, 8
jne 0x515628
movzx ecx, byte [eax + 1]
and ebx, 7
mov eax, dword [esi + 8]
and ecx, 0x3f
shl ebx, 6
mov edi, 4
or ecx, ebx
shl ecx, 6
movzx ebx, byte [eax + 2]
movzx eax, byte [eax + 3]
and ebx, 0x3f
or ebx, ecx
jmp 0x515696
movzx eax, byte [eax + 1]
mov ecx, dword [esi + 8]
and eax, 0x3f
test bl, 4
jne 0x515662
and ebx, 3
mov edi, 5
shl ebx, 6
or eax, ebx
movzx ebx, byte [ecx + 2]
shl eax, 6
and ebx, 0x3f
or ebx, eax
movzx eax, byte [ecx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 4]
jmp 0x515696
and ebx, edi
mov edi, 6
shl ebx, 6
or eax, ebx
movzx ebx, byte [ecx + 2]
shl eax, 6
and ebx, 0x3f
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
movzx eax, byte [ecx + 5]
and eax, 0x3f
shl ebx, 6
or ebx, eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x5156c0
dec ebx
or ebx, 0xffffff80
inc ebx
mov edx, dword [esp + 0x84]
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx ecx, byte [eax*8 + 0x5eede2]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x5eec68], eax
je 0x515706
add dword [esi + 8], edi
mov eax, dword [esi + 8]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x8c]
cmp eax, dword [ebp + 0x78]
jb 0x5155a0
mov edi, dword [esp + 0x90]
cmp dword [ebp + 0x88], 0
je 0x51573a
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x51573a
cmp eax, dword [ebp + 0x84]
jbe 0x51573a
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
inc edi
mov dword [esp + 0x90], edi
cmp edi, dword [esi + 0x8c]
jl 0x515450
jmp 0x515778
cmp dword [ebp + 0x88], 0
je 0x515778
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x515778
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
cmp dword [esp + 0x80], 0
jne 0x50d12a
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x50d0b0
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51acf5
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51aceb
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
add eax, 0xfffffffa
test edx, edx
je 0x5164ce
cmp eax, 0xf
ja case.0x5164d7.9
jmp dword [eax*4 + 0x51b2fc]
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x5164bb
mov ecx, dword [esi + 8]
mov eax, dword [ebp + 0x78]
cmp ecx, eax
jae 0x5158b6
mov edx, dword [ebp + 0x18]
lea edi, [ebp + 0x1c]
test edx, edx
je 0x515829
push dword [esp + 0x8c]
push edi
push eax
push edx
push ecx
call fcn.0051d260
add esp, 0x14
test eax, eax
jne 0x5164bb
jmp 0x51584d
mov edx, dword [edi]
sub eax, edx
cmp ecx, eax
ja 0x51584d
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x51584d
cmp edx, 1
je 0x5164bb
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je 0x5164bb
cmp dword [ebp + 0x88], 0
je 0x515888
mov eax, dword [esi + 8]
inc eax
cmp eax, dword [ebp + 0x78]
jb 0x515888
cmp dword [ebp + 0x18], 0
jne 0x515888
cmp dword [edi], 2
jne 0x515888
mov eax, dword [esi + 8]
mov al, byte [eax]
cmp al, byte [ebp + 0x34]
jne 0x515888
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x5158a4
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x5158a4
inc ecx
mov dword [esi + 8], ecx
cmp ecx, dword [ebp + 0x78]
jb 0x515893
inc ebx
cmp ebx, dword [esi + 0x8c]
jl 0x5157f4
jmp 0x5164bb
cmp dword [ebp + 0x88], 0
je 0x5164bb
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x5164bb
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x5164bb
jmp 0x50e096
mov eax, dword [esi + 0x8c]
cmp eax, 0x7fffffff
jge 0x515948
mov edi, dword [esi + 0x90]
cmp edi, eax
jge 0x5164bb
mov edx, dword [ebp + 0x78]
lea esp, [esp]
mov eax, dword [esi + 8]
cmp eax, edx
jae 0x5158b6
inc eax
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jae 0x51593a
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x51593a
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jb 0x515922
inc edi
cmp edi, dword [esi + 0x8c]
jl 0x515910
jmp 0x5164bb
mov eax, dword [ebp + 0x78]
mov dword [esi + 8], eax
cmp dword [ebp + 0x88], 0
je 0x5164bb
cmp eax, dword [ebp + 0x84]
jbe 0x5164bb
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x5164bb
jmp 0x514689
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 0x5159cf
mov dword [esi + 8], edx
cmp dword [ebp + 0x88], 0
je 0x5164bb
cmp edx, dword [ebp + 0x84]
jbe 0x5164bb
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x5164bb
jmp 0x50e096
lea eax, [ecx + edi]
mov dword [esi + 8], eax
jmp 0x5164bb
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x5164bb
lea esp, [esp]
mov edi, dword [esi + 8]
mov eax, 1
cmp edi, dword [ebp + 0x78]
jae 0x5158b6
movzx edx, byte [edi]
cmp edx, 0xc0
jb 0x515afa
test dl, 0x20
jne 0x515a2e
movzx eax, byte [edi + 1]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 2
jmp 0x515afa
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x10
jne 0x515a58
movzx eax, byte [edi + 2]
and edx, 0xf
shl edx, 6
and eax, 0x3f
or ecx, edx
shl ecx, 6
or ecx, eax
mov eax, 3
jmp 0x515af8
test dl, 8
jne 0x515a84
movzx eax, byte [edi + 2]
and edx, 7
shl edx, 6
and eax, 0x3f
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov eax, 4
jmp 0x515af8
test dl, 4
jne 0x515abc
movzx eax, byte [edi + 2]
and edx, 3
and eax, 0x3f
shl edx, 6
or ecx, edx
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 eax, 5
jmp 0x515af8
and edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or ecx, edx
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
movzx eax, byte [edi + 5]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov eax, 6
mov edx, ecx
cmp edx, 0xd
jne 0x515b16
lea eax, [edi + 1]
mov dword [esi + 8], eax
cmp eax, dword [ebp + 0x78]
jae 0x5164bb
cmp byte [eax], 0xa
jne 0x515b50
inc eax
jmp 0x515b4d
cmp edx, 0xa
je 0x515b4b
cmp dword [ebp + 0x68], 0
jne 0x5164bb
cmp edx, 0xb
je 0x515b4b
cmp edx, 0xc
je 0x515b4b
cmp edx, 0x85
je 0x515b4b
cmp edx, 0x2028
je 0x515b4b
cmp edx, 0x2029
jne 0x5164bb
add eax, edi
mov dword [esi + 8], eax
inc ebx
cmp ebx, dword [esi + 0x8c]
jl 0x5159f0
jmp 0x5164bb
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x5164bb
mov edi, dword [esi + 8]
mov ecx, 1
cmp edi, dword [ebp + 0x78]
jae 0x515cca
movzx edx, byte [edi]
cmp edx, 0xc0
jb 0x515c48
test dl, 0x20
jne 0x515baa
movzx eax, byte [edi + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x515c40
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x515bc9
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x515c40
and eax, 0x3f
test dl, 8
jne 0x515be9
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x515c40
test dl, 4
jne 0x515c12
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 0x515c40
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]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x180e
ja 0x515c6e
je 0x515c9c
cmp edx, 0xa0
ja 0x515c66
je 0x515c9c
cmp edx, 9
je 0x515c9c
cmp edx, 0x20
jmp 0x515c96
cmp edx, 0x1680
jmp 0x515c96
cmp edx, 0x205f
ja 0x515c90
je 0x515c9c
cmp edx, 0x2000
jb 0x515c98
cmp edx, 0x200a
jbe 0x515c9c
cmp edx, 0x202f
jmp 0x515c96
cmp edx, 0x3000
je 0x515c9c
xor edx, edx
jmp 0x515ca1
mov edx, 1
xor eax, eax
cmp dword [esi + 0x7c], 0x12
sete al
cmp edx, eax
je 0x5164bb
lea eax, [ecx + edi]
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x515b74
jmp 0x5164bb
cmp dword [ebp + 0x88], 0
je 0x5164bb
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x5164bb
mov dword [ebp + 0x64], ecx
cmp dword [ebp + 0x88], ecx
jle 0x5164bb
jmp 0x50e096
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x5164bb
lea esp, [esp]
mov edi, dword [esi + 8]
mov ecx, 1
cmp edi, dword [ebp + 0x78]
jae 0x515cca
movzx edx, byte [edi]
cmp edx, 0xc0
jb 0x515de0
test dl, 0x20
jne 0x515d42
movzx eax, byte [edi + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x515dd8
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x515d61
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x515dd8
and eax, 0x3f
test dl, 8
jne 0x515d81
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x515dd8
test dl, 4
jne 0x515daa
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 0x515dd8
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]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x85
ja 0x515e1f
je 0x515e2a
cmp edx, 0xa
jb 0x515df4
cmp edx, 0xd
jbe 0x515e2a
xor edx, edx
xor eax, eax
cmp dword [esi + 0x7c], 0x14
sete al
cmp edx, eax
je 0x5164bb
lea eax, [ecx + edi]
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x515d10
jmp 0x5164bb
lea eax, [edx - 0x2028]
cmp eax, 1
ja 0x515df4
mov edx, 1
jmp 0x515df6
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x5164bb
mov edi, dword [esi + 8]
mov ecx, 1
cmp edi, dword [ebp + 0x78]
jae 0x515cca
movzx edx, byte [edi]
cmp edx, 0xc0
jb 0x515f17
test dl, 0x20
jne 0x515e79
movzx eax, byte [edi + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x515f0f
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x515e98
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x515f0f
and eax, 0x3f
test dl, 8
jne 0x515eb8
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x515f0f
test dl, 4
jne 0x515ee1
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 0x515f0f
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]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x100
jae 0x515f2c
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
jne 0x5164bb
lea eax, [ecx + edi]
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x515e43
jmp 0x5164bb
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x5164bb
jmp 0x515f60
mov edi, dword [esi + 8]
mov ecx, 1
cmp edi, dword [ebp + 0x78]
jae 0x515cca
movzx edx, byte [edi]
cmp edx, 0xc0
jb 0x516034
test dl, 0x20
jne 0x515f96
movzx eax, byte [edi + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x51602c
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x515fb5
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x51602c
and eax, 0x3f
test dl, 8
jne 0x515fd5
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x51602c
test dl, 4
jne 0x515ffe
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 0x51602c
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]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x100
jae 0x5164bb
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
je 0x5164bb
lea eax, [ecx + edi]
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x515f60
jmp 0x5164bb
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x5164bb
jmp 0x516080
mov edi, dword [esi + 8]
mov ecx, 1
cmp edi, dword [ebp + 0x78]
jae 0x515cca
movzx edx, byte [edi]
cmp edx, 0xc0
jb 0x516154
test dl, 0x20
jne 0x5160b6
movzx eax, byte [edi + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x51614c
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x5160d5
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x51614c
and eax, 0x3f
test dl, 8
jne 0x5160f5
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x51614c
test dl, 4
jne 0x51611e
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 0x51614c
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]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x100
jae 0x516169
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
jne 0x5164bb
lea eax, [ecx + edi]
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x516080
jmp 0x5164bb
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x5164bb
mov edi, dword [esi + 8]
mov ecx, 1
cmp edi, dword [ebp + 0x78]
jae 0x515cca
movzx edx, byte [edi]
cmp edx, 0xc0
jb 0x516267
test dl, 0x20
jne 0x5161c9
movzx eax, byte [edi + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x51625f
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x5161e8
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x51625f
and eax, 0x3f
test dl, 8
jne 0x516208
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x51625f
test dl, 4
jne 0x516231
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 0x51625f
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]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x100
jae 0x5164bb
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
je 0x5164bb
lea eax, [ecx + edi]
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x516193
jmp 0x5164bb
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x5164bb
lea ebx, [ebx]
mov edi, dword [esi + 8]
mov ecx, 1
cmp edi, dword [ebp + 0x78]
jae 0x515cca
movzx edx, byte [edi]
cmp edx, 0xc0
jb 0x516384
test dl, 0x20
jne 0x5162e6
movzx eax, byte [edi + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x51637c
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x516305
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x51637c
and eax, 0x3f
test dl, 8
jne 0x516325
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x51637c
test dl, 4
jne 0x51634e
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 0x51637c
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]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x100
jae 0x516399
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
jne 0x5164bb
lea eax, [ecx + edi]
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x5162b0
jmp 0x5164bb
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x5164bb
mov edi, dword [esi + 8]
mov ecx, 1
cmp edi, dword [ebp + 0x78]
jae 0x515cca
movzx edx, byte [edi]
cmp edx, 0xc0
jb 0x516497
test dl, 0x20
jne 0x5163f9
movzx eax, byte [edi + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x51648f
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x516418
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x51648f
and eax, 0x3f
test dl, 8
jne 0x516438
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x51648f
test dl, 4
jne 0x516461
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 0x51648f
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]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x100
jae 0x5164bb
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
je 0x5164bb
lea eax, [ecx + edi]
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x5163c3
cmp dword [esp + 0x80], 0
je 0x518d88
jmp 0x50d12a
cmp eax, 0xf
ja case.0x5164d7.9
jmp dword [eax*4 + 0x51b33c]
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x516967
mov ecx, dword [esi + 8]
mov eax, dword [ebp + 0x78]
cmp ecx, eax
jae 0x516594
mov edx, dword [ebp + 0x18]
lea edi, [ebp + 0x1c]
test edx, edx
je 0x516520
push 0
push edi
push eax
push edx
push ecx
call fcn.0051d260
add esp, 0x14
test eax, eax
jne 0x516967
jmp 0x516544
mov edx, dword [edi]
sub eax, edx
cmp ecx, eax
ja 0x516544
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x516544
cmp edx, 1
je 0x516967
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je 0x516967
cmp dword [ebp + 0x88], 0
je 0x51657f
mov eax, dword [esi + 8]
inc eax
cmp eax, dword [ebp + 0x78]
jb 0x51657f
cmp dword [ebp + 0x18], 0
jne 0x51657f
cmp dword [edi], 2
jne 0x51657f
mov eax, dword [esi + 8]
mov al, byte [eax]
cmp al, byte [ebp + 0x34]
jne 0x51657f
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
inc dword [esi + 8]
inc ebx
cmp ebx, dword [esi + 0x8c]
jl 0x5164f0
jmp 0x516967
cmp dword [ebp + 0x88], 0
je 0x516967
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jbe 0x516967
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x516967
jmp 0x50e096
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 0x516618
mov dword [esi + 8], edx
cmp dword [ebp + 0x88], 0
je 0x516967
cmp edx, dword [ebp + 0x84]
jbe 0x516967
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x516967
jmp 0x50e096
lea eax, [ecx + edi]
mov dword [esi + 8], eax
jmp 0x516967
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge 0x516967
jmp 0x516640
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x516594
movzx eax, byte [ecx]
cmp eax, 0xd
jne 0x51666b
lea eax, [ecx + 1]
mov dword [esi + 8], eax
cmp eax, dword [ebp + 0x78]
jae 0x516967
cmp byte [eax], 0xa
jne 0x516695
inc eax
jmp 0x516692
cmp eax, 0xa
je 0x51668f
cmp dword [ebp + 0x68], 0
jne 0x516967
cmp eax, 0xb
je 0x51668f
cmp eax, 0xc
je 0x51668f
cmp eax, 0x85
jne 0x516967
lea eax, [ecx + 1]
mov dword [esi + 8], eax
inc edx
cmp edx, dword [esi + 0x8c]
jl 0x516640
jmp 0x516967
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge 0x516967
jmp 0x5166c0
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x516594
mov al, byte [ecx]
cmp al, 9
je 0x516967
cmp al, 0x20
je 0x516967
cmp al, 0xa0
je 0x516967
lea eax, [ecx + 1]
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x5166c0
jmp 0x516967
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge 0x516967
lea esp, [esp]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x516594
mov al, byte [ecx]
cmp al, 9
je 0x51672e
cmp al, 0x20
je 0x51672e
cmp al, 0xa0
jne 0x516967
lea eax, [ecx + 1]
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x516710
jmp 0x516967
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge 0x516967
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x516594
mov al, byte [ecx]
cmp al, 0xa
jb 0x516776
cmp al, 0xd
jbe 0x516967
cmp al, 0x85
je 0x516967
lea eax, [ecx + 1]
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x516754
jmp 0x516967
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge 0x516967
lea esp, [esp]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x516594
mov al, byte [ecx]
cmp al, 0xa
jb 0x516967
cmp al, 0xd
jbe 0x5167c2
cmp al, 0x85
jne 0x516967
lea eax, [ecx + 1]
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x5167a0
jmp 0x516967
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge 0x516967
jmp 0x5167f0
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x516594
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
jne 0x516967
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x5167f0
jmp 0x516967
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge 0x516967
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x516594
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
je 0x516967
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x516832
jmp 0x516967
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge 0x516967
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x516594
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
jne 0x516967
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x516874
jmp 0x516967
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge 0x516967
jmp 0x5168c0
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x516594
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
je 0x516967
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x5168c0
jmp 0x516967
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge 0x516967
jmp 0x516900
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x516594
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
jne 0x516967
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x516900
jmp 0x516967
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge 0x516967
jmp 0x516940
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x516594
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
je 0x516967
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x516940
cmp dword [esp + 0x80], 0
je 0x5179ca
jmp 0x50d12a
mov esi, dword [esi]
test esi, esi
je 0x51ae41
mov edi, 0xfffffffb
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x7c]
mov eax, dword [esi + 0x130]
dec eax
cmp eax, 0x42
ja case.default.0x5169a4
jmp dword [eax*4 + 0x51b37c]
cmp edi, 0xfffffc1b
je 0x516a76
cmp edi, 0xfffffc20
jne 0x5169f3
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add ecx, dword [esi + 0xc]
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae case.0x5169a4.49
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x5169ef
cmp byte [ecx], 0x77
jne case.0x5169a4.49
xor edi, edi
jmp 0x5169fb
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0xa0]
mov dword [ebp + 0x90], eax
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add dword [esi + 0xc], ecx
mov eax, dword [esi + 0x28]
mov dword [ebp + 0xac], eax
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
jne 0x516a76
cmp dword [esi + 0x9c], 0x88
jb 0x516a41
mov dword [ebp + 0x98], 2
mov edx, dword [esi + 4]
test edx, edx
jne 0x51a7ca
push 0x134
call dword [0x725f24]
mov edx, eax
add esp, 4
test edx, edx
jne 0x51a7c0
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
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 esi, dword [esi]
test esi, esi
je 0x516e6c
mov edx, dword [esp + 0x8c]
jmp 0x516994
cmp edi, 0xfffffc20
jne 0x516b33
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add ecx, dword [esi + 0xc]
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae 0x516b81
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x516afe
cmp byte [ecx], 0x77
jne 0x516b81
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add dword [esi + 0xc], ecx
mov eax, dword [esi + 0x28]
mov dword [ebp + 0xac], eax
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x516b97
mov esi, dword [esi]
test esi, esi
je 0x51ada8
xor edi, edi
jmp 0x516994
test edi, edi
je 0x516afe
cmp edi, 0xfffffc1b
jne 0x516b81
mov edx, dword [esi + 0xc]
mov al, byte [edx]
cmp al, 0x81
je 0x516b73
cmp al, 0x77
jne 0x516b64
lea esp, [esp]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x77
je 0x516b50
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
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 esi, dword [esi]
test esi, esi
je 0x516e6c
mov edx, dword [esp + 0x8c]
jmp 0x516994
mov eax, dword [esi + 0xa0]
mov dword [ebp + 0x90], eax
mov eax, dword [esi + 0x9c]
cmp eax, 0x88
jae 0x516be9
cmp eax, 0x81
je 0x516be9
cmp dword [ebp + 0x6c], 0
jne 0x516bf3
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 0x516bf3
mov ecx, edx
movzx eax, byte [ecx]
movzx eax, byte [eax + 0x5eead8]
add eax, ecx
mov dword [esi + 0xc], eax
jmp 0x50d0b0
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 0x51a7ec
push 0x134
call dword [0x725f24]
mov edx, eax
add esp, 4
test edx, edx
jne 0x51a7e2
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
cmp edi, 1
jne 0x516cb3
mov eax, dword [ebp + 0x8c]
cmp eax, dword [esi + 0x14]
jle 0x516c50
mov dword [esi + 0x14], eax
mov dword [esi + 0x58], 1
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x92
jne 0x516c63
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add dword [esi + 0xc], ecx
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
jne 0x516c99
mov edx, eax
movzx ecx, byte [eax + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov edx, eax
mov dword [esi + 0xc], edx
cmp byte [eax], 0x77
je 0x516c80
mov edx, dword [esp + 0x88]
mov ecx, 3
movzx eax, byte [edx + 0x5eead8]
sub ecx, eax
add dword [esi + 0xc], ecx
jmp case.0x50d55e.145
test edi, edi
je 0x516cc3
cmp edi, 0xfffffc20
jne case.0x5169a4.49
mov edx, dword [esp + 0x88]
cmp dword [esi + 0x58], 0
je 0x516cd9
movzx eax, byte [edx + 0x5eead8]
jmp 0x516cdc
mov eax, dword [esi + 0x78]
add dword [esi + 0xc], eax
cmp dword [esi + 0x58], 0
mov eax, dword [esi + 0xc]
jne 0x516cf9
cmp byte [eax - 3], 0x77
mov edi, dword [esp + 0x8c]
jne 0x50d131
cmp dword [esi + 0x9c], 0x8c
jne 0x50d0b0
mov dword [ebp + 0x98], 2
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a80e
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a804
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
cmp edi, 1
je 0x516df2
cmp edi, 0xfffffc19
je 0x516df2
mov eax, dword [esi + 0x28]
mov dword [ebp + 0xac], eax
cmp edi, 0xfffffc20
jne 0x516d9a
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add ecx, dword [esi + 0xc]
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae case.0x5169a4.49
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x516da2
cmp byte [ecx], 0x77
jmp 0x516d9c
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add dword [esi + 0xc], ecx
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
jne 0x516df8
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a827
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a81d
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
mov eax, dword [ebp + 0x7c]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x78
jne 0x516e11
mov esi, dword [esi]
test esi, esi
je 0x51ada8
xor edi, edi
jmp 0x516994
cmp dword [esi + 0x58], 0
je 0x51a44e
mov esi, dword [esi]
test esi, esi
je 0x51ade6
mov edi, 1
jmp 0x516994
mov eax, dword [esi + 0x28]
mov dword [ebp + 0xac], eax
cmp edi, 0xfffffc20
jg 0x516edd
je 0x516e76
cmp edi, 0xfffffc19
je 0x517713
cmp edi, 0xfffffc1b
jle case.0x5169a4.49
cmp edi, 0xfffffc1f
jle 0x516e9e
mov esi, dword [esi]
test esi, esi
jne 0x516994
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add ecx, dword [esi + 0xc]
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae 0x516e9e
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x516ef0
cmp byte [ecx], 0x77
je 0x516ef0
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 0x516ea1
cmp dword [esi + 0x58], 0
je 0x517127
mov esi, dword [esi]
test esi, esi
je 0x51ade6
mov edx, dword [esp + 0x8c]
mov edi, 1
jmp 0x516994
mov eax, edi
sub eax, 0
je 0x516ef0
dec eax
je 0x517713
jmp case.0x5169a4.49
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add dword [esi + 0xc], ecx
mov edx, dword [esi + 0xc]
cmp byte [edx], 0x77
jne 0x516eb8
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a83d
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a833
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
mov eax, dword [esi + 0x48]
shl eax, 2
push eax
push dword [esi + 0x44]
push dword [ebp + 0xc]
call sub.MSVCRT.dll_memcpy
mov eax, dword [esi + 0x4c]
lea ebx, [esi + 0x3c]
mov dword [ebp + 0x90], eax
add esp, 0xc
mov eax, dword [ebx]
mov dword [ebp + 0xa4], eax
cmp edi, 1
je 0x51a47c
cmp edi, 0xfffffc19
je 0x51a47c
lea eax, [edi + 0x3e4]
cmp eax, 4
ja 0x516fa9
mov ecx, dword [esi + 0x44]
lea eax, [esi + 0xb0]
cmp ecx, eax
je 0x50df2b
push ecx
call dword [0x725f20]
add esp, 4
jmp 0x50df2b
test edi, edi
je 0x516fd3
mov ecx, dword [esi + 0x44]
lea eax, [esi + 0xb0]
cmp ecx, eax
je 0x516fc4
push ecx
call dword [0x725f20]
add esp, 4
mov esi, dword [esi]
test esi, esi
je 0x516e6c
jmp 0x516989
mov dword [ebp + 0xa4], ebx
mov edx, dword [esi + 0x20]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
lea eax, [ecx + edx]
mov dword [esi + 0x20], eax
cmp byte [eax], 0x77
jne 0x517039
cmp dword [esi + 0x58], 0
je 0x517004
mov dword [ebp + 0x98], 2
mov edx, dword [esi + 4]
test edx, edx
jne 0x51a883
push 0x134
call dword [0x725f24]
mov edx, eax
add esp, 4
test edx, edx
jne 0x51a879
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
mov eax, dword [ebx]
mov dword [ebp + 0xa4], eax
jmp 0x516f89
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x34]
mov al, byte [eax]
cmp al, 0x81
jne 0x517093
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a8d1
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a8c7
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
mov edx, dword [esp + 0x8c]
lea edi, [eax - 6]
jmp 0x516994
cmp al, 0x88
jb 0x51a5d4
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a8f3
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a8e9
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
mov edx, dword [esp + 0x8c]
lea edi, [eax - 6]
jmp 0x516994
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x34]
mov dword [ebp + 0xb4], eax
mov esi, dword [esi]
test esi, esi
je 0x51adf3
mov edi, 0xfffffc1b
jmp 0x516994
test edi, edi
jne case.0x5169a4.49
mov edx, dword [esi + 0x2c]
jmp 0x517110
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 0x517110
lea eax, [edx + 3]
mov dword [esi + 0xc], eax
jmp 0x50d12a
test edi, edi
je 0x50e9a4
jmp case.0x5169a4.49
test edi, edi
je 0x5170df
jmp case.0x5169a4.49
cmp edi, 0xfffffc1b
jne 0x51715b
mov eax, dword [ebp + 0xb4]
cmp eax, dword [esi + 0x34]
jmp 0x51715d
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x34]
cmp byte [eax], 0x81
jne 0x517f4b
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a915
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a90b
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
mov edx, dword [esp + 0x8c]
lea edi, [eax - 6]
jmp 0x516994
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x5171d0
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov edi, dword [esi + 8]
push ebx
push ebp
push dword [esi + 0x88]
push edi
push dword [esi + 0x98]
call fcn.0051b5d0
add esp, 0x14
test eax, eax
jns 0x517237
cmp eax, 0xfffffffe
jne 0x5171f9
mov eax, dword [ebp + 0x78]
mov dword [esi + 8], eax
cmp dword [ebp + 0x88], 0
je 0x518d11
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x518d11
cmp eax, dword [ebp + 0x84]
jbe 0x518d11
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50ff4e
jmp 0x518d11
add eax, edi
mov dword [esi + 8], eax
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a93a
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a930
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
mov edx, dword [esp + 0x8c]
mov edi, 0xfffffffa
jmp 0x516994
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x88]
sub dword [esi + 8], eax
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jb case.0x5140b6.14
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a953
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a949
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x5172f7
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x518df6
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 0x518d11
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a96c
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a962
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
dec dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jb 0x50df2b
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a985
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a97b
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x5173d1
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x518df6
movzx ecx, byte [eax]
cmp dword [esi + 0x80], ecx
je 0x517401
cmp dword [esi + 0x94], ecx
je 0x517401
mov esi, dword [esi]
test esi, esi
je 0x51ada8
xor edi, edi
jmp 0x516994
inc eax
mov dword [esi + 8], eax
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a99e
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a994
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
dec dword [esi + 8]
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
je 0x50d0b0
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a9b7
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a9ad
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x5174b1
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x518df6
movzx edx, byte [eax]
inc eax
mov ecx, dword [esi + 0x80]
mov dword [esi + 8], eax
cmp ecx, edx
jne 0x518d11
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a9d0
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a9c6
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
dec dword [esi + 8]
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
je 0x50d0b0
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51a9e9
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a9df
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x51757e
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x518df6
movzx ecx, byte [eax]
cmp dword [esi + 0x80], ecx
je 0x517713
cmp dword [esi + 0x94], ecx
je 0x517713
inc eax
mov dword [esi + 8], eax
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51aa02
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51a9f8
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
dec dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
je 0x50d0b0
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51aa1b
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51aa11
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x517655
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x518df6
movzx edx, byte [eax]
inc eax
mov ecx, dword [esi + 0x80]
mov dword [esi + 8], eax
cmp ecx, edx
je 0x518d11
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51aa31
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51aa27
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
dec dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
je 0x50d0b0
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51aa47
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51aa3d
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x517724
mov esi, dword [esi]
test esi, esi
je 0x51ada8
xor edi, edi
jmp 0x516994
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x78]
cmp ecx, edx
jb 0x51776b
cmp dword [ebp + 0x88], 0
je 0x517753
cmp ecx, dword [ebp + 0x84]
jbe 0x517753
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50ff4e
mov esi, dword [esi]
test esi, esi
je 0x51ada8
mov edx, dword [esp + 0x8c]
xor edi, edi
jmp 0x516994
cmp dword [esi + 0x7c], 0xc
jne 0x517792
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x5177b4
push dword [esp + 0x8c]
lea eax, [ebp + 0x1c]
push eax
push edx
push edi
push ecx
call fcn.0051d260
add esp, 0x14
test eax, eax
jne 0x5177d1
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.0x5177ad.15
jmp dword [eax*4 + 0x51b488]
mov edi, dword [ebp + 0x1c]
sub edx, edi
cmp ecx, edx
ja 0x517792
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x517792
cmp edi, 1
je 0x5177d1
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
jne 0x517792
mov esi, dword [esi]
test esi, esi
je 0x51ada8
mov edx, dword [esp + 0x8c]
xor edi, edi
jmp 0x516994
cmp dword [ebp + 0x88], 0
je case.0x5177ad.13
cmp edx, dword [ebp + 0x78]
jb case.0x5177ad.13
cmp dword [ebp + 0x18], 0
jne case.0x5177ad.13
cmp dword [ebp + 0x1c], 2
jne case.0x5177ad.13
movzx eax, byte [ebp + 0x34]
cmp ecx, eax
jne case.0x5177ad.13
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50ff4e
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51aa5d
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51aa53
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.0x51786d.14
movzx eax, byte [ecx + 0x51b4d8]
jmp dword [eax*4 + 0x51b4c8]
cmp edx, dword [ebp + 0x78]
jae case.0x5177ad.13
cmp byte [edx], 0xa
jne case.0x5177ad.13
lea eax, [edx + 1]
mov dword [esi + 8], eax
jmp case.0x5177ad.13
cmp dword [ebp + 0x68], 0
je case.0x5177ad.13
jmp case.0x51786d.14
cmp ecx, 9
je case.0x51786d.14
cmp ecx, 0x20
je case.0x51786d.14
cmp ecx, 0xa0
jmp 0x51796a
cmp ecx, 9
je case.0x5177ad.13
cmp ecx, 0x20
je case.0x5177ad.13
cmp ecx, 0xa0
je case.0x5177ad.13
jmp case.0x51786d.14
cmp ecx, 0xa
jb case.0x5177ad.13
cmp ecx, 0xd
jbe case.0x51786d.14
cmp ecx, 0x85
jmp 0x51796a
cmp ecx, 0xa
jb case.0x51786d.14
cmp ecx, 0xd
jbe case.0x5177ad.13
cmp ecx, 0x85
je case.0x5177ad.13
jmp case.0x51786d.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
je case.0x5177ad.13
jmp case.0x51786d.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
jmp 0x51796a
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
je case.0x5177ad.13
jmp case.0x51786d.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
jmp 0x51796a
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
je case.0x5177ad.13
mov esi, dword [esi]
test esi, esi
je 0x51ada8
mov edx, dword [esp + 0x8c]
xor edi, edi
jmp 0x516994
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
jne case.0x5177ad.13
mov esi, dword [esi]
test esi, esi
je 0x51ada8
mov edx, dword [esp + 0x8c]
xor edi, edi
jmp 0x516994
mov esi, dword [esi]
test esi, esi
je case.default.0x5169a4
mov edx, dword [esp + 0x8c]
mov edi, 0xfffffff2
jmp 0x516994
test edi, edi
jne case.0x5169a4.49
dec dword [esi + 8]
cmp dword [esi + 0x7c], 0x11
mov eax, dword [esi + 8]
jne 0x5179ca
cmp eax, dword [esi + 0x30]
jbe 0x5179ca
cmp byte [eax], 0xa
jne 0x5179ca
cmp byte [eax - 1], 0xd
jne 0x5179ca
dec dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
je 0x50d0b0
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51aa73
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51aa69
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
cmp edi, 0xfffffc1a
jne 0x517a61
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 0x517a59
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 0x517a40
jmp 0x517ab8
mov dword [esi + 8], eax
jmp 0x517add
cmp edi, 0xfffffc20
jne 0x517a95
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add ecx, dword [esi + 0xc]
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae case.0x5169a4.49
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x517a9d
cmp byte [ecx], 0x77
jmp 0x517a97
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add dword [esi + 0xc], ecx
mov edx, dword [esi + 0xc]
cmp byte [edx], 0x77
je 0x517ad1
cmp dword [esi + 0x5c], 0
jne 0x517127
cmp dword [esi + 0x54], 0
jne 0x517127
jmp 0x518d11
mov eax, dword [esi + 0xa0]
mov dword [ebp + 0x90], eax
cmp dword [esi + 0x9c], 0x88
jb 0x517af3
mov dword [ebp + 0x98], 2
mov edx, dword [esi + 4]
test edx, edx
jne 0x51aab5
push 0x134
call dword [0x725f24]
mov edx, eax
add esp, 4
test edx, edx
jne 0x51aaab
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
mov esi, dword [esi]
test edi, edi
jne 0x516e64
test esi, esi
je 0x51ae0d
mov edi, 0xfffffc1c
jmp 0x516994
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 8]
mov dword [ebp + 0x7c], eax
mov esi, dword [esi]
test esi, esi
je 0x51ae27
mov edi, 0xfffffc1e
jmp 0x516994
cmp edi, 1
je 0x517b73
cmp edi, 0xfffffc19
jne 0x517b8d
cmp dword [ebp + 0xac], 0
jne 0x517b8d
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0xac], eax
jmp 0x516b81
cmp edi, 0xfffffc1f
jne 0x516b81
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp + 0x7c]
add eax, 2
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x517bc2
test dl, dl
je 0x517bbe
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x517bc2
add eax, 2
add ecx, 2
test dl, dl
jne 0x517ba2
xor eax, eax
jmp 0x517bc7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x516b81
mov eax, dword [esi + 8]
mov dword [ebp + 0x7c], eax
mov esi, dword [esi]
test esi, esi
je 0x51ae27
mov edx, dword [esp + 0x8c]
mov edi, 0xfffffc1e
jmp 0x516994
cmp edi, 1
je 0x517bfd
cmp edi, 0xfffffc19
jne case.0x5169a4.51
cmp dword [ebp + 0xac], 0
jne case.0x5169a4.51
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0xac], eax
mov esi, dword [esi]
test edi, edi
jne 0x516e64
test esi, esi
je 0x51ae00
mov edi, 0xfffffc1d
jmp 0x516994
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0x7c], eax
mov esi, dword [esi]
test esi, esi
je 0x51ae34
mov edi, 0xfffffc1f
jmp 0x516994
cmp edi, 1
je 0x517c60
cmp edi, 0xfffffc19
jne case.0x5169a4.54
cmp dword [ebp + 0xac], 0
jne case.0x5169a4.54
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0xac], eax
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0xc]
mov dword [ebp + 0x7c], eax
mov esi, dword [esi]
test esi, esi
je 0x51ae1a
mov edi, 0xfffffc20
jmp 0x516994
cmp edi, 0xfffffc1a
jne 0x517d01
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 0x517cf9
mov edx, dword [esi + 0xc]
jmp 0x517ce0
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 0x517ce0
jmp 0x517d68
mov dword [esi + 8], eax
jmp 0x50dc62
cmp edi, 0xfffffc20
jne 0x517d35
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add ecx, dword [esi + 0xc]
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae case.0x5169a4.49
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x517d3d
cmp byte [ecx], 0x77
jmp 0x517d37
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0xa0]
mov dword [ebp + 0x90], eax
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add dword [esi + 0xc], ecx
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x50dc62
cmp dword [esi + 0x5c], 0
jne 0x517da8
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 0x50d126
cmp dword [esi + 0x5c], 0
jne 0x50d126
jmp 0x518d11
cmp edi, 1
jne 0x517e64
mov eax, dword [ebp + 0x7c]
mov dword [esi + 0x10], eax
mov edx, dword [esi + 0xc]
mov al, byte [edx]
cmp al, 0x82
je 0x517de1
cmp al, 0x77
jne 0x518d11
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 0x517de1
mov eax, dword [ebp + 0x8c]
mov dword [esi + 0x14], eax
mov ecx, dword [ebp + 0x80]
mov dword [esi + 8], ecx
mov eax, dword [esi + 0xc]
mov al, byte [eax]
cmp al, 0x78
je 0x50d126
cmp ecx, dword [esi + 0x38]
je 0x50d126
mov ecx, dword [esi + 4]
cmp al, 0x7a
jne 0x517efd
test ecx, ecx
jne 0x51ab1e
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51ab14
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
mov edx, dword [esp + 0x8c]
lea edi, [eax - 6]
jmp 0x516994
cmp edi, 0xfffffc20
jne 0x517e98
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add ecx, dword [esi + 0xc]
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae case.0x5169a4.49
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x517ea0
cmp byte [ecx], 0x77
jmp 0x517e9a
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add dword [esi + 0xc], ecx
mov eax, dword [esi + 0x28]
mov dword [ebp + 0xac], eax
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
jne 0x517dd0
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51aaf9
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51aaef
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test ecx, ecx
jne 0x51ab43
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51ab39
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
mov edx, dword [esp + 0x8c]
lea edi, [eax - 6]
jmp 0x516994
test edi, edi
je 0x51a5d4
jmp case.0x5169a4.49
test edi, edi
jne case.0x5169a4.49
add dword [esi + 0xc], 3
jmp 0x50d0b0
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x517f79
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x519556
movzx ebx, byte [edi]
inc edi
mov dword [esi + 8], edi
test edx, edx
je 0x51807a
cmp ebx, 0xc0
jb 0x51807a
test bl, 0x20
jne 0x517fbb
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x518077
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x517fe5
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x51807a
mov edx, dword [esi + 8]
test bl, 8
jne 0x51800b
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x51806e
test bl, 4
jne 0x51803a
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x51806e
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 edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
push edx
push dword [esi + 0x28]
push ebx
call fcn.0051cbf0
add esp, 0xc
test eax, eax
je 0x50df2b
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51ab65
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51ab5b
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov ecx, dword [esi + 8]
lea edx, [ecx - 1]
mov dword [esi + 8], edx
cmp ecx, dword [esi + 0x30]
jbe 0x518d11
cmp dword [esp + 0x8c], edi
je 0x518101
mov al, byte [edx]
and al, 0xc0
cmp al, 0x80
jne 0x518101
dec edx
mov dword [esi + 8], edx
mov al, byte [edx]
and al, 0xc0
cmp al, 0x80
je 0x5180f5
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51ab7e
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51ab74
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x51815b
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x519556
movzx ebx, byte [edi]
inc edi
mov dword [esi + 8], edi
cmp ebx, 0xc0
jb 0x518250
test bl, 0x20
jne 0x518195
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x51824d
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x5181bf
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x518250
mov edx, dword [esi + 8]
test bl, 8
jne 0x5181e8
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x51824b
test bl, 4
jne 0x518217
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x51824b
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 ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0xff
jbe 0x518266
cmp dword [esi + 0x9c], 0x6e
jne 0x518283
jmp 0x50df2b
mov edx, dword [esi + 0x28]
mov edi, ebx
and ebx, 7
shr edi, 3
mov eax, 1
mov ecx, ebx
shl eax, cl
test byte [edi + edx], al
je 0x50df2b
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51ab97
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51ab8d
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov ecx, dword [esi + 8]
lea edx, [ecx - 1]
mov dword [esi + 8], edx
cmp ecx, dword [esi + 0x30]
jbe 0x50df2b
mov al, byte [edx]
and al, 0xc0
cmp al, 0x80
jne 0x5182ec
dec edx
mov dword [esi + 8], edx
mov al, byte [edx]
and al, 0xc0
cmp al, 0x80
je 0x5182e0
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51abb0
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51aba6
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x518346
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
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 0x5183b5
mov edx, dword [esi + 0x24]
mov ecx, ebx
sub edi, 4
jb 0x518375
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x51837a
add ecx, 4
add edx, 4
sub edi, 4
jae 0x518364
cmp edi, 0xfffffffc
je 0x5183a7
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x5183b2
cmp edi, 0xfffffffd
je 0x5183a7
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x5183b2
cmp edi, 0xfffffffe
je 0x5183a7
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x5183b2
cmp edi, 0xffffffff
je 0x5183a7
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x5183b2
mov eax, dword [esi + 0x88]
jmp 0x518420
mov ecx, dword [ebp + 0x78]
mov edi, dword [esi + 0x6c]
test edi, edi
jle 0x518460
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x518460
lea edx, [esi + 0x70]
mov ecx, ebx
sub edi, 4
jb 0x5183e7
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5183ec
add ecx, 4
add edx, 4
sub edi, 4
jae 0x5183d6
cmp edi, 0xfffffffc
je 0x51841d
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x518460
cmp edi, 0xfffffffd
je 0x51841d
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x518460
cmp edi, 0xfffffffe
je 0x51841d
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x518460
cmp edi, 0xffffffff
je 0x51841d
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x518460
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 0x51abc9
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51abbf
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
cmp dword [ebp + 0x88], 0
je case.0x5140b6.14
cmp ebx, dword [ebp + 0x78]
jb case.0x5140b6.14
cmp ebx, dword [ebp + 0x84]
jbe case.0x5140b6.14
jmp 0x50e082
test edi, edi
jne case.0x5169a4.49
dec dword [esi + 8]
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x5184ac
lea ecx, [ecx]
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x5184a0
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x50d0b0
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51abe2
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51abd8
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x518512
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x519556
movzx edx, byte [edi]
inc edi
mov dword [esi + 8], edi
cmp edx, 0xc0
jb 0x518612
movzx eax, byte [edi]
and eax, 0x3f
test dl, 0x20
jne 0x51854c
and edx, 0x1f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x51860f
test dl, 0x10
jne 0x51856e
and edx, 0xf
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
add dword [esi + 8], 2
jmp 0x518612
mov ecx, dword [esi + 8]
test dl, 8
jne 0x51859e
and edx, 7
shl edx, 6
or edx, eax
movzx eax, byte [edi + 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]
jmp 0x51860f
test dl, 4
jne 0x5185d4
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 [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]
jmp 0x51860f
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 [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
cmp dword [esi + 0x80], edx
je 0x5177d1
cmp dword [esi + 0x94], edx
je 0x5177d1
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x518659
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x517265
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1c
jmp 0x51aa7d
test edi, edi
jne case.0x5169a4.49
dec dword [esi + 8]
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x51868c
mov edi, edi
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x518680
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x50d0b0
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51abfb
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51abf1
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x5186f2
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x519556
movzx ebx, byte [edi]
inc edi
mov dword [esi + 8], edi
cmp ebx, 0xc0
jb 0x5187e7
test bl, 0x20
jne 0x51872c
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x5187e4
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x518756
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x5187e7
mov edx, dword [esi + 8]
test bl, 8
jne 0x51877f
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x5187e2
test bl, 4
jne 0x5187ae
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x5187e2
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 ebx, ecx
mov dword [esi + 8], eax
cmp dword [esi + 0x80], ebx
je 0x50df2b
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51ac14
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51ac0a
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
dec dword [esi + 8]
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x518850
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x518844
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x50d0b0
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51ac2d
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51ac23
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x5188b6
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x78]
cmp ecx, edx
jb 0x5188f2
cmp dword [ebp + 0x88], 0
je 0x518d11
cmp ecx, dword [ebp + 0x84]
jbe 0x518d11
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50ff4e
jmp 0x518d11
cmp dword [esi + 0x7c], 0xc
jne 0x518944
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x51891f
push dword [esp + 0x8c]
lea eax, [ebp + 0x1c]
push eax
push edx
push edi
push ecx
call fcn.0051d260
add esp, 0x14
test eax, eax
jne 0x518d11
jmp 0x518944
mov edi, dword [ebp + 0x1c]
sub edx, edi
cmp ecx, edx
ja 0x518944
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x518944
cmp edi, 1
je 0x518d11
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je 0x518d11
mov eax, dword [esi + 8]
movzx edx, byte [eax]
lea edi, [eax + 1]
mov dword [esi + 8], edi
cmp edx, 0xc0
jb 0x518a2c
test dl, 0x20
jne 0x518977
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x518a29
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x51899e
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
lea eax, [edi + 2]
jmp 0x518a27
test dl, 8
jne 0x5189c4
and edx, 7
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
lea eax, [edi + 3]
jmp 0x518a27
test dl, 4
jne 0x5189f3
and edx, 3
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
lea eax, [edi + 4]
jmp 0x518a27
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 edx, ecx
mov dword [esi + 8], eax
mov eax, dword [esi + 0x7c]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x518a3b.15
jmp dword [eax*4 + 0x51b554]
cmp dword [ebp + 0x88], 0
je case.0x518a3b.13
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb case.0x518a3b.13
cmp dword [ebp + 0x18], 0
jne case.0x518a3b.13
cmp dword [ebp + 0x1c], 2
jne case.0x518a3b.13
movzx eax, byte [ebp + 0x34]
cmp edx, eax
jne case.0x518a3b.13
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle case.0x518a3b.13
jmp 0x50ff4e
cmp edx, 0xd
ja 0x518abe
je 0x518aab
cmp edx, 0xa
je case.0x518a3b.13
jbe 0x518d11
cmp edx, 0xc
jmp 0x518ad8
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae case.0x518a3b.13
cmp byte [eax], 0xa
jne case.0x518a3b.13
inc eax
mov dword [esi + 8], eax
jmp case.0x518a3b.13
cmp edx, 0x85
je 0x518ade
cmp edx, 0x2027
jbe 0x518d11
cmp edx, 0x2029
ja 0x518d11
cmp dword [ebp + 0x68], 0
je case.0x518a3b.13
jmp 0x518d11
cmp edx, 0x180e
ja 0x518b5d
je 0x518d11
cmp edx, 0xa0
ja 0x518b55
je 0x518d11
cmp edx, 9
je 0x518d11
cmp edx, 0x20
je 0x518d11
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x518b46
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x517265
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x2a
jmp 0x51aa7d
cmp edx, 0x1680
jmp 0x518b11
cmp edx, 0x205f
ja 0x518b87
je 0x518d11
cmp edx, 0x2000
jb case.0x518a3b.13
cmp edx, 0x200a
jbe 0x518d11
cmp edx, 0x202f
jmp 0x518b11
cmp edx, 0x3000
jmp 0x518d0b
cmp edx, 0x180e
ja 0x518bc4
je case.0x518a3b.13
cmp edx, 0xa0
ja 0x518bbc
je case.0x518a3b.13
cmp edx, 9
je case.0x518a3b.13
cmp edx, 0x20
jmp 0x518bf8
cmp edx, 0x1680
jmp 0x518bf8
cmp edx, 0x205f
ja 0x518bf2
je case.0x518a3b.13
cmp edx, 0x2000
jb 0x518d11
cmp edx, 0x200a
jbe case.0x518a3b.13
cmp edx, 0x202f
jmp 0x518bf8
cmp edx, 0x3000
je case.0x518a3b.13
jmp 0x518d11
cmp edx, 0x85
ja 0x518c28
je 0x518d11
cmp edx, 0xa
jb case.0x518a3b.13
cmp edx, 0xd
jbe 0x518d11
jmp case.0x518a3b.13
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x518a3b.13
jmp 0x518d11
cmp edx, 0x85
ja 0x518c58
je case.0x518a3b.13
cmp edx, 0xa
jb 0x518d11
cmp edx, 0xd
jmp 0x518c61
lea eax, [edx - 0x2028]
cmp eax, 1
jbe case.0x518a3b.13
jmp 0x518d11
cmp edx, 0x100
jae case.0x518a3b.13
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
je case.0x518a3b.13
jmp 0x518d11
cmp edx, 0x100
jae 0x518d11
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
jmp 0x518d0b
cmp edx, 0x100
jae case.0x518a3b.13
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
je case.0x518a3b.13
jmp 0x518d11
cmp edx, 0x100
jae 0x518d11
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
jmp 0x518d0b
cmp edx, 0x100
jae case.0x518a3b.13
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
je case.0x518a3b.13
mov esi, dword [esi]
test esi, esi
je 0x51ada8
mov edx, dword [esp + 0x8c]
xor edi, edi
jmp 0x516994
cmp edx, 0x100
jae 0x518d11
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
jne case.0x518a3b.13
mov esi, dword [esi]
test esi, esi
je 0x51ada8
mov edx, dword [esp + 0x8c]
xor edi, edi
jmp 0x516994
mov esi, dword [esi]
test esi, esi
je case.default.0x5169a4
mov edx, dword [esp + 0x8c]
mov edi, 0xfffffff2
jmp 0x516994
test edi, edi
jne case.0x5169a4.49
dec dword [esi + 8]
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x518d6c
lea ebx, [ebx]
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x518d60
cmp dword [esi + 0x7c], 0x11
jne 0x518d88
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x518d88
cmp byte [eax], 0xa
jne 0x518d88
dec eax
cmp byte [eax], 0xd
jne 0x518d88
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x50d0b0
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51ac46
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51ac3c
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x518dee
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x518e0e
cmp dword [ebp + 0x88], 0
je 0x517713
cmp eax, dword [ebp + 0x84]
jmp 0x519569
movzx ecx, byte [eax]
inc eax
mov dword [esi + 8], eax
test edx, edx
je 0x518e4d
cmp ecx, 0xc0
jb 0x518e4d
test cl, 0x20
jne 0x518e29
inc eax
jmp 0x518e4a
test cl, 0x10
jne 0x518e33
add eax, 2
jmp 0x518e4a
test cl, 8
jne 0x518e3d
add eax, 3
jmp 0x518e4a
test cl, 4
jne 0x518e47
add eax, 4
jmp 0x518e4a
add eax, 5
mov dword [esi + 8], eax
cmp dword [esi + 0x68], 0
je 0x518e64
mov esi, dword [esi]
test esi, esi
je 0x51ada8
xor edi, edi
jmp 0x516994
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x518e93
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x517265
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x24
jmp 0x51aa7d
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x518ec7
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x519556
movzx ebx, byte [edi]
inc edi
mov dword [esi + 8], edi
test edx, edx
je 0x518fc1
cmp ebx, 0xc0
jb 0x518fc1
test bl, 0x20
jne 0x518f09
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x518fbe
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x518f33
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x518fc1
mov edx, dword [esi + 8]
test bl, 8
jne 0x518f59
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x518fbc
test bl, 4
jne 0x518f88
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x518fbc
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 ebx, ecx
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x518fe3
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
cmp eax, 9
je 0x519008
cmp eax, 5
je 0x519008
cmp eax, 8
je 0x519008
xor eax, eax
jmp 0x51900d
mov eax, 1
cmp eax, dword [esi + 0x68]
je 0x50df2b
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51ac5f
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51ac55
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x519076
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x519556
movzx ebx, byte [edi]
inc edi
mov dword [esi + 8], edi
test edx, edx
je 0x51916c
cmp ebx, 0xc0
jb 0x51916c
test bl, 0x20
jne 0x5190b8
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x519169
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x5190e0
and ebx, 0xf
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
add dword [esi + 8], 2
jmp 0x51916c
mov edx, dword [esi + 8]
test bl, 8
jne 0x519106
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]
jmp 0x519169
test bl, 4
jne 0x519135
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]
jmp 0x519169
and ebx, 1
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
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x51918e
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
mov eax, dword [eax*4 + 0x5eebf0]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je 0x50df2b
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51ac78
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51ac6e
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x519218
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x519556
movzx ebx, byte [edi]
inc edi
mov dword [esi + 8], edi
test edx, edx
je 0x51930e
cmp ebx, 0xc0
jb 0x51930e
test bl, 0x20
jne 0x51925a
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x51930b
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x519282
and ebx, 0xf
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
add dword [esi + 8], 2
jmp 0x51930e
mov edx, dword [esi + 8]
test bl, 8
jne 0x5192a8
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]
jmp 0x51930b
test bl, 4
jne 0x5192d7
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]
jmp 0x51930b
and ebx, 1
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
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x519330
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je 0x50df2b
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51ac91
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51ac87
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x5193b3
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x519556
movzx ebx, byte [edi]
inc edi
mov dword [esi + 8], edi
test edx, edx
je 0x5194a9
cmp ebx, 0xc0
jb 0x5194a9
test bl, 0x20
jne 0x5193f5
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x5194a6
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x51941d
and ebx, 0xf
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
add dword [esi + 8], 2
jmp 0x5194a9
mov edx, dword [esi + 8]
test bl, 8
jne 0x519443
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]
jmp 0x5194a6
test bl, 4
jne 0x519472
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]
jmp 0x5194a6
and ebx, 1
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
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x5194cb
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede0]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je 0x50df2b
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51acaa
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51aca0
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x51954e
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x519597
cmp dword [ebp + 0x88], 0
je 0x517713
cmp edi, dword [ebp + 0x84]
jbe 0x517713
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle 0x517713
mov esi, dword [esi]
test esi, esi
je 0x51adcc
mov edi, 0xfffffff4
jmp 0x516994
movzx ebx, byte [edi]
inc edi
mov dword [esi + 8], edi
test edx, edx
je 0x519685
cmp ebx, 0xc0
jb 0x519685
test bl, 0x20
jne 0x5195cd
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x519682
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x5195f7
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x519685
mov edx, dword [esi + 8]
test bl, 8
jne 0x51961d
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x519680
test bl, 4
jne 0x51964c
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x519680
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 ebx, ecx
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x5196a7
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede2]
mov dword [esp + 0x80], eax
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x519838
lea esp, [esp]
cmp dword [esp + 0x8c], 0
mov edi, 1
mov eax, dword [esi + 8]
movzx ebx, byte [eax]
je 0x5197d7
cmp ebx, 0xc0
jb 0x5197d7
test bl, 0x20
jne 0x51970b
movzx eax, byte [eax + 1]
and ebx, 0x1f
mov edi, 2
jmp 0x5197cf
test bl, 0x10
jne 0x519730
movzx ecx, byte [eax + 1]
and ebx, 0xf
mov eax, dword [esi + 8]
and ecx, 0x3f
shl ebx, 6
mov edi, 3
or ebx, ecx
movzx eax, byte [eax + 2]
jmp 0x5197cf
test bl, 8
jne 0x519761
movzx ecx, byte [eax + 1]
and ebx, 7
mov eax, dword [esi + 8]
and ecx, 0x3f
shl ebx, 6
mov edi, 4
or ecx, ebx
shl ecx, 6
movzx ebx, byte [eax + 2]
movzx eax, byte [eax + 3]
and ebx, 0x3f
or ebx, ecx
jmp 0x5197cf
movzx eax, byte [eax + 1]
mov ecx, dword [esi + 8]
and eax, 0x3f
test bl, 4
jne 0x51979b
and ebx, 3
mov edi, 5
shl ebx, 6
or eax, ebx
movzx ebx, byte [ecx + 2]
shl eax, 6
and ebx, 0x3f
or ebx, eax
movzx eax, byte [ecx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 4]
jmp 0x5197cf
and ebx, edi
mov edi, 6
shl ebx, 6
or eax, ebx
movzx ebx, byte [ecx + 2]
shl eax, 6
and ebx, 0x3f
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
movzx eax, byte [ecx + 5]
and eax, 0x3f
shl ebx, 6
or ebx, eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x5197f9
dec ebx
or ebx, 0xffffff80
inc ebx
mov edx, dword [esp + 0x80]
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx ecx, byte [eax*8 + 0x5eede2]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x5eec68], eax
je 0x519838
add dword [esi + 8], edi
mov eax, dword [esi + 8]
mov dword [esp + 0x80], ecx
cmp eax, dword [ebp + 0x78]
jb 0x5196d0
cmp dword [ebp + 0x88], 0
je 0x519865
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x519865
cmp eax, dword [ebp + 0x84]
jbe 0x519865
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x50e096
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51acc3
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51acb9
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
dec dword [esi + 8]
mov ecx, dword [esi + 8]
test edx, edx
je 0x5198cc
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x5198cc
lea ebx, [ebx]
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x5198c0
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x50d0b0
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51acdc
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51acd2
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
dec dword [esi + 8]
mov ecx, dword [esi + 8]
test edx, edx
jne 0x519927
movzx ebx, byte [ecx]
jmp 0x519a15
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x51993c
nop
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x519930
mov eax, dword [esi + 8]
movzx ebx, byte [eax]
cmp ebx, 0xc0
jb 0x519a15
test bl, 0x20
jne 0x51995f
movzx eax, byte [eax + 1]
and ebx, 0x1f
jmp 0x519a0d
test bl, 0x10
jne 0x51997f
movzx ecx, byte [eax + 1]
and ebx, 0xf
mov eax, dword [esi + 8]
and ecx, 0x3f
shl ebx, 6
or ebx, ecx
movzx eax, byte [eax + 2]
jmp 0x519a0d
test bl, 8
jne 0x5199a8
movzx ecx, byte [eax + 1]
and ebx, 7
mov eax, dword [esi + 8]
and ecx, 0x3f
shl ebx, 6
or ecx, ebx
shl ecx, 6
movzx ebx, byte [eax + 2]
movzx eax, byte [eax + 3]
and ebx, 0x3f
or ebx, ecx
jmp 0x519a0d
movzx eax, byte [eax + 1]
mov ecx, dword [esi + 8]
and eax, 0x3f
test bl, 4
jne 0x5199dd
and ebx, 3
shl ebx, 6
or eax, ebx
movzx ebx, byte [ecx + 2]
shl eax, 6
and ebx, 0x3f
or ebx, eax
movzx eax, byte [ecx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 4]
jmp 0x519a0d
and ebx, 1
shl ebx, 6
or eax, ebx
movzx ebx, byte [ecx + 2]
shl eax, 6
and ebx, 0x3f
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
movzx eax, byte [ecx + 5]
and eax, 0x3f
shl ebx, 6
or ebx, eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x519a37
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede2]
mov dword [esp + 0x80], eax
mov edi, dword [esi + 8]
cmp edi, dword [esi + 0x30]
jbe 0x50d0b0
dec edi
cmp dword [esp + 0x8c], 0
jne 0x519a6f
movzx ebx, byte [edi]
jmp 0x519b2e
mov al, byte [edi]
and al, 0xc0
cmp al, 0x80
jne 0x519a81
mov al, byte [edi - 1]
dec edi
and al, 0xc0
cmp al, 0x80
je 0x519a77
movzx ebx, byte [edi]
cmp ebx, 0xc0
jb 0x519b2e
test bl, 0x20
jne 0x519aa1
movzx eax, byte [edi + 1]
and ebx, 0x1f
jmp 0x519b26
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test bl, 0x10
jne 0x519abe
and ebx, 0xf
shl ebx, 6
or ebx, ecx
jmp 0x519b26
and eax, 0x3f
test bl, 8
jne 0x519ad9
and ebx, 7
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 3]
jmp 0x519b26
test bl, 4
jne 0x519afd
and ebx, 3
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]
jmp 0x519b26
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, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x519b50
dec ebx
or ebx, 0xffffff80
inc ebx
mov ecx, dword [esp + 0x80]
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx edx, byte [eax*8 + 0x5eede2]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x5eec68], eax
je 0x515786
mov dword [esi + 8], edi
mov dword [esp + 0x80], edx
jmp 0x519a50
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x519bb1
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x519556
movzx ebx, byte [edi]
inc edi
mov dword [esi + 8], edi
test edx, edx
je 0x519cab
cmp ebx, 0xc0
jb 0x519cab
test bl, 0x20
jne 0x519bf3
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x519ca8
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x519c1d
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x519cab
mov edx, dword [esi + 8]
test bl, 8
jne 0x519c43
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x519ca6
test bl, 4
jne 0x519c72
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x519ca6
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 ebx, ecx
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x519ccd
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
mov eax, dword [eax*4 + 0x5eebf0]
cmp eax, 1
je 0x519cf4
cmp eax, 3
je 0x519cf4
xor eax, eax
jmp 0x519cf9
mov eax, 1
cmp eax, dword [esi + 0x68]
je 0x50df2b
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51ad0e
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51ad04
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x519d62
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x519556
movzx ebx, byte [edi]
inc edi
mov dword [esi + 8], edi
test edx, edx
je 0x519e63
cmp ebx, 0xc0
jb 0x519e63
test bl, 0x20
jne 0x519da4
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x519e60
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x519dce
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x519e63
mov edx, dword [esi + 8]
test bl, 8
jne 0x519df4
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x519e57
test bl, 4
jne 0x519e23
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x519e57
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 edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0x24
je 0x519e8e
cmp ebx, 0x40
je 0x519e8e
cmp ebx, 0x60
je 0x519e8e
cmp ebx, 0xa0
jb 0x519e82
cmp ebx, 0xd7ff
jbe 0x519e8e
cmp ebx, 0xe000
jae 0x519e8e
xor eax, eax
jmp 0x519e93
mov eax, 1
cmp eax, dword [esi + 0x68]
je 0x50e872
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51ad27
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51ad1d
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x519efc
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x519556
movzx ebx, byte [edi]
inc edi
mov dword [esi + 8], edi
test edx, edx
je 0x519ffd
cmp ebx, 0xc0
jb 0x519ffd
test bl, 0x20
jne 0x519f3e
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x519ffa
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x519f68
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add dword [esi + 8], 2
mov ebx, ecx
jmp 0x519ffd
mov edx, dword [esi + 8]
test bl, 8
jne 0x519f8e
and ebx, 7
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
lea eax, [edx + 3]
jmp 0x519ff1
test bl, 4
jne 0x519fbd
and ebx, 3
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
lea eax, [edx + 4]
jmp 0x519ff1
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 edx, dword [esp + 0x8c]
mov ebx, ecx
mov dword [esi + 8], eax
cmp ebx, 0x180e
ja 0x51a040
je case.0x51a060.8192
cmp ebx, 0x85
ja 0x51a02c
je case.0x51a060.8192
cmp ebx, 9
jb case.0x51a060.8203
cmp ebx, 0xd
jbe case.0x51a060.8192
cmp ebx, 0x20
jmp 0x51a075
cmp ebx, 0xa0
je case.0x51a060.8192
cmp ebx, 0x1680
jmp 0x51a075
cmp ebx, 0x202f
ja 0x51a067
je case.0x51a060.8192
lea eax, [ebx - 0x2000]
cmp eax, 0x29
ja case.0x51a060.8203
movzx eax, byte [eax + 0x51b59c]
jmp dword [eax*4 + 0x51b594]
cmp ebx, 0x205f
je case.0x51a060.8192
cmp ebx, 0x3000
je case.0x51a060.8192
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5f0460]
shl eax, 7
and ebx, 0x8000007f
jns 0x51a099
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
cmp dword [eax*4 + 0x5eebf0], 6
sete cl
cmp ecx, dword [esi + 0x68]
jne 0x51a0cc
jmp 0x50df2b
cmp dword [esi + 0x68], 0
jne 0x50e872
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51ad40
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51ad36
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x51a12c
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x519556
movzx ebx, byte [edi]
inc edi
mov dword [esi + 8], edi
test edx, edx
je 0x51a222
cmp ebx, 0xc0
jb 0x51a222
test bl, 0x20
jne 0x51a16e
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x51a21f
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x51a196
and ebx, 0xf
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
add dword [esi + 8], 2
jmp 0x51a222
mov edx, dword [esi + 8]
test bl, 8
jne 0x51a1bc
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]
jmp 0x51a21f
test bl, 4
jne 0x51a1eb
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]
jmp 0x51a21f
and ebx, 1
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
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x5f0460]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x51a245
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5f2660]
movzx eax, byte [eax*8 + 0x5eede1]
mov eax, dword [eax*4 + 0x5eebf0]
cmp eax, 1
je 0x51a271
cmp eax, 3
je 0x51a271
cmp ebx, 0x5f
je 0x51a271
xor eax, eax
jmp 0x51a276
mov eax, 1
cmp eax, dword [esi + 0x68]
je 0x50df2b
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51ad59
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51ad4f
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
test edi, edi
jne case.0x5169a4.49
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jl 0x51a2df
mov esi, dword [esi]
test esi, esi
je 0x51ada8
jmp 0x516994
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x519556
movzx ebx, byte [edi]
inc edi
mov dword [esi + 8], edi
test edx, edx
je 0x51a3dc
cmp ebx, 0xc0
jb 0x51a3dc
test bl, 0x20
jne 0x51a321
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edi + 1]
jmp 0x51a3d9
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x51a349
and ebx, 0xf
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
add dword [esi + 8], 2
jmp 0x51a3dc
mov edx, dword [esi + 8]
test bl, 8
jne 0x51a36f
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]
jmp 0x51a3d2
test bl, 4
jne 0x51a39e
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]
jmp 0x51a3d2
and ebx, 1
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
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 5]
mov edx, dword [esp + 0x8c]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x64]
mov ecx, dword [eax*4 + 0x5eeca0]
lea eax, [eax*4 + 0x5eeca0]
cmp ebx, ecx
jb 0x51a3fe
lea eax, [eax + 4]
cmp ebx, ecx
je 0x51a443
mov ecx, dword [eax]
cmp ebx, ecx
jae 0x51a3f1
cmp dword [esi + 0x68], 0
je 0x50e872
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x51ad72
push 0x134
call dword [0x725f24]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x51ad68
mov esi, dword [esi]
test esi, esi
je 0x51ad9b
lea edi, [eax - 6]
jmp 0x516989
cmp dword [esi + 0x68], 0
je 0x51a408
jmp 0x50e872
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 0x51a451
lea eax, [edx + 3]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x8c]
mov dword [esi + 0x14], eax
jmp 0x50d12a
mov ecx, dword [esi + 0x44]
lea eax, [esi + 0xb0]
cmp ecx, eax
je 0x51a493
push ecx
call dword [0x725f20]
add esp, 4
mov eax, dword [ebp + 0x80]
mov dword [esi + 8], eax
mov eax, dword [ebp + 0x7c]
mov dword [esi + 0x10], eax
jmp 0x50d12a
mov eax, dword [esi + 0x90]
mov dword [esi + 0x84], eax
jmp 0x518289
mov eax, dword [esi + 0x90]
mov dword [esi + 0x84], eax
jmp 0x518095
mov eax, dword [esi + 0x90]
mov dword [esi + 0x84], eax
jmp 0x51842b
mov eax, dword [esi + 0x90]
mov ebx, dword [esp + 0x7c]
mov dword [esi + 0x84], eax
jmp 0x518630
mov eax, dword [esi + 0x90]
mov dword [esi + 0x84], eax
jmp 0x5187f9
mov eax, dword [esi + 0x90]
mov ebx, dword [esp + 0x7c]
mov dword [esi + 0x84], eax
jmp 0x518e6a
mov eax, dword [esi + 0x90]
mov dword [esi + 0x84], eax
jmp 0x51901c
mov eax, dword [esi + 0x90]
mov dword [esi + 0x84], eax
jmp 0x5191be
mov eax, dword [esi + 0x90]
mov dword [esi + 0x84], eax
jmp 0x519359
mov eax, dword [esi + 0x90]
mov dword [esi + 0x84], eax
jmp 0x5194f4
mov eax, dword [esi + 0x90]
mov dword [esi + 0x84], eax
jmp 0x519d08
mov eax, dword [esi + 0x90]
mov dword [esi + 0x84], eax
jmp 0x51a0d2
mov eax, dword [esi + 0x90]
mov dword [esi + 0x84], eax
jmp 0x51a285
mov eax, dword [esi + 0x90]
mov dword [esi + 0x84], eax
jmp 0x51a40e
mov eax, dword [esi + 0x90]
mov dword [esi + 0x84], eax
jmp 0x519ea2
mov eax, dword [esi + 0x90]
mov ebx, dword [esp + 0x7c]
mov dword [esi + 0x84], eax
jmp 0x518b1d
mov eax, dword [esi + 0x90]
mov dword [esi + 0x84], eax
jmp 0x51986b
mov eax, dword [esi + 0x34]
mov dword [esi + 0xc], eax
jmp 0x50d0b0
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 ecx, dword [esi + 0xc]
movzx eax, byte [ecx]
movzx edx, byte [eax + 0x5eead8]
movzx eax, byte [ecx + 1]
add edx, eax
add edx, ecx
mov dword [edi + 0xc], edx
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 0x50d0a0
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 0x51a896
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 0x51a896
mov dword [edi + 4], ebx
mov dword [esi + 4], edi
mov dword [esi + 0x130], 0x38
jmp 0x51a5ef
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 0x51a896
mov dword [edi + 4], ebx
mov dword [esi + 4], edi
mov dword [esi + 0x130], 0x39
jmp 0x51a5ef
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 0x51a896
mov dword [edi + 4], ebx
mov dword [esi + 4], edi
mov dword [esi + 0x130], 0x3a
jmp 0x51a5ef
mov dword [ecx + 4], ebx
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]
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], ebx
mov eax, dword [esi + 0x1c]
inc eax
mov dword [ecx + 0x1c], eax
mov dword [ecx], esi
mov esi, ecx
jmp 0x50d0a0
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 0x51aa86
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 0x51aa86
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 0x51aa86
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 0x51aa86
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 0x51aa86
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 0x51a896
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 0x51a896
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x31
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 4
jmp 0x51a847
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 0x50d0a0
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 + 0x5eead8]
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 0x50d0a0
mov dword [ecx + 4], 0
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 0x51aa86
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 0x51aa86
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 0x51aa86
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0xe
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0xf
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x11
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x13
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x18
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x19
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1a
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1b
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1d
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1f
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x21
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x23
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x2b
jmp 0x51aa7d
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 0x50d0a0
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 0x51a896
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 0x51a896
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 0x51aa86
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 0x51aa86
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 0x51aa86
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x14
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x15
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x10
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x12
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x16
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x17
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1e
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x20
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x22
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x2e
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x25
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x26
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x27
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x28
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x29
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x2c
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x2d
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x3b
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x3c
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x3d
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x3e
jmp 0x51aa7d
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x43
jmp 0x51aa7d
pop edi
pop esi
pop ebp
mov eax, 0xfffffff8
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffeb
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffa
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffe6
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1a
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffff4
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffff2
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1b
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1d
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1c
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc20
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1e
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1f
pop ebx
add esp, 0x68
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffb
pop ebx
add esp, 0x68
ret