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

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x8c
push ebx
push ebp
mov ebp, dword [esp + 0xa8]
push esi
push edi
mov esi, dword [ebp + 0xb8]
mov dword [esi + 8], eax
mov eax, dword [esp + 0xa4]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0xa8]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xac]
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0xb4]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0xb8]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
nop
mov edx, dword [ebp]
mov ebx, dword [ebp + 0x4c]
mov dword [esp + 0x28], ebx
lea eax, [edx + 1]
mov dword [ebp], eax
cmp edx, dword [ebp + 4]
jb 0x53f36b
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54ce42
mov edi, 0xfffffff8
jmp 0x548f34
mov eax, dword [esi + 0x1c]
cmp eax, dword [ebp + 8]
jb 0x53f389
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54ce52
mov edi, 0xffffffeb
jmp 0x548f34
cmp dword [ebp + 0x98], 2
jne 0x53f3b3
mov eax, dword [esi + 8]
lea ecx, [esi + 0x128]
mov dword [esi + 0x12c], eax
mov eax, dword [esi + 0x18]
mov dword [ecx], eax
mov dword [esi + 0x18], ecx
mov dword [ebp + 0x98], 0
mov eax, dword [esi + 0xc]
xor ebx, ebx
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], ebx
mov cl, byte [eax]
movzx eax, cl
mov dword [esi + 0x9c], eax
cmp cl, 0xa1
ja case.0x53f3df.98
movzx eax, byte [eax + 0x54d08c]
jmp dword [eax*4 + 0x54cf40]
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 0x53f41d
push 0x134
call dword [0x7deac8]
mov edi, eax
add esp, 4
test edi, edi
je 0x54cbe8
mov dword [edi + 4], ebx
mov dword [esi + 4], edi
mov dword [esi + 0x130], 0x37
mov eax, dword [esi + 8]
mov dword [edi + 8], eax
mov edx, dword [esi + 0xc]
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
movzx eax, byte [eax + 0x6a1b50]
add eax, edx
add ecx, eax
mov dword [edi + 0xc], ecx
mov eax, dword [esi + 0x10]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x18]
mov dword [edi + 0x18], eax
mov eax, dword [esi + 0x1c]
inc eax
mov dword [edi + 0x1c], eax
mov dword [edi], esi
mov esi, edi
jmp 0x53f330
mov edx, dword [esi + 4]
test edx, edx
jne 0x53f48c
push 0x134
call dword [0x7deac8]
mov edx, eax
add esp, 4
test edx, edx
je 0x54cbe8
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 0x549658
mov edx, dword [esi + 4]
test edx, edx
jne 0x53f4c9
push 0x134
call dword [0x7deac8]
mov edx, eax
add esp, 4
test edx, edx
je 0x54cbe8
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 0x549658
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 0x53f518
push 0x134
call dword [0x7deac8]
mov edi, eax
add esp, 4
test edi, edi
je 0x54cbe8
mov dword [edi + 4], ebx
mov dword [esi + 4], edi
mov dword [esi + 0x130], 0x38
jmp 0x53f427
mov edx, dword [esi + 4]
test edx, edx
jne 0x53f54c
push 0x134
call dword [0x7deac8]
mov edx, eax
add esp, 4
test edx, edx
je 0x54cbe8
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 0x549658
mov eax, dword [ebp + 0x28]
inc eax
mov dword [ebp + 0x28], eax
cmp eax, dword [ebp + 0x2c]
ja 0x53f58d
mov edx, dword [esi + 0xc]
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
movzx eax, byte [eax + 0x6a1b50]
add eax, edx
add ecx, eax
mov dword [esi + 0xc], ecx
jmp 0x53f3b3
mov edi, dword [esi + 4]
test edi, edi
jne 0x53f5b2
push 0x134
call dword [0x7deac8]
mov edi, eax
add esp, 4
test edi, edi
je 0x54cbe8
mov dword [edi + 4], ebx
mov dword [esi + 4], edi
mov dword [esi + 0x130], 0x39
jmp 0x53f427
mov edx, dword [esi + 4]
test edx, edx
jne 0x53f5e6
push 0x134
call dword [0x7deac8]
mov edx, eax
add esp, 4
test edx, edx
je 0x54cbe8
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 0x549658
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 0x53f635
push 0x134
call dword [0x7deac8]
mov edi, eax
add esp, 4
test edi, edi
je 0x54cbe8
mov dword [edi + 4], ebx
mov dword [esi + 4], edi
mov dword [esi + 0x130], 0x3a
jmp 0x53f427
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 0x54a599
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.0x53f3df.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 0x548fd3
mov dword [esi + 0x54], ebx
jmp 0x53febf
mov dword [esi + 0x54], ebx
jmp 0x53fee3
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x78], ecx
mov eax, dword [esi + 0xc]
add eax, 3
mov dword [esi + 0xc], eax
cmp byte [eax], 0x76
jne 0x53f801
mov edi, dword [0x7e5150]
test edi, edi
je 0x53f7ed
mov dword [esp + 0x34], 2
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + 1]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x3c], eax
mov ecx, dword [ebp + 0x74]
mov dword [esp + 0x40], ecx
mov eax, dword [ebp + 0x78]
sub eax, ecx
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x10]
sub eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esi + 8]
sub eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x5c], ecx
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 4]
movzx eax, byte [eax + 5]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x60], ecx
mov ecx, 0xffffffff
mov eax, dword [esi + 0x14]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x90]
and eax, 0xffff
cmove eax, ecx
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0xa8]
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0xb0]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x34]
push eax
call edi
mov edi, eax
add esp, 4
test edi, edi
jg case.default.0x54b28a
jns 0x53f7ed
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x549074
jmp 0x548f30
movzx eax, byte [0x6a1bc6]
add dword [esi + 0xc], eax
movzx eax, byte [0x6a1bc6]
sub dword [esi + 0x78], eax
mov dword [esi + 0x58], ebx
mov ebx, dword [esi + 0xc]
movzx ecx, byte [ebx]
mov dword [esp + 0x2c], ecx
lea eax, [ecx - 0x8d]
cmp eax, 0x10
ja case.0x53f824.146
movzx eax, byte [eax + 0x54d148]
jmp dword [eax*4 + 0x54d130]
mov edx, dword [ebp + 0xa4]
test edx, edx
je case.0x53f824.145
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
cmp ecx, 0xffff
je 0x53f902
cmp ecx, dword [edx + 4]
je 0x53f902
xor eax, eax
mov dword [esi + 0x58], eax
mov ecx, dword [esp + 0x2c]
cmp dword [esi + 0x58], 0
je 0x5492ad
movzx ecx, byte [ecx + 0x6a1b50]
jmp 0x5492b0
cmp dword [ebp + 0xa4], 0
je case.0x53f824.145
movzx edi, byte [ebx + 3]
movzx eax, byte [ebx + 4]
movzx ecx, byte [ebx + 1]
shl edi, 8
or edi, eax
shl ecx, 8
movzx eax, byte [ebx + 2]
or ecx, eax
mov eax, dword [ebp + 0x30]
imul ecx, dword [ebp + 0x24]
add eax, ecx
test edi, edi
je 0x53f85c
mov ebx, eax
movzx edx, byte [eax + 1]
dec edi
movzx eax, byte [eax]
shl eax, 8
or edx, eax
mov eax, dword [ebp + 0xa4]
mov ecx, dword [eax + 4]
xor eax, eax
cmp edx, ecx
sete al
mov dword [esi + 0x58], eax
je 0x53f85c
mov eax, dword [ebp + 0x24]
add eax, ebx
mov ebx, eax
test edi, edi
jg 0x53f8a8
jmp 0x53f85c
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ecx, ecx
mov dword [esi + 0x98], ecx
cmp ecx, dword [esi + 0x14]
jge 0x53f857
mov eax, dword [ebp + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x53f857
mov eax, 1
jmp 0x53f859
movzx edi, byte [ebx + 3]
movzx eax, byte [ebx + 4]
movzx edx, byte [ebx + 1]
shl edi, 8
shl edx, 8
or edi, eax
movzx eax, byte [ebx + 2]
or edx, eax
imul edx, dword [ebp + 0x24]
add edx, dword [ebp + 0x30]
test edi, edi
je case.0x53f824.145
movzx eax, byte [edx]
dec edi
movzx ecx, byte [edx + 1]
shl eax, 8
or ecx, eax
add ecx, ecx
mov dword [esi + 0x98], ecx
cmp ecx, dword [esi + 0x14]
jge 0x53f95f
mov eax, dword [ebp + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x53f95f
mov eax, 1
jmp 0x53f961
xor eax, eax
mov dword [esi + 0x58], eax
test eax, eax
jne 0x53f85c
add edx, dword [ebp + 0x24]
test edi, edi
jg 0x53f935
jmp 0x53f85c
mov dword [ebp + 0x98], 1
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x53f9ab
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 3
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc]
jmp 0x549521
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 0x53fa18
or eax, 0x10000
mov dword [ebp + 0x90], eax
add dword [esi + 0xc], 3
jmp 0x53f3b3
mov eax, dword [ebp + 0x10]
sub eax, dword [esi + 0x94]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [esi + 0x98]
mov edx, dword [esi + 8]
mov eax, dword [ebp + 0xc]
sub edx, dword [ebp + 0x74]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esi + 0x98]
mov ecx, dword [esi + 0x14]
cmp edx, ecx
jl 0x53fa0f
mov eax, dword [ebp + 0xc]
lea ecx, [eax + ecx*4]
lea edx, [eax + edx*4]
cmp ecx, edx
jae 0x53fa6f
mov eax, ecx
nop dword [eax]
mov dword [ecx], 0xffffffff
lea ecx, [eax + 4]
mov eax, ecx
cmp ecx, edx
jb 0x53fa60
mov eax, dword [esi + 0x98]
add eax, 2
mov dword [esi + 0x14], eax
add dword [esi + 0xc], 3
jmp 0x53f3b3
mov edi, dword [esi + 8]
mov edx, dword [esi + 0x10]
cmp edi, edx
jne 0x53faba
cmp cl, 0x9f
je 0x53faba
cmp dword [ebp + 0xa4], ebx
jne 0x53faba
cmp dword [ebp + 0x5c], ebx
jne case.default.0x54b28a
cmp dword [ebp + 0x60], ebx
je 0x53faba
mov eax, dword [ebp + 0x94]
add eax, dword [ebp + 0x74]
cmp edx, eax
je case.default.0x54b28a
mov dword [ebp + 0x80], edi
mov edi, 0xfffffc19
mov eax, dword [esi + 0x14]
mov dword [ebp + 0x8c], eax
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x7c], eax
mov eax, 1
cmp dword [esi + 0x9c], ebx
cmove edi, eax
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x549074
jmp 0x548f30
mov eax, dword [ebp + 0xac]
mov dword [esi + 0x28], eax
cmp dword [ebp + 0x98], 1
jne 0x53fb17
mov dword [esi + 0x58], 1
mov dword [ebp + 0x98], ebx
jmp 0x549398
mov dword [esi + 0x58], ebx
jmp 0x549398
mov eax, dword [ebp + 0xac]
mov dword [esi + 0x28], eax
cmp dword [ebp + 0x98], 1
jne 0x53fb43
mov dword [esi + 0x58], 1
mov dword [ebp + 0x98], ebx
jmp 0x5494e2
mov dword [esi + 0x58], ebx
jmp 0x5494e2
mov ebx, dword [esp + 0x28]
mov eax, dword [esi + 0xc]
test ebx, ebx
je 0x53fb92
movzx edx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl edx, 8
or edx, eax
jbe 0x53fbb0
mov ecx, dword [esi + 8]
dec edx
dec ecx
mov dword [esi + 8], ecx
cmp ecx, dword [ebp + 0x74]
jb case.0x549e8a.14
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x53fb8c
nop
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x53fb80
test edx, edx
jg 0x53fb65
jmp 0x53fbb0
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [esi + 8]
sub eax, ecx
mov dword [esi + 8], eax
cmp eax, dword [ebp + 0x74]
jb case.0x549e8a.14
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x84]
jae 0x53fa0f
mov dword [ebp + 0x84], eax
add dword [esi + 0xc], 3
jmp 0x53f3b3
mov edi, dword [0x7e5150]
test edi, edi
je 0x53fcb3
mov dword [esp + 0x68], 2
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + 1]
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x70], eax
mov ecx, dword [ebp + 0x74]
mov dword [esp + 0x74], ecx
mov eax, dword [ebp + 0x78]
sub eax, ecx
mov dword [esp + 0x78], eax
mov eax, dword [esi + 0x10]
sub eax, ecx
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 8]
sub eax, ecx
mov dword [esp + 0x80], eax
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x90], ecx
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 4]
movzx eax, byte [eax + 5]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x94], ecx
mov ecx, 0xffffffff
mov eax, dword [esi + 0x14]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x84], eax
mov eax, dword [ebp + 0x90]
and eax, 0xffff
cmove eax, ecx
mov dword [esp + 0x88], eax
mov eax, dword [ebp + 0xa8]
mov dword [esp + 0x8c], eax
mov eax, dword [ebp + 0xb0]
mov dword [esp + 0x98], eax
lea eax, [esp + 0x68]
push eax
call edi
mov edi, eax
add esp, 4
test edi, edi
jg case.default.0x54b28a
jns 0x53fcb3
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x549074
jmp 0x548f30
add dword [esi + 0xc], 6
jmp 0x53f3b3
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 0x53fcdd
xor edx, edx
jmp 0x53fcea
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 0x53fd09
cmp edx, dword [ecx + 4]
jne 0x53fd01
mov eax, dword [esi + 8]
cmp eax, dword [ecx + 0x14]
je 0x53fd46
mov eax, dword [ecx]
mov ecx, eax
test eax, eax
jne 0x53fcf4
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 0x53fd5c
lea eax, [esi + 0xb0]
mov dword [esi + 0x44], eax
jmp 0x53fd74
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54ce62
mov edi, 0xffffffe6
jmp 0x548f30
shl eax, 2
push eax
call dword [0x7deac0]
add esp, 4
mov dword [esi + 0x44], eax
test eax, eax
je 0x54cbe8
mov eax, dword [esi + 0x48]
shl eax, 2
push eax
push dword [ebp + 0xc]
push dword [esi + 0x44]
call fcn.0052d690
mov eax, dword [esi + 0x20]
add esp, 0xc
cmp byte [eax], 0x88
sbb eax, eax
inc eax
mov dword [esi + 0x58], eax
jmp 0x549608
mov edx, dword [esi + 0xc]
nop dword [eax]
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 0x53fda0
jmp 0x53f3b3
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0x2c], eax
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x53fde8
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
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 0x54a04c
mov edx, dword [esi + 0xc]
inc edx
mov dword [esi + 0x2c], edx
nop word [eax + eax]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov edx, eax
mov dword [esi + 0x2c], eax
cmp byte [edx], 0x77
je 0x53fe10
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x53fe4e
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
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 0x54a04c
mov edx, dword [esi + 0xc]
inc edx
mov dword [esi + 0x2c], edx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov edx, eax
mov dword [esi + 0x2c], eax
cmp byte [edx], 0x77
je 0x53fe70
add eax, 3
mov dword [esi + 0xc], eax
jmp 0x53f3b3
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
movzx eax, byte [eax]
mov dword [esi + 0x9c], eax
mov dword [esi + 0x54], 1
mov eax, dword [esi + 0x9c]
cmp eax, 0x86
je 0x53febf
cmp eax, 0x8b
jne 0x53fee3
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 0x53ff00
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 0x54a156
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 0x53ff7d
mov dword [ebp + 0x98], 2
mov edx, dword [esi + 4]
test edx, edx
jne 0x53ffa6
push 0x134
call dword [0x7deac8]
mov edx, eax
add esp, 4
test edx, edx
je 0x54cbe8
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 0x549658
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
sub edx, ecx
mov dword [esi + 0x34], edx
mov al, byte [edx]
cmp al, 0x88
jae 0x53ffe2
cmp al, 0x81
je 0x53ffe2
mov dword [esi + 0x38], ebx
jmp 0x53fff3
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 0x540000
cmp al, 0x80
jbe 0x540004
cmp al, 0x82
jne 0x540021
mov eax, dword [esi + 8]
mov dword [ebp + 0x80], eax
mov eax, dword [esi + 0x14]
mov dword [ebp + 0x8c], eax
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x7c], eax
jmp 0x5494b2
cmp al, 0x85
je 0x540035
cmp al, 0x8a
je 0x540035
cmp al, 0x86
je 0x540035
cmp al, 0x8b
jne 0x54010b
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 0x54007a
mov eax, dword [eax + 4]
cmp eax, dword [esi + 0x94]
jne 0x54007a
mov eax, dword [esi + 8]
mov dword [ebp + 0x80], eax
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x7c], eax
jmp 0x5494b2
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 0x5400a9
or eax, 0x10000
mov dword [ebp + 0x90], eax
jmp 0x54010b
mov ecx, dword [esi + 0x14]
cmp edx, ecx
jle 0x5400cf
mov eax, dword [ebp + 0xc]
lea ecx, [eax + ecx*4]
lea edx, [eax + edx*4]
cmp ecx, edx
jae 0x5400cf
mov eax, ecx
nop
mov dword [ecx], 0xffffffff
lea ecx, [eax + 4]
mov eax, ecx
cmp ecx, edx
jb 0x5400c0
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 0x54010b
add eax, 2
mov dword [esi + 0x14], eax
mov edi, dword [esi + 0xc]
mov cl, byte [edi]
cmp cl, 0x7b
jne 0x540143
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x7c], eax
mov eax, dword [esi + 8]
mov dword [ebp + 0x80], eax
mov eax, dword [esi + 0x14]
mov dword [ebp + 0x8c], eax
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54ce72
mov edi, 0xfffffc1a
jmp 0x548f30
cmp cl, 0x78
je 0x5401d3
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x38]
je 0x5401d3
cmp cl, 0x7a
mov ecx, dword [esi + 4]
jne 0x540199
test ecx, ecx
jne 0x54017e
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
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 0x54a04c
test ecx, ecx
jne 0x5401bb
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
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 0x54a04c
mov eax, dword [esi + 0x34]
cmp byte [eax], 0x81
jne 0x541b12
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x540204
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
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 0x54a04c
cmp dword [ebp + 0x44], ebx
je case.0x53f3df.1
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
je case.default.0x54b28a
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
je case.0x5412d6.10
jmp case.default.0x54b28a
cmp dword [ebp + 0x44], ebx
je 0x540252
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
je case.default.0x54b28a
mov ecx, dword [esi + 8]
mov edi, dword [ebp + 0x74]
cmp ecx, edi
je case.0x5412d6.10
cmp ecx, dword [ebp + 0x78]
je case.default.0x54b28a
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x54029d
cmp ecx, edi
jbe 0x540292
push dword [esp + 0x28]
lea eax, [ebp + 0x1c]
push eax
push edi
push edx
push ecx
call fcn.0054f330
add esp, 0x14
test eax, eax
je 0x540292
mov eax, 1
jmp 0x540294
xor eax, eax
test eax, eax
jne case.0x5412d6.10
jmp case.default.0x54b28a
mov edx, dword [ebp + 0x1c]
lea eax, [edx + edi]
cmp ecx, eax
jb case.default.0x54b28a
mov eax, ecx
sub eax, edx
mov al, byte [eax]
cmp al, byte [ebp + 0x34]
jne case.default.0x54b28a
cmp edx, 1
je case.0x5412d6.10
sub ecx, edx
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je case.0x5412d6.10
jmp case.default.0x54b28a
mov eax, dword [ebp + 0x94]
add eax, dword [ebp + 0x74]
cmp dword [esi + 8], eax
je case.0x5412d6.10
jmp case.default.0x54b28a
mov eax, dword [esi + 8]
mov dword [esi + 0x10], eax
inc dword [esi + 0xc]
jmp 0x53f3b3
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x78]
cmp ecx, edx
jae 0x540394
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x540322
mov ebx, dword [esp + 0x28]
lea eax, [ebp + 0x1c]
push ebx
push eax
push edx
push edi
push ecx
call fcn.0054f1a0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
jne case.0x5412d6.10
jmp 0x540343
mov edi, dword [ebp + 0x1c]
sub edx, edi
cmp ecx, edx
ja 0x54033f
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x54033f
cmp edi, 1
je case.0x5412d6.10
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je case.0x5412d6.10
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x549e8a.14
mov edx, dword [esi + 8]
lea eax, [edx + 1]
cmp eax, dword [ebp + 0x78]
jb case.0x549e8a.14
cmp dword [ebp + 0x18], 0
jne case.0x549e8a.14
cmp dword [ebp + 0x1c], 2
jne case.0x549e8a.14
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne case.0x549e8a.14
mov dword [ebp + 0x64], 1
cmp ecx, 1
jg 0x54cc4a
jmp case.0x549e8a.14
cmp dword [ebp + 0x48], ebx
jne case.default.0x54b28a
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x5412d6.10
cmp ecx, dword [ebp + 0x84]
jbe case.0x5412d6.10
cmp eax, 1
mov dword [ebp + 0x64], 1
jle case.0x5412d6.10
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54cf02
mov ebx, dword [esp + 0x28]
mov edi, 0xfffffff4
jmp 0x548f34
cmp dword [ebp + 0x48], ebx
jne case.default.0x54b28a
cmp dword [ebp + 0x58], ebx
je case.0x53f3df.23
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5412e2
jmp case.default.0x54b28a
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x78]
cmp ecx, edx
jae 0x54039d
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x54042e
push dword [esp + 0x28]
lea eax, [ebp + 0x1c]
push eax
push edx
push edi
push ecx
call fcn.0054f1a0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
je 0x54045c
jmp 0x54044b
mov edi, dword [ebp + 0x1c]
sub edx, edi
cmp ecx, edx
ja 0x54045c
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x54045c
cmp edi, 1
je 0x54044b
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
jne 0x54045c
mov eax, dword [ebp + 0x78]
sub eax, dword [ebp + 0x1c]
mov ecx, dword [esi + 8]
cmp ecx, eax
je 0x54039d
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.default.0x54b28a
mov edx, dword [esi + 8]
lea eax, [edx + 1]
cmp eax, dword [ebp + 0x78]
jb case.default.0x54b28a
cmp dword [ebp + 0x18], ebx
jne case.default.0x54b28a
cmp dword [ebp + 0x1c], 2
jne case.default.0x54b28a
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne case.default.0x54b28a
mov dword [ebp + 0x64], 1
cmp ecx, 1
jle case.default.0x54b28a
jmp 0x5403c7
cmp dword [esp + 0x28], ebx
je 0x540764
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x74]
jne 0x5404c6
mov dword [esi + 0x5c], ebx
jmp 0x5405f1
mov al, byte [edx - 1]
dec edx
and al, 0xc0
mov ecx, edx
cmp al, 0x80
jne 0x5404de
mov al, byte [edx - 1]
dec edx
and al, 0xc0
mov ecx, edx
cmp al, 0x80
je 0x5404d2
cmp ecx, dword [ebp + 0x84]
jae 0x5404ec
mov dword [ebp + 0x84], edx
movzx ebx, byte [edx]
mov eax, ebx
mov ecx, ebx
mov edi, ebx
cmp ebx, 0xc0
jb 0x5405a3
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test bl, 0x20
jne 0x54051a
and eax, 0x1f
mov ebx, ecx
shl eax, 6
jmp 0x54059b
movzx eax, byte [edx + 2]
test bl, 0x10
jne 0x54052d
and ebx, 0xf
shl ebx, 6
or ebx, ecx
jmp 0x540595
and eax, 0x3f
test bl, 8
jne 0x540548
and ebx, 7
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
jmp 0x540595
test bl, 4
jne 0x54056c
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 0x540595
and ebx, 1
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 5]
shl ebx, 6
and eax, 0x3f
or ebx, eax
mov eax, ebx
mov ecx, ebx
mov edi, ebx
cmp dword [ebp + 0x54], 0
mov edx, ebx
je 0x540627
cmp edx, 0x5f
jne 0x5405b9
mov dword [esi + 0x5c], 1
jmp 0x5405f1
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x6a3918]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
mov eax, dword [eax*4 + 0x6a1c68]
cmp eax, 1
je 0x540638
cmp eax, 3
je 0x540638
xor eax, eax
mov dword [esi + 0x5c], eax
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x54063f
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x54061b
cmp edi, dword [ebp + 0x84]
jbe 0x54061b
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x5403c7
mov dword [esi + 0x54], 0
jmp 0x54087f
cmp edi, 0x100
jae 0x5405ec
mov eax, dword [ebp + 0x40]
test byte [ebx + eax], 0x10
je 0x5405ec
mov eax, 1
jmp 0x5405ee
movzx edx, byte [edi]
mov eax, edx
mov ecx, edx
mov ebx, edx
cmp edx, 0xc0
jb 0x5406f6
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x54066d
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x5406ee
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x540680
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x5406e8
and eax, 0x3f
test dl, 8
jne 0x54069b
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x5406e8
test dl, 4
jne 0x5406bf
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x5406e8
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
mov ecx, edx
mov ebx, edx
cmp dword [ebp + 0x54], 0
mov edi, edx
je 0x540749
cmp edi, 0x5f
jne 0x54070f
mov dword [esi + 0x54], 1
jmp 0x54087f
shr eax, 7
movzx eax, byte [eax + 0x6a3918]
shl eax, 7
and ecx, 0x7f
add eax, ecx
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
mov eax, dword [eax*4 + 0x6a1c68]
cmp eax, 1
je 0x54075a
cmp eax, 3
je 0x54075a
xor eax, eax
jmp 0x54087c
cmp ebx, 0x100
jae 0x540742
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
je 0x540742
mov eax, 1
jmp 0x54087c
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x74]
jne 0x540774
mov dword [esi + 0x5c], ebx
jmp 0x5407fe
cmp eax, dword [ebp + 0x84]
ja 0x540783
dec eax
mov dword [ebp + 0x84], eax
mov eax, dword [esi + 8]
movzx ecx, byte [eax - 1]
cmp dword [ebp + 0x54], ebx
je 0x5407ee
cmp ecx, 0x5f
jne 0x54079d
mov dword [esi + 0x5c], 1
jmp 0x5407fe
mov eax, ecx
test eax, eax
jns 0x5407a6
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x6a3918]
shl eax, 7
and ecx, 0x8000007f
jns 0x5407c0
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
mov eax, dword [eax*4 + 0x6a1c68]
cmp eax, 1
je 0x5407e7
cmp eax, 3
je 0x5407e7
xor eax, eax
jmp 0x5407fb
mov eax, 1
jmp 0x5407fb
mov eax, dword [ebp + 0x40]
movzx eax, byte [ecx + eax]
shr eax, 4
and eax, 1
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x54082d
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je 0x540828
cmp eax, dword [ebp + 0x84]
jbe 0x540828
mov dword [ebp + 0x64], 1
cmp ecx, 1
jg 0x5403c7
mov dword [esi + 0x54], ebx
jmp 0x54087f
movzx ecx, byte [eax]
cmp dword [ebp + 0x54], ebx
je 0x54086f
cmp ecx, 0x5f
jne 0x540843
mov dword [esi + 0x54], 1
jmp 0x54087f
mov eax, ecx
test eax, eax
jns 0x54084c
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x6a3918]
shl eax, 7
and ecx, 0x8000007f
jns 0x54071f
dec ecx
or ecx, 0xffffff80
inc ecx
jmp 0x54071f
mov eax, dword [ebp + 0x40]
movzx eax, byte [eax + ecx]
shr eax, 4
and eax, 1
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0xc]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x54]
cmp cl, 5
jne 0x54089a
xor ecx, ecx
cmp eax, dword [esi + 0x5c]
sete cl
jmp 0x5408a2
xor ecx, ecx
cmp eax, dword [esi + 0x5c]
setne cl
test ecx, ecx
je 0x53f3b3
jmp case.default.0x54b28a
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x5408e9
mov edx, dword [esi + 8]
mov edi, dword [ebp + 0x78]
cmp edx, edi
jae 0x5408de
push dword [esp + 0x28]
lea eax, [ebp + 0x1c]
push eax
push edi
push ecx
push edx
call fcn.0054f1a0
add esp, 0x14
test eax, eax
je 0x5408de
mov eax, 1
jmp 0x5408e0
xor eax, eax
test eax, eax
je 0x540914
jmp case.default.0x54b28a
mov eax, dword [ebp + 0x78]
mov edx, dword [ebp + 0x1c]
sub eax, edx
mov ecx, dword [esi + 8]
cmp ecx, eax
ja 0x540914
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x540914
cmp edx, 1
je case.default.0x54b28a
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je case.default.0x54b28a
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x53f3df.13
mov eax, dword [ebp + 0x78]
mov edx, dword [esi + 8]
dec eax
cmp edx, eax
jne case.0x53f3df.13
cmp dword [ebp + 0x18], ebx
jne case.0x53f3df.13
cmp dword [ebp + 0x1c], 2
jne case.0x53f3df.13
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne case.0x53f3df.13
mov dword [ebp + 0x64], 1
cmp ecx, 1
jg 0x5403c7
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jb 0x540982
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp ecx, dword [ebp + 0x84]
jbe case.default.0x54b28a
mov dword [ebp + 0x64], 1
cmp eax, 1
jle case.default.0x54b28a
jmp 0x5403c7
inc ecx
mov dword [esi + 8], ecx
cmp dword [esp + 0x28], ebx
je case.0x5412d6.10
cmp ecx, dword [ebp + 0x78]
jae case.0x5412d6.10
nop dword [eax]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne case.0x5412d6.10
inc ecx
mov dword [esi + 8], ecx
cmp ecx, dword [ebp + 0x78]
jb 0x5409a0
inc dword [esi + 0xc]
jmp 0x53f3b3
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x5409e4
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.default.0x54b28a
cmp eax, dword [ebp + 0x84]
jbe case.default.0x54b28a
jmp 0x540497
inc eax
mov dword [esi + 8], eax
inc dword [esi + 0xc]
jmp 0x53f3b3
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x540a11
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp edi, dword [ebp + 0x84]
jmp 0x540967
movzx edx, byte [edi]
inc edi
mov ebx, dword [esp + 0x28]
mov eax, edx
mov dword [esi + 8], edi
test ebx, ebx
je 0x540afb
cmp edx, 0xc0
jb 0x540afb
movzx ecx, byte [edi]
and ecx, 0x3f
test dl, 0x20
jne 0x540a4f
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x540af6
movzx eax, byte [edi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x540a70
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x540af6
test dl, 8
jne 0x540a93
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 0x540af6
test dl, 4
jne 0x540ac2
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 0x540af6
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov eax, edx
cmp eax, 0x100
jae case.0x5412d6.10
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
je case.0x5412d6.10
jmp case.0x549e8a.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x540b39
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp edx, dword [ebp + 0x84]
jmp 0x540967
movzx ecx, byte [edx]
inc edx
mov ebx, dword [esp + 0x28]
mov eax, ecx
mov dword [esi + 8], edx
test ebx, ebx
je 0x540c36
cmp ecx, 0xc0
jb 0x540c36
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x540b75
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x540c31
test cl, 0x10
jne 0x540b96
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 0x540c31
test cl, 8
jne 0x540bc0
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 0x540c31
test cl, 4
jne 0x540bf6
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 0x540c31
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ecx
cmp eax, 0xff
ja case.0x549e8a.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
jne case.0x5412d6.10
jmp case.0x549e8a.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x540c74
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp edi, dword [ebp + 0x84]
jmp 0x540967
movzx edx, byte [edi]
inc edi
mov ebx, dword [esp + 0x28]
mov eax, edx
mov dword [esi + 8], edi
test ebx, ebx
je 0x540d7c
cmp edx, 0xc0
jb 0x540d7c
test dl, 0x20
jne 0x540cb0
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x540d77
test dl, 0x10
jne 0x540cd7
movzx eax, byte [edi]
and edx, 0xf
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x540d77
test dl, 8
jne 0x540d07
movzx eax, byte [edi]
and edx, 7
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x540d77
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 4
jne 0x540d43
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 0x540d77
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov eax, edx
cmp eax, 0x100
jae case.0x5412d6.10
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
je case.0x5412d6.10
jmp case.0x549e8a.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x540dba
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp edx, dword [ebp + 0x84]
jmp 0x540967
movzx ecx, byte [edx]
inc edx
mov ebx, dword [esp + 0x28]
mov eax, ecx
mov dword [esi + 8], edx
test ebx, ebx
je 0x540eb7
cmp ecx, 0xc0
jb 0x540eb7
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x540df6
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x540eb2
test cl, 0x10
jne 0x540e17
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 0x540eb2
test cl, 8
jne 0x540e41
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 0x540eb2
test cl, 4
jne 0x540e77
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 0x540eb2
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ecx
cmp eax, 0xff
ja case.0x549e8a.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
jne case.0x5412d6.10
jmp case.0x549e8a.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x540ef5
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp edi, dword [ebp + 0x84]
jmp 0x540967
movzx edx, byte [edi]
inc edi
mov ebx, dword [esp + 0x28]
mov eax, edx
mov dword [esi + 8], edi
test ebx, ebx
je 0x540ffd
cmp edx, 0xc0
jb 0x540ffd
test dl, 0x20
jne 0x540f31
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x540ff8
test dl, 0x10
jne 0x540f58
movzx eax, byte [edi]
and edx, 0xf
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x540ff8
test dl, 8
jne 0x540f88
movzx eax, byte [edi]
and edx, 7
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x540ff8
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 4
jne 0x540fc4
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 0x540ff8
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov eax, edx
cmp eax, 0x100
jae case.0x5412d6.10
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
je case.0x5412d6.10
jmp case.0x549e8a.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x54103b
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp edx, dword [ebp + 0x84]
jmp 0x540967
movzx ecx, byte [edx]
inc edx
mov ebx, dword [esp + 0x28]
mov eax, ecx
mov dword [esi + 8], edx
test ebx, ebx
je 0x541138
cmp ecx, 0xc0
jb 0x541138
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x541077
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x541133
test cl, 0x10
jne 0x541098
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 0x541133
test cl, 8
jne 0x5410c2
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 0x541133
test cl, 4
jne 0x5410f8
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 0x541133
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ecx
cmp eax, 0xff
ja case.0x549e8a.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
jne case.0x5412d6.10
jmp case.0x549e8a.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x541176
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp edi, dword [ebp + 0x84]
jmp 0x540967
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x28], 0
mov eax, edi
mov dword [esi + 8], edi
mov ebx, edx
mov ecx, edx
mov dword [esp + 0x20], edi
je 0x5412b6
mov dword [esp + 0x20], edi
cmp edx, 0xc0
jb 0x5412b6
test dl, 0x20
jne 0x5411c6
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
mov dword [esi + 8], eax
mov ebx, edx
mov ecx, edx
mov edi, eax
jmp 0x5412ba
test dl, 0x10
jne 0x5411f6
movzx eax, byte [edi]
and edx, 0xf
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 2]
mov dword [esi + 8], eax
mov ebx, edx
mov ecx, edx
mov edi, eax
jmp 0x5412ba
test dl, 8
jne 0x541232
movzx eax, byte [edi]
and edx, 7
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
mov dword [esi + 8], eax
mov ebx, edx
mov ecx, edx
mov edi, eax
jmp 0x5412ba
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 4
jne 0x541277
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
mov dword [esi + 8], eax
mov ebx, edx
mov ecx, edx
mov edi, eax
jmp 0x5412ba
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov ebx, edx
mov ecx, edx
mov edi, eax
jmp 0x5412ba
mov edi, dword [esp + 0x20]
cmp ebx, 0x85
ja 0x541319
cmp ecx, 0x85
je case.0x5412d6.11
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x54b28a
jmp dword [edx*4 + 0x54d15c]
cmp edi, dword [ebp + 0x78]
jb 0x541304
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x5412d6.10
cmp eax, dword [ebp + 0x84]
jbe case.0x5412d6.10
cmp ecx, 1
jmp 0x5403ba
cmp byte [eax], 0xa
jne case.0x5412d6.10
inc eax
mov dword [esi + 8], eax
inc dword [esi + 0xc]
jmp 0x53f3b3
sub edx, 0x2028
je case.0x5412d6.11
sub edx, 1
jne case.default.0x54b28a
cmp dword [ebp + 0x68], 0
je case.0x5412d6.10
jmp case.default.0x54b28a
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x54135a
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp edi, dword [ebp + 0x84]
jmp 0x540967
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x28], 0
mov ebx, edx
mov dword [esi + 8], edi
mov eax, edx
mov dword [esp + 0x20], edx
mov ecx, edx
je 0x541475
mov dword [esp + 0x20], edx
cmp edx, 0xc0
jb 0x541475
test dl, 0x20
jne 0x5413a1
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x541468
test dl, 0x10
jne 0x5413c8
movzx eax, byte [edi]
and edx, 0xf
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x541468
test dl, 8
jne 0x5413f8
movzx eax, byte [edi]
and edx, 7
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x541468
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 4
jne 0x541434
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 0x541468
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov ebx, edx
mov dword [esp + 0x20], edx
mov eax, edx
mov ecx, edx
cmp dword [esp + 0x20], 0x2000
mov edi, edx
ja 0x5414db
cmp ebx, 0x2000
je case.default.0x54b28a
cmp edx, 0xa0
ja 0x5414bb
cmp edi, 0xa0
je case.default.0x54b28a
cmp edx, 9
je case.default.0x54b28a
cmp edx, 0x20
je case.default.0x54b28a
inc dword [esi + 0xc]
jmp 0x53f3b3
cmp edx, 0x1680
je case.default.0x54b28a
cmp edx, 0x180e
je case.default.0x54b28a
inc dword [esi + 0xc]
jmp 0x53f3b3
cmp eax, 0x3000
ja case.0x5412d6.10
cmp ecx, 0x3000
je case.default.0x54b28a
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x5412d6.10
movzx eax, byte [edx + 0x54d174]
jmp dword [eax*4 + 0x54d16c]
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x541530
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp edx, dword [ebp + 0x84]
jmp 0x540967
movzx ecx, byte [edx]
inc edx
cmp dword [esp + 0x28], 0
mov ebx, ecx
mov dword [esi + 8], edx
mov eax, ecx
mov dword [esp + 0x20], ecx
mov edi, ecx
je 0x541640
mov dword [esp + 0x20], ecx
cmp ecx, 0xc0
jb 0x541640
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x541577
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x541633
test cl, 0x10
jne 0x541598
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 0x541633
test cl, 8
jne 0x5415c2
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 0x541633
test cl, 4
jne 0x5415f8
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 0x541633
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov ebx, ecx
mov dword [esp + 0x20], ecx
mov eax, ecx
mov edi, ecx
cmp dword [esp + 0x20], 0x2000
mov edx, ecx
ja 0x5416a0
cmp ebx, 0x2000
je case.0x5412d6.10
cmp ecx, 0xa0
ja 0x541683
cmp edx, 0xa0
je case.0x5412d6.10
cmp ecx, 9
je case.0x5412d6.10
cmp ecx, 0x20
je case.0x5412d6.10
jmp case.default.0x54b28a
cmp ecx, 0x1680
je case.0x5412d6.10
cmp ecx, 0x180e
je case.0x5412d6.10
jmp case.default.0x54b28a
cmp eax, 0x3000
ja case.default.0x54b28a
cmp edi, 0x3000
je case.0x5412d6.10
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x54b28a
movzx eax, byte [ecx + 0x54d1dc]
jmp dword [eax*4 + 0x54d1d4]
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x5416f5
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp edi, dword [ebp + 0x84]
jmp 0x540967
movzx edx, byte [edi]
inc edi
mov ebx, dword [esp + 0x28]
mov ecx, edx
mov dword [esi + 8], edi
mov eax, edx
test ebx, ebx
je 0x54180d
cmp edx, 0xc0
jb 0x54180d
test dl, 0x20
jne 0x541735
movzx ecx, byte [edi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
lea eax, [edi + 1]
jmp 0x541806
test dl, 0x10
jne 0x54175c
movzx ecx, byte [edi]
and edx, 0xf
movzx eax, byte [edi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x541806
test dl, 8
jne 0x54178f
movzx ecx, byte [edi]
and edx, 7
movzx eax, byte [edi + 1]
and ecx, 0x3f
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
jmp 0x541806
movzx eax, byte [edi]
and eax, 0x3f
test dl, 4
jne 0x5417cb
and edx, 3
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
jmp 0x541806
and edx, 1
shl edx, 6
or edx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov ecx, edx
mov eax, edx
cmp ecx, 0x85
ja 0x541833
cmp eax, 0x85
je case.0x549e8a.14
add edx, 0xfffffff6
cmp edx, 3
ja case.0x5412d6.10
jmp dword [edx*4 + 0x54d23c]
sub edx, 0x2028
je case.0x549e8a.14
sub edx, 1
jne case.0x5412d6.10
jmp case.0x549e8a.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x54186e
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp edi, dword [ebp + 0x84]
jmp 0x540967
movzx edx, byte [edi]
inc edi
mov ebx, dword [esp + 0x28]
mov ecx, edx
mov dword [esi + 8], edi
mov eax, edx
test ebx, ebx
je 0x541960
cmp edx, 0xc0
jb 0x541960
test dl, 0x20
jne 0x5418ac
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x541959
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x5418d3
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x541959
test dl, 8
jne 0x5418f6
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 0x541959
test dl, 4
jne 0x541925
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 0x541959
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov ecx, edx
mov eax, edx
cmp ecx, 0x85
ja 0x541986
cmp eax, 0x85
je case.0x5412d6.10
add edx, 0xfffffff6
cmp edx, 3
ja case.0x549e8a.14
jmp dword [edx*4 + 0x54d24c]
sub edx, 0x2028
je case.0x5412d6.10
sub edx, 1
je case.0x5412d6.10
jmp case.0x549e8a.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x5419c1
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp edi, dword [ebp + 0x84]
jmp 0x540967
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x28], 0
mov ecx, edx
mov dword [esi + 8], edi
mov ebx, edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], edx
je 0x541ad4
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], edx
cmp edx, 0xc0
jb 0x541ad4
movzx ecx, byte [edi]
and ecx, 0x3f
test dl, 0x20
jne 0x541a1a
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x541ac1
movzx eax, byte [edi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x541a3b
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x541ac1
test dl, 8
jne 0x541a5e
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 0x541ac1
test dl, 4
jne 0x541a8d
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 0x541ac1
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov ecx, edx
mov dword [esi + 8], eax
mov ebx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], ecx
mov edi, dword [esi + 0xc]
and ebx, 0x7f
shr ecx, 7
movzx eax, byte [ecx + 0x6a3918]
movzx ecx, byte [edi + 1]
shl eax, 7
add eax, ebx
movzx ebx, word [eax*2 + 0x6a5b18]
cmp ecx, 0xa
ja case.0x54b208.15
jmp dword [ecx*4 + 0x54d25c]
cmp dword [esi + 0x9c], 0xf
je case.default.0x54b28a
lea eax, [edi + 3]
mov dword [esi + 0xc], eax
jmp 0x53f3b3
mov al, byte [ebx*8 + 0x6a2299]
cmp al, 9
je 0x541b34
cmp al, 5
je 0x541b34
cmp al, 8
je 0x541b34
xor ecx, ecx
jmp 0x541b39
mov ecx, 1
xor eax, eax
cmp dword [esi + 0x9c], 0xf
sete al
cmp ecx, eax
jne 0x541b12
jmp case.default.0x54b28a
movzx ecx, byte [ebx*8 + 0x6a2299]
xor edx, edx
movzx eax, byte [edi + 2]
cmp eax, dword [ecx*4 + 0x6a1c68]
setne dl
xor eax, eax
cmp dword [esi + 0x9c], 0x10
sete al
cmp edx, eax
jne 0x541b12
jmp case.default.0x54b28a
mov al, byte [edi + 2]
xor ecx, ecx
cmp al, byte [ebx*8 + 0x6a2299]
setne cl
xor eax, eax
cmp dword [esi + 0x9c], 0x10
sete al
cmp ecx, eax
jne 0x541b12
jmp case.default.0x54b28a
mov al, byte [edi + 2]
xor ecx, ecx
cmp al, byte [ebx*8 + 0x6a2298]
jmp 0x541b87
movzx eax, byte [ebx*8 + 0x6a2299]
mov eax, dword [eax*4 + 0x6a1c68]
cmp eax, 1
je 0x541b34
cmp eax, 3
je 0x541b34
xor ecx, ecx
jmp 0x541b39
cmp edx, 0x20
ja 0x541bf3
je case.0x541afe.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x541c6f.8203
jmp dword [edx*4 + 0x54d288]
cmp edx, 0x2000
ja 0x541c4f
je case.0x541afe.0
cmp edx, 0x1680
ja 0x541c47
je case.0x541afe.0
sub edx, 0x85
je case.0x541afe.0
sub edx, 0x1b
je case.0x541afe.0
movzx eax, byte [ebx*8 + 0x6a2299]
xor ecx, ecx
cmp dword [eax*4 + 0x6a1c68], 6
sete cl
xor eax, eax
cmp dword [esi + 0x9c], 0xf
jmp 0x541b93
cmp edx, 0x180e
jmp 0x541c1e
cmp edx, 0x3000
ja case.0x541c6f.8203
je case.0x541afe.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x541c6f.8203
movzx eax, byte [edx + 0x54d2a4]
jmp dword [eax*4 + 0x54d29c]
movzx eax, byte [ebx*8 + 0x6a2299]
mov eax, dword [eax*4 + 0x6a1c68]
cmp eax, 1
je 0x541b34
cmp eax, 3
je 0x541b34
cmp edx, 0x5f
je 0x541b34
xor ecx, ecx
jmp 0x541b39
movzx eax, byte [edi + 2]
mov ecx, dword [esp + 0x20]
lea eax, [eax*4 + 0x6a2158]
cmp ecx, dword [eax]
jb 0x541ccd
mov ecx, dword [eax]
nop dword [eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x541cdf
mov ecx, dword [eax]
cmp edx, ecx
jae 0x541cc0
cmp dword [esi + 0x9c], 0x10
jne 0x541b12
jmp case.default.0x54b28a
cmp dword [esi + 0x9c], 0x10
je 0x541b12
jmp case.default.0x54b28a
cmp dword [esp + 0x24], 0x24
je 0x541b34
cmp dword [esp + 0x1c], 0x40
je 0x541b34
cmp edx, 0x60
je 0x541b34
cmp edx, 0xa0
jb 0x541d24
cmp edx, 0xd7ff
jbe 0x541b34
cmp edx, 0xe000
jae 0x541b34
xor ecx, ecx
jmp 0x541b39
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x541d58
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp edx, dword [ebp + 0x84]
jmp 0x540967
movzx eax, byte [edx]
inc edx
cmp dword [esp + 0x28], 0
mov ecx, eax
mov dword [esi + 8], edx
mov ebx, eax
mov edi, edx
mov dword [esp + 0x10], edx
je 0x541e45
mov dword [esp + 0x10], edx
cmp eax, 0xc0
jb 0x541e45
movzx ecx, byte [edx]
and ecx, 0x3f
test al, 0x20
jne 0x541d9b
and eax, 0x1f
lea edi, [edx + 1]
shl eax, 6
jmp 0x541e3a
test al, 0x10
jne 0x541db3
and eax, 0xf
lea edi, [edx + 2]
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
jmp 0x541e34
test al, 8
jne 0x541dd4
and eax, 7
lea edi, [edx + 3]
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
jmp 0x541e34
test al, 4
jne 0x541e01
and eax, 3
lea edi, [edx + 4]
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x541e34
and eax, 1
lea edi, [edx + 5]
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov dword [esi + 8], edi
mov ebx, ecx
mov dword [esp + 0x10], edi
mov edx, dword [ebp + 0x78]
and ebx, 0x7f
shr ecx, 7
movzx eax, byte [ecx + 0x6a3918]
shl eax, 7
add eax, ebx
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a229a]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x10], edx
jae 0x541fb5
mov dword [esp + 0x10], edx
nop dword [eax]
cmp dword [esp + 0x28], 0
mov ebx, 1
movzx edx, byte [edi]
mov ecx, edx
je 0x541f5c
cmp edx, 0xc0
jb 0x541f5c
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x541ec1
mov eax, edx
mov ebx, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x541f58
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x541edc
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x541f52
and eax, 0x3f
test dl, 8
jne 0x541efc
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x541f52
test dl, 4
jne 0x541f25
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 0x541f52
and edx, ebx
mov ebx, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov ebp, dword [esp + 0x1c]
and ecx, 0x7f
shr edx, 7
movzx eax, byte [edx + 0x6a3918]
mov edx, dword [esp + 0x10]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6a5b18]
movzx ecx, byte [eax*8 + 0x6a229a]
mov eax, 1
shl eax, cl
test dword [ebp*4 + 0x6a1ce0], eax
mov ebp, dword [esp + 0xb0]
je 0x541fb5
add edi, ebx
mov dword [esp + 0x1c], ecx
mov dword [esi + 8], edi
mov edx, dword [ebp + 0x78]
mov dword [esp + 0x10], edx
cmp edi, edx
jb 0x541e80
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x5412d6.10
mov eax, dword [esi + 8]
cmp eax, edx
jb case.0x5412d6.10
jmp 0x5412f0
mov edx, dword [esi + 0xc]
xor eax, eax
cmp cl, 0x74
sete al
movzx ebx, byte [edx + 3]
movzx edi, byte [edx + 1]
mov dword [esp + 0x30], eax
movzx eax, byte [edx + 4]
shl ebx, 8
or ebx, eax
shl edi, 8
movzx eax, byte [edx + 2]
or edi, eax
lea eax, [edx + 5]
imul edi, dword [ebp + 0x24]
add edi, dword [ebp + 0x30]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x50]
neg eax
sbb eax, eax
neg eax
dec eax
mov dword [esi + 0x88], eax
mov dword [esi + 0x98], 0
test ebx, ebx
je 0x5420c8
mov edx, edi
mov dword [esp + 0x10], edi
movzx ecx, byte [edi]
dec ebx
movzx eax, byte [edi + 1]
shl ecx, 8
or ecx, eax
lea eax, [ecx + ecx]
mov dword [esi + 0x98], eax
cmp eax, dword [esi + 0x14]
jge 0x54205a
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x10]
mov edi, dword [eax + ecx*8]
test edi, edi
jns 0x54206b
mov edi, dword [ebp + 0x24]
add edi, edx
mov dword [esp + 0x10], edi
mov edx, edi
test ebx, ebx
jg 0x542031
jmp 0x5420c8
mov eax, dword [eax + ecx*8 + 4]
sub eax, edi
jmp 0x5420c2
xor eax, eax
cmp cl, 0x72
sete al
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add ecx, ecx
mov dword [esi + 0x98], ecx
add dword [esi + 0xc], 3
mov eax, dword [esi + 0x98]
cmp eax, dword [esi + 0x14]
jge 0x5420b8
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
test edx, edx
js 0x5420b8
mov eax, dword [ecx + eax*4 + 4]
sub eax, edx
jmp 0x5420c2
mov eax, dword [ebp + 0x50]
neg eax
sbb eax, eax
neg eax
dec eax
mov dword [esi + 0x88], eax
mov edx, dword [esi + 0xc]
mov bl, byte [edx]
movzx ecx, bl
add ecx, 0xffffff9e
cmp ecx, 7
ja case.default.0x5420e3
movzx eax, byte [ecx + 0x54d30c]
jmp dword [eax*4 + 0x54d304]
lea eax, [edx + 1]
mov ebx, ecx
mov dword [esi + 0xc], eax
and ebx, 1
movsx eax, byte [ecx + 0x6a11a8]
mov dword [esi + 0x90], eax
movsx eax, byte [ecx + 0x6a11b4]
mov dword [esp + 0x10], ebx
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x542168
mov dword [esi + 0x8c], closesocket
jmp 0x542168
movzx ecx, byte [edx + 1]
xor eax, eax
cmp bl, 0x69
sete al
shl ecx, 8
mov dword [esp + 0x10], 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 0x542164
mov dword [esi + 0x8c], closesocket
add dword [esi + 0xc], 5
mov eax, dword [esi + 0x88]
test eax, eax
je 0x53f3b3
jns 0x542185
cmp dword [esi + 0x90], 0
je 0x53f3b3
mov eax, dword [esi + 0x90]
mov ecx, eax
cmp eax, 1
jl 0x5421ca
mov ebx, 1
push dword [esp + 0x30]
mov edi, dword [esi + 8]
push ebp
push dword [esi + 0x88]
push edi
push dword [esi + 0x98]
call fcn.0054de80
add esp, 0x14
test eax, eax
js 0x5421e8
add eax, edi
inc ebx
mov dword [esi + 8], eax
mov eax, dword [esi + 0x90]
cmp ebx, eax
jle 0x542197
mov ecx, eax
cmp ecx, dword [esi + 0x8c]
je 0x53f3b3
cmp dword [esp + 0x10], 0
je 0x542213
mov dword [esi + 0x84], eax
jmp 0x549883
mov ecx, edi
cmp eax, 0xfffffffe
jne 0x5421f7
mov edi, dword [ebp + 0x78]
mov ecx, edi
mov dword [esi + 8], edi
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp edi, dword [ebp + 0x78]
jb case.default.0x54b28a
jmp 0x540961
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov edi, dword [esi + 0x90]
mov eax, edi
cmp eax, dword [esi + 0x8c]
jge 0x5498cf
push dword [esp + 0x30]
mov ebx, dword [esi + 8]
push ebp
push dword [esi + 0x88]
push ebx
push dword [esi + 0x98]
call fcn.0054de80
add esp, 0x14
test eax, eax
js 0x542256
add eax, ebx
inc edi
mov dword [esi + 8], eax
jmp 0x54221f
cmp eax, 0xfffffffe
jne 0x5498cf
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je 0x5498cf
mov eax, dword [ebp + 0x78]
cmp eax, dword [ebp + 0x84]
jbe 0x5498cf
mov dword [ebp + 0x64], 1
cmp ecx, 1
jle 0x5498cf
jmp 0x5403c7
push dword [esp + 0x30]
push ebp
push dword [esi + 0x88]
push dword [esi + 8]
push dword [esi + 0x98]
call fcn.0054de80
mov ecx, eax
add esp, 0x14
mov dword [esi + 0x88], ecx
test ecx, ecx
jns 0x5422ef
cmp ecx, 0xfffffffe
jne 0x5422c4
mov eax, dword [ebp + 0x78]
mov dword [esi + 8], eax
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.default.0x54b28a
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb case.default.0x54b28a
cmp eax, dword [ebp + 0x84]
jbe case.default.0x54b28a
jmp 0x540497
add dword [esi + 8], ecx
jmp 0x53f3b3
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0x28], eax
mov edx, dword [esi + 0xc]
lea eax, [edx + 0x21]
mov dword [esi + 0xc], eax
mov bl, byte [eax]
movzx ecx, bl
add ecx, 0xffffff9e
cmp ecx, 0xb
ja case.default.0x54231f
movzx eax, byte [ecx + 0x54d31c]
jmp dword [eax*4 + 0x54d314]
lea eax, [edx + 0x22]
mov dword [esi + 0xc], eax
cmp ecx, 8
jae 0x54233c
mov eax, ecx
and eax, 1
mov dword [esp + 0x20], eax
jmp 0x542344
mov dword [esp + 0x24], 1
movsx eax, byte [ecx + 0x6a11a8]
mov dword [esi + 0x90], eax
movsx eax, byte [ecx + 0x6a11b4]
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x5423d9
mov dword [esi + 0x8c], closesocket
jmp 0x5423d9
movzx ecx, byte [edx + 0x22]
xor eax, eax
cmp bl, 0x69
sete al
mov dword [esp + 0x20], eax
xor eax, eax
cmp bl, 0x6d
sete al
shl ecx, 8
mov dword [esp + 0x24], eax
movzx eax, byte [edx + 0x23]
or ecx, eax
mov dword [esi + 0x90], ecx
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 3]
movzx eax, byte [eax + 4]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
jne 0x5423bf
mov dword [esi + 0x8c], closesocket
add dword [esi + 0xc], 5
jmp 0x5423d9
mov dword [esi + 0x8c], 1
mov dword [esi + 0x90], 1
mov ecx, dword [esp + 0x28]
mov ebx, 1
mov dword [esp + 0x10], ebx
test ecx, ecx
je 0x542553
cmp dword [esi + 0x90], ebx
jl 0x54259b
nop word [eax + eax]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5409c5
movzx ebx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 8], edx
mov ecx, ebx
mov eax, ebx
cmp ebx, 0xc0
jb 0x542513
test bl, 0x20
jne 0x542447
movzx eax, byte [edx]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 1]
mov dword [esi + 8], eax
mov ecx, ebx
mov eax, ebx
jmp 0x542513
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x542475
and ebx, 0xf
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
lea eax, [edx + 2]
mov dword [esi + 8], eax
mov ecx, ebx
mov eax, ebx
jmp 0x542513
test bl, 8
jne 0x5424a2
and ebx, 7
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 3]
mov dword [esi + 8], eax
mov ecx, ebx
mov eax, ebx
jmp 0x542513
test bl, 4
jne 0x5424d8
and ebx, 3
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [edx + 4]
mov dword [esi + 8], eax
mov ecx, ebx
mov eax, ebx
jmp 0x542513
and ebx, 1
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov ebx, ecx
mov eax, ecx
cmp eax, 0xff
jbe 0x542523
cmp dword [esi + 0x9c], 0x6e
jmp 0x542536
mov eax, dword [esi + 0x28]
and ecx, 7
shr ebx, 3
mov edx, 1
shl edx, cl
test byte [ebx + eax], dl
je case.default.0x54b28a
mov ebx, dword [esp + 0x10]
inc ebx
mov dword [esp + 0x10], ebx
cmp ebx, dword [esi + 0x90]
jle 0x542400
jmp 0x542597
cmp dword [esi + 0x90], ebx
jl 0x54259b
nop dword [eax + eax]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5409c5
movzx edi, byte [eax]
mov edx, 1
inc eax
mov ecx, edi
mov dword [esi + 8], eax
and ecx, 7
mov eax, dword [esi + 0x28]
shr edi, 3
shl edx, cl
test byte [edi + eax], dl
je case.default.0x54b28a
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x542560
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x8c]
je 0x53f3b3
cmp dword [esp + 0x20], 0
je 0x5425c7
mov dword [esi + 0x84], eax
test ecx, ecx
jne 0x54a997
jmp 0x54997c
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
test ecx, ecx
je 0x5427ac
cmp eax, dword [esi + 0x8c]
jge 0x54279c
nop dword [eax + eax]
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x54277a
movzx ebx, byte [edi]
mov dword [esp + 0x1c], 1
mov ecx, ebx
mov edx, ebx
cmp ebx, 0xc0
jb 0x542725
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test bl, 0x20
jne 0x542645
mov eax, ebx
mov dword [esp + 0x1c], 2
and eax, 0x1f
mov ebx, ecx
shl eax, 6
or ebx, eax
mov eax, 2
mov ecx, ebx
mov edx, ebx
jmp 0x54272a
movzx eax, byte [edi + 2]
and eax, 0x3f
test bl, 0x10
jne 0x542674
and ebx, 0xf
mov dword [esp + 0x1c], 3
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
mov eax, 3
mov ecx, ebx
mov edx, ebx
jmp 0x54272a
test bl, 8
jne 0x5426a8
and ebx, 7
mov dword [esp + 0x1c], 4
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
mov eax, 4
mov ecx, ebx
mov edx, ebx
jmp 0x54272a
test bl, 4
jne 0x5426e5
and ebx, 3
mov dword [esp + 0x1c], 5
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
mov eax, 5
mov ecx, ebx
mov edx, ebx
jmp 0x54272a
and ebx, 1
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 5]
and eax, 0x3f
shl ebx, 6
or ebx, eax
mov eax, 6
mov ecx, ebx
mov dword [esp + 0x1c], eax
mov edx, ebx
jmp 0x54272a
mov eax, 1
cmp edx, 0xff
jbe 0x54273d
cmp dword [esi + 0x9c], 0x6e
je 0x54279c
jmp 0x54275e
mov eax, dword [esp + 0x1c]
and ecx, 7
mov dword [esp + 0x1c], eax
mov edx, 1
mov eax, dword [esi + 0x28]
shr ebx, 3
shl edx, cl
test byte [ebx + eax], dl
je 0x54279c
mov eax, dword [esp + 0x1c]
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x5425f0
jmp 0x54279c
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x54279c
cmp edi, dword [ebp + 0x84]
jbe 0x54279c
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x5403c7
cmp dword [esp + 0x24], 0
jne 0x53f3b3
jmp 0x54aa01
cmp eax, dword [esi + 0x8c]
jge 0x542811
mov ebx, dword [esi + 8]
cmp ebx, dword [ebp + 0x78]
jae 0x5427ef
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 0x542811
lea eax, [ebx + 1]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x5427b4
jmp 0x542811
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x542811
cmp ebx, dword [ebp + 0x84]
jbe 0x542811
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x5403c7
cmp dword [esp + 0x24], 0
jne 0x53f3b3
jmp 0x5499bf
mov eax, dword [esi + 0xc]
add eax, 3
mov dword [esi + 0x28], eax
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esi + 0xc], edx
mov bl, byte [edx]
movzx ecx, bl
add ecx, 0xffffff9e
cmp ecx, 0xb
ja case.default.0x542857
movzx eax, byte [ecx + 0x54d330]
jmp dword [eax*4 + 0x54d328]
lea eax, [edx + 1]
mov dword [esi + 0xc], eax
cmp ecx, 8
jae 0x542874
mov eax, ecx
and eax, 1
mov dword [esp + 0x20], eax
jmp 0x54287c
mov dword [esp + 0x24], 1
movsx eax, byte [ecx + 0x6a11a8]
mov dword [esi + 0x90], eax
movsx eax, byte [ecx + 0x6a11b4]
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x542911
mov dword [esi + 0x8c], closesocket
jmp 0x542911
movzx ecx, byte [edx + 1]
xor eax, eax
cmp bl, 0x69
sete al
mov dword [esp + 0x20], eax
xor eax, eax
cmp bl, 0x6d
sete al
shl ecx, 8
mov dword [esp + 0x24], eax
movzx eax, byte [edx + 2]
or ecx, eax
mov dword [esi + 0x90], ecx
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 3]
movzx eax, byte [eax + 4]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
jne 0x5428f7
mov dword [esi + 0x8c], closesocket
add dword [esi + 0xc], 5
jmp 0x542911
mov dword [esi + 0x8c], 1
mov dword [esi + 0x90], 1
mov eax, dword [esi + 0x90]
mov ebx, 1
mov ecx, eax
cmp eax, ebx
jl 0x542a50
nop word [eax + eax]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5409c5
cmp dword [esp + 0x28], 0
lea edi, [eax + 1]
movzx edx, byte [eax]
mov dword [esi + 8], edi
je 0x542a27
cmp edx, 0xc0
jb 0x542a27
test dl, 0x20
jne 0x542977
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x542a24
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x54299e
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x542a24
test dl, 8
jne 0x5429c1
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 0x542a24
test dl, 4
jne 0x5429f0
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 0x542a24
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
push dword [esp + 0x28]
push dword [esi + 0x28]
push edx
call fcn.0054f810
add esp, 0xc
test eax, eax
je case.default.0x54b28a
mov eax, dword [esi + 0x90]
inc ebx
cmp ebx, eax
jle 0x542930
mov ecx, eax
cmp ecx, dword [esi + 0x8c]
je 0x53f3b3
cmp dword [esp + 0x20], 0
je 0x542a6e
mov dword [esi + 0x84], eax
jmp 0x54a772
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x542bc1
nop word [eax + eax]
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x542b9f
cmp dword [esp + 0x28], 0
mov ebx, 1
movzx edx, byte [edi]
je 0x542b71
cmp edx, 0xc0
jb 0x542b71
test dl, 0x20
jne 0x542ad1
movzx eax, byte [edi + 1]
and edx, 0x1f
mov ebx, 2
jmp 0x542b69
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x542af3
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x542b69
and eax, 0x3f
test dl, 8
jne 0x542b13
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x542b69
test dl, 4
jne 0x542b3c
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 0x542b69
and edx, ebx
mov ebx, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
push dword [esp + 0x28]
push dword [esi + 0x28]
push edx
call fcn.0054f810
add esp, 0xc
test eax, eax
je 0x542bc1
mov eax, dword [esp + 0x10]
add dword [esi + 8], ebx
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jl 0x542a90
jmp 0x542bc1
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x542bc1
cmp edi, dword [ebp + 0x84]
jbe 0x542bc1
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x5403c7
cmp dword [esp + 0x24], 0
jne 0x53f3b3
jmp 0x54a7e4
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x542d8d
mov dword [esi + 0x88], 1
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
movzx ebx, byte [eax]
mov dword [esi + 0x80], ebx
cmp ebx, 0xc0
jb 0x542d18
test bl, 0x20
jne 0x542c2b
mov eax, dword [esi + 0xc]
and ebx, 0x1f
shl ebx, 6
movzx eax, byte [eax + 1]
and eax, 0x3f
or eax, ebx
mov dword [esi + 0x80], eax
inc dword [esi + 0x88]
jmp 0x542d18
test bl, 0x10
jne 0x542c60
mov eax, dword [esi + 0xc]
and ebx, 0xf
shl ebx, 6
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
and ecx, 0x3f
or ecx, ebx
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov dword [esi + 0x80], ecx
add dword [esi + 0x88], 2
jmp 0x542d18
mov ecx, dword [esi + 0xc]
movzx edx, byte [ecx + 1]
movzx eax, byte [ecx + 2]
and edx, 0x3f
and eax, 0x3f
test bl, 8
jne 0x542ca1
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 0x542d18
test bl, 4
jne 0x542cda
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 0x542d18
and ebx, 1
shl ebx, 6
or edx, ebx
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [ecx + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [ecx + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov dword [esi + 0x80], edx
add dword [esi + 0x88], 5
mov edi, dword [ebp + 0x78]
mov eax, edi
mov edx, dword [esi + 8]
sub eax, edx
mov ecx, dword [esi + 0x88]
cmp ecx, eax
jle 0x542d4d
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp edx, edi
jb case.default.0x54b28a
cmp edx, dword [ebp + 0x84]
jmp 0x540967
test ecx, ecx
jle 0x542d7f
lea eax, [ecx - 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov bl, byte [eax]
mov dl, byte [ecx]
lea eax, [ecx + 1]
mov dword [esi + 8], eax
inc dword [esi + 0xc]
cmp bl, dl
jne case.default.0x54b28a
mov ecx, dword [esi + 0x88]
test ecx, ecx
jg 0x542d51
lea eax, [ecx - 1]
mov dword [esi + 0x88], eax
jmp 0x53f3b3
mov eax, dword [ebp + 0x78]
mov edi, dword [esi + 8]
sub eax, edi
cmp eax, 1
jge 0x542dc9
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x549e8a.14
cmp edi, dword [ebp + 0x84]
jbe case.0x549e8a.14
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x54cc4a
jmp case.0x549e8a.14
mov eax, dword [esi + 0xc]
mov cl, byte [edi]
mov dl, byte [eax + 1]
lea eax, [edi + 1]
mov dword [esi + 8], eax
cmp dl, cl
je 0x5430e7
jmp case.0x549e8a.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x542e05
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp edi, dword [ebp + 0x84]
jmp 0x540967
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x5430c8
mov dword [esi + 0x88], 1
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
movzx ebx, byte [eax]
mov dword [esi + 0x80], ebx
cmp ebx, 0xc0
jb 0x542f4c
test bl, 0x20
jne 0x542e5f
mov eax, dword [esi + 0xc]
and ebx, 0x1f
shl ebx, 6
movzx eax, byte [eax + 1]
and eax, 0x3f
or eax, ebx
mov dword [esi + 0x80], eax
inc dword [esi + 0x88]
jmp 0x542f4c
test bl, 0x10
jne 0x542e94
mov eax, dword [esi + 0xc]
and ebx, 0xf
shl ebx, 6
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
and ecx, 0x3f
or ecx, ebx
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov dword [esi + 0x80], ecx
add dword [esi + 0x88], 2
jmp 0x542f4c
mov ecx, dword [esi + 0xc]
movzx edx, byte [ecx + 1]
movzx eax, byte [ecx + 2]
and edx, 0x3f
and eax, 0x3f
test bl, 8
jne 0x542ed5
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 0x542f4c
test bl, 4
jne 0x542f0e
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 0x542f4c
and ebx, 1
shl ebx, 6
or edx, ebx
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [ecx + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [ecx + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov dword [esi + 0x80], edx
add dword [esi + 0x88], 5
mov eax, dword [esi + 8]
mov edi, dword [esi + 0x80]
movzx ecx, byte [eax]
cmp edi, 0x80
jae 0x542f7a
mov edx, dword [ebp + 0x38]
mov al, byte [edx + edi]
cmp al, byte [ecx + edx]
jne case.default.0x54b28a
inc dword [esi + 0xc]
inc dword [esi + 8]
jmp 0x53f3b3
lea edx, [eax + 1]
mov edi, ecx
mov dword [esi + 8], edx
cmp ecx, 0xc0
jb 0x54306d
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x542fa9
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x543068
test cl, 0x10
jne 0x542fca
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 0x543068
test cl, 8
jne 0x542ff7
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 0x543068
test cl, 4
jne 0x54302d
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 0x543068
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
mov eax, dword [esi + 0x88]
add dword [esi + 0xc], eax
mov edx, dword [esi + 0x80]
cmp edx, ecx
je 0x53f3b3
mov eax, edx
test eax, eax
jns 0x54308d
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x6a3918]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x5430a8
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x6a5b18]
mov eax, dword [eax*8 + 0x6a229c]
add eax, edx
cmp edi, eax
je 0x53f3b3
jmp case.default.0x54b28a
mov eax, dword [esi + 0xc]
mov edx, dword [ebp + 0x38]
movzx ecx, byte [edi]
movzx eax, byte [eax + 1]
mov al, byte [eax + edx]
cmp al, byte [ecx + edx]
jne case.0x549e8a.14
lea eax, [edi + 1]
mov dword [esi + 8], eax
add dword [esi + 0xc], 2
jmp 0x53f3b3
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 0x543205
mov dword [esp + 0x24], 1
mov dword [esi + 0x90], ebx
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
mov ecx, dword [esi + 0xc]
mov al, byte [ecx]
cmp al, 0x28
je 0x54314a
mov dword [esp + 0x20], ebx
cmp al, 0x35
jne 0x543152
mov dword [esp + 0x20], 1
lea eax, [ecx + 3]
mov dword [esi + 0xc], eax
jmp 0x543205
mov dword [esi + 0x90], ebx
mov dword [esi + 0x8c], closesocket
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x543205
mov dword [esi + 0x90], 1
mov dword [esi + 0x8c], closesocket
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x543205
mov dword [esi + 0x90], ebx
mov dword [esi + 0x8c], 1
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x543205
mov edx, dword [esi + 0xc]
cmp cl, 0x2e
sbb eax, eax
and eax, 0xfffffff3
movzx ebx, byte [edx]
add eax, 0x2e
sub ebx, eax
lea eax, [edx + 1]
mov ecx, ebx
mov dword [esi + 0xc], eax
and ebx, 1
mov dword [esp + 0x20], ebx
movsx eax, byte [ecx + 0x6a11a8]
mov dword [esi + 0x90], eax
movsx eax, byte [ecx + 0x6a11b4]
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x543205
mov dword [esi + 0x8c], closesocket
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x543659
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 0x54334e
test bl, 0x20
jne 0x543261
mov eax, dword [esi + 0xc]
and ebx, 0x1f
shl ebx, 6
movzx eax, byte [eax + 1]
and eax, 0x3f
or eax, ebx
mov dword [esi + 0x80], eax
inc dword [esi + 0x88]
jmp 0x54334e
test bl, 0x10
jne 0x543296
mov eax, dword [esi + 0xc]
and ebx, 0xf
shl ebx, 6
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
and ecx, 0x3f
or ecx, ebx
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov dword [esi + 0x80], ecx
add dword [esi + 0x88], 2
jmp 0x54334e
mov ecx, dword [esi + 0xc]
movzx edx, byte [ecx + 1]
movzx eax, byte [ecx + 2]
and edx, 0x3f
and eax, 0x3f
test bl, 8
jne 0x5432d7
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 0x54334e
test bl, 4
jne 0x543310
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 0x54334e
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 0x54366a
cmp dword [esi + 0x9c], 0x2e
jb 0x5433c0
mov edx, dword [esi + 0x80]
mov eax, edx
test eax, eax
jns 0x54337c
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x6a3918]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x543397
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x6a5b18]
mov ecx, dword [eax*8 + 0x6a229c]
add ecx, edx
cmp ecx, edx
je 0x5433c0
lea eax, [esi + 0x70]
push eax
push ecx
call fcn.0054f4d0
add esp, 8
mov dword [esi + 0x6c], eax
jmp 0x5433c7
mov dword [esi + 0x6c], 0
mov eax, dword [esi + 0x90]
mov ecx, eax
mov dword [esp + 0x10], 1
cmp eax, 1
jl 0x5434d4
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 0x54344e
mov edx, dword [esi + 0x24]
mov ecx, ebx
sub edi, 4
jb 0x543411
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x543416
add ecx, 4
add edx, 4
sub edi, 4
jae 0x543400
cmp edi, 0xfffffffc
je 0x543443
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x54344b
cmp edi, 0xfffffffd
je 0x543443
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x54344b
cmp edi, 0xfffffffe
je 0x543443
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x54344b
cmp edi, 0xffffffff
je 0x543443
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x54344b
mov eax, dword [esi + 0x88]
jmp 0x5434b6
mov ecx, dword [ebp + 0x78]
mov edi, dword [esi + 0x6c]
test edi, edi
jle 0x5434f2
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x5434f2
lea edx, [esi + 0x70]
mov ecx, ebx
sub edi, 4
jb 0x543481
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x543486
add ecx, 4
add edx, 4
sub edi, 4
jae 0x543470
cmp edi, 0xfffffffc
je 0x5434b3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x5434f2
cmp edi, 0xfffffffd
je 0x5434b3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x5434f2
cmp edi, 0xfffffffe
je 0x5434b3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x5434f2
cmp edi, 0xffffffff
je 0x5434b3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x5434f2
mov eax, dword [esi + 0x6c]
mov edx, dword [esp + 0x10]
add eax, ebx
inc edx
mov dword [esi + 8], eax
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], edx
cmp edx, eax
jle 0x5433e0
mov ecx, eax
cmp ecx, dword [esi + 0x8c]
je 0x53f3b3
cmp dword [esp + 0x20], 0
je 0x543514
mov dword [esi + 0x84], eax
jmp 0x54ab71
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp ebx, dword [ebp + 0x78]
jb case.default.0x54b28a
cmp ebx, dword [ebp + 0x84]
jmp 0x540967
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x90]
mov dword [esp + 0x10], eax
cmp eax, dword [esi + 0x8c]
jge 0x543649
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 0x54359e
mov edx, dword [esi + 0x24]
mov ecx, ebx
sub edi, 4
jb 0x543561
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x543566
add ecx, 4
add edx, 4
sub edi, 4
jae 0x543550
cmp edi, 0xfffffffc
je 0x543593
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x54359b
cmp edi, 0xfffffffd
je 0x543593
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x54359b
cmp edi, 0xfffffffe
je 0x543593
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x54359b
cmp edi, 0xffffffff
je 0x543593
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x54359b
mov eax, dword [esi + 0x88]
jmp 0x543606
mov ecx, dword [ebp + 0x78]
mov edi, dword [esi + 0x6c]
test edi, edi
jle 0x543622
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x543622
lea edx, [esi + 0x70]
mov ecx, ebx
sub edi, 4
jb 0x5435d1
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5435d6
add ecx, 4
add edx, 4
sub edi, 4
jae 0x5435c0
cmp edi, 0xfffffffc
je 0x543603
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x543622
cmp edi, 0xfffffffd
je 0x543603
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x543622
cmp edi, 0xfffffffe
je 0x543603
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x543622
cmp edi, 0xffffffff
je 0x543603
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x543622
mov eax, dword [esi + 0x6c]
mov ecx, dword [esp + 0x10]
add eax, ebx
inc ecx
mov dword [esi + 8], eax
mov dword [esp + 0x10], ecx
cmp ecx, dword [esi + 0x8c]
jl 0x543530
jmp 0x543649
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x543649
cmp ebx, dword [ebp + 0x78]
jb 0x543649
cmp ebx, dword [ebp + 0x84]
jbe 0x543649
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x5403c7
cmp dword [esp + 0x24], 0
jne 0x53f3b3
jmp 0x54ac1d
mov eax, dword [esi + 0xc]
movzx eax, byte [eax]
mov dword [esi + 0x80], eax
inc dword [esi + 0xc]
jmp 0x54366e
mov ebx, dword [esp + 0x28]
cmp dword [esi + 0x9c], 0x2e
mov edi, 1
jb 0x543768
mov ecx, dword [esi + 0x80]
mov eax, dword [ebp + 0x3c]
movzx eax, byte [ecx + eax]
mov dword [esi + 0x94], eax
mov eax, dword [esi + 0x90]
mov ecx, eax
cmp eax, edi
jl 0x5436d4
nop
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x549935
movzx ecx, byte [eax]
cmp dword [esi + 0x80], ecx
je 0x5436c3
cmp dword [esi + 0x94], ecx
jne case.0x549e8a.14
inc eax
inc edi
mov dword [esi + 8], eax
mov eax, dword [esi + 0x90]
cmp edi, eax
jle 0x5436a0
mov ecx, eax
cmp ecx, dword [esi + 0x8c]
je 0x53f3b3
cmp dword [esp + 0x20], 0
je 0x5436f2
mov dword [esi + 0x84], eax
jmp 0x549a69
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov ecx, dword [esi + 0x90]
cmp ecx, dword [esi + 0x8c]
jge 0x543758
mov edi, ecx
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x543736
movzx edx, byte [eax]
cmp dword [esi + 0x80], edx
je 0x543725
mov ecx, edi
cmp dword [esi + 0x94], edx
jne 0x543758
inc eax
inc ecx
mov dword [esi + 8], eax
mov edi, ecx
cmp ecx, dword [esi + 0x8c]
jl 0x543708
jmp 0x543758
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je 0x543758
cmp eax, dword [ebp + 0x84]
jbe 0x543758
mov dword [ebp + 0x64], 1
cmp ecx, 1
jg 0x54cc4a
cmp dword [esp + 0x24], 0
jne 0x53f3b3
jmp 0x549aac
mov eax, dword [esi + 0x90]
mov ecx, eax
cmp eax, 1
jl 0x54379f
mov ebx, dword [esi + 8]
cmp ebx, dword [ebp + 0x78]
jae 0x5437bd
movzx edx, byte [ebx]
lea eax, [ebx + 1]
mov dword [esi + 8], eax
cmp dword [esi + 0x80], edx
jne case.default.0x54b28a
mov eax, dword [esi + 0x90]
inc edi
cmp edi, eax
jle 0x543775
mov ecx, eax
cmp ecx, dword [esi + 0x8c]
je 0x53f3b3
cmp dword [esp + 0x20], 0
je 0x5437d6
mov dword [esi + 0x84], eax
jmp 0x549b31
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp ebx, dword [ebp + 0x84]
jmp 0x540967
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge 0x543836
nop word [eax + eax]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x543814
movzx eax, byte [ecx]
cmp dword [esi + 0x80], eax
jne 0x543836
lea eax, [ecx + 1]
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x5437f0
jmp 0x543836
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x543836
cmp ecx, dword [ebp + 0x84]
jbe 0x543836
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x5403c7
cmp dword [esp + 0x24], 0
jne 0x53f3b3
jmp 0x549b74
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x540953
mov ebx, dword [esp + 0x28]
mov eax, dword [esi + 0xc]
test ebx, ebx
je 0x543b0f
inc eax
mov dword [esi + 0xc], eax
movzx ebx, byte [eax]
lea ecx, [eax + 1]
mov dword [esi + 0xc], ecx
cmp ebx, 0xc0
jb 0x543954
movzx eax, byte [ecx]
and eax, 0x3f
test bl, 0x20
jne 0x543895
and ebx, 0x1f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 1]
jmp 0x543951
test bl, 0x10
jne 0x5438b6
and ebx, 0xf
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 2]
jmp 0x543951
test bl, 8
jne 0x5438e0
and ebx, 7
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 3]
jmp 0x543951
test bl, 4
jne 0x543916
and ebx, 3
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 4]
jmp 0x543951
and ebx, 1
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 5]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 8]
movzx edx, byte [eax]
lea ecx, [eax + 1]
mov dword [esi + 8], ecx
mov edi, edx
mov dword [esp + 0x10], edx
mov eax, edx
mov dword [esp + 0x1c], edx
cmp edx, 0xc0
jb 0x543a95
movzx eax, byte [ecx]
and eax, 0x3f
test dl, 0x20
jne 0x5439a0
and edx, 0x1f
shl edx, 6
or edx, eax
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov ecx, edx
mov edi, edx
mov dword [esp + 0x1c], edx
mov eax, edx
jmp 0x543a99
test dl, 0x10
jne 0x5439ce
and edx, 0xf
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [ecx + 2]
mov dword [esi + 8], eax
mov ecx, edx
mov edi, edx
mov dword [esp + 0x1c], edx
mov eax, edx
jmp 0x543a99
test dl, 8
jne 0x543a08
and edx, 7
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [ecx + 3]
mov dword [esi + 8], eax
mov ecx, edx
mov edi, edx
mov dword [esp + 0x1c], edx
mov eax, edx
jmp 0x543a99
test dl, 4
jne 0x543a4b
and edx, 3
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [ecx + 4]
mov dword [esi + 8], eax
mov ecx, edx
mov edi, edx
mov dword [esp + 0x1c], edx
mov eax, edx
jmp 0x543a99
and edx, 1
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [ecx + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [ecx + 5]
mov dword [esi + 8], eax
mov ecx, edx
mov edi, edx
mov dword [esp + 0x1c], edx
mov eax, edx
jmp 0x543a99
mov ecx, dword [esp + 0x10]
cmp dword [esi + 0x9c], 0x1f
jne 0x543aaf
cmp ebx, eax
jne 0x53f3b3
jmp case.default.0x54b28a
cmp ebx, 0x7f
jbe 0x543aed
mov eax, ebx
test eax, eax
jns 0x543abd
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x6a3918]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x543ad8
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x6a5b18]
mov eax, dword [eax*8 + 0x6a229c]
add eax, ebx
jmp 0x543afa
mov eax, dword [ebp + 0x3c]
mov edx, ecx
mov edi, dword [esp + 0x1c]
movzx eax, byte [eax + ebx]
cmp ebx, edx
je case.default.0x54b28a
cmp eax, edi
jne 0x53f3b3
jmp case.default.0x54b28a
movzx edx, byte [eax + 1]
lea eax, [ecx + 1]
movzx edi, byte [ecx]
mov dword [esi + 8], eax
cmp edx, edi
je case.0x549e8a.14
cmp dword [esi + 0x9c], 0x20
jne 0x5430e7
mov eax, dword [ebp + 0x3c]
movzx eax, byte [eax + edx]
cmp eax, edi
je case.0x549e8a.14
add dword [esi + 0xc], 2
jmp 0x53f3b3
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 0x543c94
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 0x543ba8
cmp al, 0x4f
je 0x543ba8
xor ebx, ebx
lea eax, [ecx + 3]
mov dword [esp + 0x20], ebx
mov dword [esi + 0xc], eax
jmp 0x543c94
mov ebx, 1
lea eax, [ecx + 3]
mov dword [esp + 0x20], ebx
mov dword [esi + 0xc], eax
jmp 0x543c94
mov dword [esi + 0x90], ebx
mov dword [esi + 0x8c], closesocket
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x543c94
mov dword [esi + 0x90], 1
mov dword [esi + 0x8c], closesocket
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x543c94
mov dword [esi + 0x90], ebx
mov dword [esi + 0x8c], 1
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x543c94
mov dword [esi + 0x90], ebx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x24], 1
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
add dword [esi + 0xc], 3
jmp 0x543c94
mov edx, dword [esi + 0xc]
cmp cl, 0x48
sbb eax, eax
and eax, 0xfffffff3
movzx ebx, byte [edx]
add eax, 0x48
sub ebx, eax
lea eax, [edx + 1]
mov ecx, ebx
mov dword [esi + 0xc], eax
and ebx, 1
mov dword [esp + 0x20], ebx
movsx eax, byte [ecx + 0x6a11a8]
mov dword [esi + 0x90], eax
movsx eax, byte [ecx + 0x6a11b4]
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x543c94
mov dword [esi + 0x8c], closesocket
mov eax, dword [esi + 0xc]
movzx eax, byte [eax]
mov dword [esi + 0x80], eax
mov edx, dword [esi + 0xc]
mov eax, dword [esp + 0x28]
inc edx
mov dword [esi + 0xc], edx
test eax, eax
je 0x543dc5
mov ecx, dword [esi + 0x80]
cmp ecx, 0xc0
jb 0x543dc5
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x543ce6
and ecx, 0x1f
shl ecx, 6
or ecx, eax
mov dword [esi + 0x80], ecx
inc dword [esi + 0xc]
jmp 0x543dc1
test cl, 0x10
jne 0x543d0e
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov dword [esi + 0x80], ecx
add dword [esi + 0xc], 2
jmp 0x543dc1
test cl, 8
jne 0x543d42
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov dword [esi + 0x80], ecx
add dword [esi + 0xc], 3
jmp 0x543dc1
test cl, 4
jne 0x543d7f
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov dword [esi + 0x80], ecx
add dword [esi + 0xc], 4
jmp 0x543dc1
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov dword [esi + 0x80], ecx
add dword [esi + 0xc], 5
mov eax, dword [esp + 0x28]
cmp dword [esi + 0x9c], 0x48
jb 0x5441b1
test eax, eax
je 0x543e25
mov edx, dword [esi + 0x80]
cmp edx, 0x7f
jbe 0x543e25
mov eax, edx
test eax, eax
jns 0x543dea
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x6a3918]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x543e05
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
mov edi, 1
movzx eax, word [ecx*2 + 0x6a5b18]
mov eax, dword [eax*8 + 0x6a229c]
add eax, edx
mov dword [esi + 0x94], eax
jmp 0x543e48
cmp dword [esp + 0x28], 0
mov edi, 1
mov ecx, dword [esi + 0x80]
mov eax, dword [ebp + 0x3c]
movzx eax, byte [ecx + eax]
mov dword [esi + 0x94], eax
je 0x543f86
cmp dword [esi + 0x90], 1
jl 0x543fc4
nop word [eax + eax]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5409c5
movzx ecx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 8], edx
mov eax, ecx
cmp ecx, 0xc0
jb 0x543f5f
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x543e9e
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x543f5a
test cl, 0x10
jne 0x543ebf
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 0x543f5a
test cl, 8
jne 0x543ee9
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 0x543f5a
test cl, 4
jne 0x543f1f
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 0x543f5a
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov eax, ecx
cmp dword [esi + 0x80], ecx
je case.default.0x54b28a
cmp dword [esi + 0x94], eax
je case.default.0x54b28a
inc edi
cmp edi, dword [esi + 0x90]
jle 0x543e60
jmp 0x543fc4
cmp dword [esi + 0x90], edi
jl 0x543fc4
nop
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5409c5
movzx ecx, byte [eax]
cmp dword [esi + 0x80], ecx
je case.default.0x54b28a
cmp dword [esi + 0x94], ecx
je case.default.0x54b28a
inc eax
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x543f90
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x8c]
je 0x53f3b3
test ebx, ebx
je 0x543ff0
cmp dword [esp + 0x28], 0
mov dword [esi + 0x84], eax
jne 0x54ada8
jmp 0x549c1e
mov ebx, dword [esp + 0x28]
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
test ebx, ebx
je 0x544147
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x544137
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x544115
movzx edx, byte [edi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x5440f0
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x544054
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x5440ec
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x54406f
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x5440e6
and eax, 0x3f
test dl, 8
jne 0x54408f
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x5440e6
test dl, 4
jne 0x5440b8
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 0x5440e6
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
cmp dword [esi + 0x80], edx
je 0x544137
cmp dword [esi + 0x94], eax
je 0x544137
lea eax, [ecx + edi]
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x544014
jmp 0x544137
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x544137
cmp edi, dword [ebp + 0x84]
jbe 0x544137
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x5403c7
cmp dword [esp + 0x24], 0
jne 0x53f3b3
jmp 0x54ae0c
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge 0x5441a1
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x54417f
movzx ecx, byte [eax]
cmp dword [esi + 0x80], ecx
je 0x5441a1
cmp dword [esi + 0x94], ecx
je 0x5441a1
inc eax
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x544155
jmp 0x5441a1
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je 0x5441a1
cmp eax, dword [ebp + 0x84]
jbe 0x5441a1
mov dword [ebp + 0x64], 1
cmp ecx, 1
jg 0x54cc4a
cmp dword [esp + 0x24], 0
jne 0x53f3b3
jmp 0x549c61
mov ebx, dword [esp + 0x28]
mov edi, 1
mov dword [esp + 0x10], edi
test ebx, ebx
je 0x544309
cmp dword [esi + 0x90], edi
jl 0x54433f
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5409c5
movzx ebx, byte [eax]
inc eax
mov dword [esp + 0x1c], ebx
mov dword [esi + 8], eax
cmp ebx, 0xc0
jb 0x5442ea
mov cl, byte [eax]
test bl, 0x20
jne 0x54420b
inc eax
and ebx, 0x1f
mov dword [esi + 8], eax
movzx eax, cl
jmp 0x5442e2
mov dl, byte [eax + 1]
test bl, 0x10
jne 0x54422f
add eax, 2
movzx ecx, cl
and ebx, 0xf
mov dword [esi + 8], eax
and ecx, 0x3f
shl ebx, 6
or ebx, ecx
movzx eax, dl
jmp 0x5442e2
test bl, 8
jne 0x54426a
mov bl, byte [eax + 2]
add eax, 3
mov dword [esi + 8], eax
mov eax, dword [esp + 0x1c]
movzx ecx, cl
and eax, 7
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx ebx, bl
shl ecx, 6
and ebx, 0x3f
movzx eax, dl
and eax, 0x3f
or ecx, eax
shl ecx, 6
or ebx, ecx
jmp 0x5442ea
mov ch, byte [eax + 3]
movzx edi, cl
and edi, 0x3f
test bl, 4
mov bl, byte [eax + 2]
movzx ebx, bl
jne 0x5442a8
add eax, 4
and ebx, 0x3f
mov dword [esi + 8], eax
mov eax, dword [esp + 0x1c]
and eax, 3
shl eax, 6
or edi, eax
movzx eax, dl
shl edi, 6
and eax, 0x3f
or edi, eax
movzx eax, ch
shl edi, 6
or ebx, edi
jmp 0x5442de
mov dh, byte [eax + 4]
and ebx, 0x3f
add eax, 5
mov dword [esi + 8], eax
mov eax, dword [esp + 0x1c]
and eax, 1
shl eax, 6
or edi, eax
movzx eax, dl
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, ch
shl edi, 6
and eax, 0x3f
or ebx, edi
shl ebx, 6
or ebx, eax
movzx eax, dh
mov edi, dword [esp + 0x10]
and eax, 0x3f
shl ebx, 6
or ebx, eax
cmp dword [esi + 0x80], ebx
je case.default.0x54b28a
inc edi
mov dword [esp + 0x10], edi
cmp edi, dword [esi + 0x90]
jle 0x5441d2
jmp 0x54433b
cmp dword [esi + 0x90], edi
jl 0x54433f
mov ebx, dword [esi + 8]
cmp ebx, dword [ebp + 0x78]
jae 0x5437bd
movzx edx, byte [ebx]
lea eax, [ebx + 1]
mov dword [esi + 8], eax
cmp dword [esi + 0x80], edx
je case.default.0x54b28a
inc edi
cmp edi, dword [esi + 0x90]
jle 0x544311
mov ebx, dword [esp + 0x28]
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x8c]
je 0x53f3b3
cmp dword [esp + 0x20], 0
je 0x54436b
mov dword [esi + 0x84], eax
test ebx, ebx
jne 0x54afaf
jmp 0x549ce6
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
test ebx, ebx
je 0x5444be
mov ecx, dword [esi + 0x90]
mov dword [esp + 0x10], ecx
cmp ecx, dword [esi + 0x8c]
jge 0x5444ae
nop
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x54448c
movzx edx, byte [edi]
mov ebx, 1
cmp edx, 0xc0
jb 0x54446b
test dl, 0x20
jne 0x5443c6
movzx eax, byte [edi + 1]
mov ebx, 2
and edx, 0x1f
jmp 0x544463
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x5443e8
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x54445f
and eax, 0x3f
test dl, 8
jne 0x544408
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x54445f
test dl, 4
jne 0x544431
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 0x54445f
and edx, 1
mov ebx, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
mov ecx, dword [esp + 0x10]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp dword [esi + 0x80], edx
je 0x5444ae
lea eax, [ebx + edi]
inc ecx
mov dword [esi + 8], eax
mov dword [esp + 0x10], ecx
cmp ecx, dword [esi + 0x8c]
jl 0x544390
jmp 0x5444ae
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x5444ae
cmp edi, dword [ebp + 0x84]
jbe 0x5444ae
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x5403c7
cmp dword [esp + 0x24], 0
jne 0x53f3b3
jmp 0x54b00e
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge 0x544516
nop dword [eax]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x5444f4
movzx eax, byte [ecx]
cmp dword [esi + 0x80], eax
je 0x544516
lea eax, [ecx + 1]
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x5444d0
jmp 0x544516
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x544516
cmp ecx, dword [ebp + 0x84]
jbe 0x544516
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x54cc4a
cmp dword [esp + 0x24], 0
jne 0x53f3b3
jmp 0x549d29
mov eax, dword [esi + 0xc]
mov dword [esp + 0x20], 1
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x90], ecx
add dword [esi + 0xc], 3
jmp 0x544657
mov dword [esi + 0x90], ebx
xor edx, edx
mov eax, dword [esi + 0xc]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x5c
sete dl
add eax, 3
mov dword [esp + 0x20], edx
mov dword [esi + 0xc], eax
jmp 0x544657
mov dword [esi + 0x90], ebx
mov dword [esi + 0x8c], closesocket
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x544657
mov dword [esi + 0x90], 1
mov dword [esi + 0x8c], closesocket
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x544657
mov dword [esi + 0x90], ebx
mov dword [esi + 0x8c], 1
inc dword [esi + 0xc]
mov dword [esp + 0x24], 1
jmp 0x544657
mov dword [esi + 0x90], ebx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x24], 1
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [esi + 0x8c], ecx
add dword [esi + 0xc], 3
jmp 0x544657
mov ecx, dword [esi + 0xc]
movzx ebx, byte [ecx]
lea eax, [ecx + 1]
add ebx, 0xffffffab
mov dword [esi + 0xc], eax
mov edx, ebx
and ebx, 1
mov dword [esp + 0x20], ebx
movsx eax, byte [edx + 0x6a11a8]
mov dword [esi + 0x90], eax
movsx eax, byte [edx + 0x6a11b4]
mov dword [esi + 0x8c], eax
test eax, eax
jne 0x544657
mov dword [esi + 0x8c], closesocket
mov eax, dword [esi + 0xc]
movzx eax, byte [eax]
mov dword [esi + 0x7c], eax
inc dword [esi + 0xc]
mov ecx, dword [esi + 0x7c]
cmp ecx, 0x10
je 0x544679
cmp ecx, 0xf
je 0x544679
mov dword [esi + 0x60], 0xffffffff
jmp 0x54469d
xor eax, eax
cmp ecx, 0xf
sete al
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0xc]
movzx eax, byte [eax]
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
movzx eax, byte [eax]
mov dword [esi + 0x64], eax
inc dword [esi + 0xc]
mov ecx, dword [esi + 0x90]
test ecx, ecx
jle 0x5448aa
mov eax, dword [esi + 0x60]
test eax, eax
js 0x5455a4
cmp eax, 0xa
ja case.0x54b208.15
jmp dword [eax*4 + 0x54d33c]
cmp dword [esi + 0x68], 0
jne case.default.0x54b28a
mov ebx, dword [esp + 0x28]
mov edi, 1
cmp ecx, edi
jl 0x5448ae
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x549d95
movzx edx, byte [ecx]
lea eax, [ecx + 1]
mov dword [esi + 8], eax
test ebx, ebx
je 0x54472e
cmp edx, 0xc0
jb 0x54472e
test dl, 0x20
jne 0x54470c
lea eax, [ecx + 2]
jmp 0x54472b
test dl, 0x10
jne 0x544716
lea eax, [ecx + 3]
jmp 0x54472b
test dl, 8
jne 0x544720
lea eax, [ecx + 4]
jmp 0x54472b
lea eax, [ecx + 5]
test dl, 4
je 0x54472b
lea eax, [ecx + 6]
mov dword [esi + 8], eax
inc edi
cmp edi, dword [esi + 0x90]
jle 0x5446e1
jmp 0x5448ae
mov ebx, 1
cmp ecx, ebx
jl 0x5448aa
nop dword [eax]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x540953
cmp dword [esp + 0x28], 0
lea edx, [ecx + 1]
movzx eax, byte [ecx]
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
je 0x54485a
cmp eax, 0xc0
jb 0x54485a
movzx ecx, byte [edx]
and ecx, 0x3f
test al, 0x20
jne 0x544799
and eax, 0x1f
shl eax, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x544855
test al, 0x10
jne 0x5447b9
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x544855
test al, 8
jne 0x5447e5
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x544855
test al, 4
jne 0x54481a
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x544855
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
cmp eax, 9
je 0x54488f
cmp eax, 5
je 0x54488f
cmp eax, 8
je 0x54488f
xor eax, eax
jmp 0x544894
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.default.0x54b28a
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x544750
mov ebx, dword [esp + 0x28]
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x8c]
je 0x53f3b3
cmp dword [esp + 0x20], 0
je 0x54691b
mov ecx, dword [esi + 0x60]
test ecx, ecx
js 0x5468fe
cmp ecx, 0xa
ja case.0x54b208.15
jmp dword [ecx*4 + 0x54d368]
mov ebx, 1
cmp ecx, ebx
jl 0x5448aa
nop
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x540953
cmp dword [esp + 0x28], 0
lea edx, [ecx + 1]
movzx eax, byte [ecx]
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
je 0x544a0f
cmp eax, 0xc0
jb 0x544a0f
test al, 0x20
jne 0x544939
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x544a0a
test al, 0x10
jne 0x54495f
movzx eax, byte [edx]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x544a0a
test al, 8
jne 0x544991
movzx eax, byte [edx]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x544a0a
test al, 4
movzx eax, byte [edx]
jne 0x5449cc
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x544a0a
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
mov eax, dword [eax*4 + 0x6a1c68]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je case.default.0x54b28a
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x5448f0
jmp 0x5448aa
mov ebx, 1
cmp ecx, ebx
jl 0x5448aa
nop dword [eax + eax]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x540953
cmp dword [esp + 0x28], 0
lea edx, [ecx + 1]
movzx eax, byte [ecx]
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
je 0x544b8f
cmp eax, 0xc0
jb 0x544b8f
test al, 0x20
jne 0x544ab9
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x544b8a
test al, 0x10
jne 0x544adf
movzx eax, byte [edx]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x544b8a
test al, 8
jne 0x544b11
movzx eax, byte [edx]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x544b8a
test al, 4
movzx eax, byte [edx]
jne 0x544b4c
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x544b8a
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je case.default.0x54b28a
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x544a70
jmp 0x5448aa
mov ebx, 1
cmp ecx, ebx
jl 0x5448aa
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x540953
cmp dword [esp + 0x28], 0
lea edx, [ecx + 1]
movzx eax, byte [ecx]
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
je 0x544d00
cmp eax, 0xc0
jb 0x544d00
test al, 0x20
jne 0x544c2a
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x544cfb
test al, 0x10
jne 0x544c50
movzx eax, byte [edx]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x544cfb
test al, 8
jne 0x544c82
movzx eax, byte [edx]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x544cfb
test al, 4
movzx eax, byte [edx]
jne 0x544cbd
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x544cfb
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2298]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je case.default.0x54b28a
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x544be1
jmp 0x5448aa
mov ebx, 1
cmp ecx, ebx
jl 0x5448aa
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x540953
cmp dword [esp + 0x28], 0
lea edx, [ecx + 1]
movzx eax, byte [ecx]
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
je 0x544e71
cmp eax, 0xc0
jb 0x544e71
test al, 0x20
jne 0x544d9b
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x544e6c
test al, 0x10
jne 0x544dc1
movzx eax, byte [edx]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x544e6c
test al, 8
jne 0x544df3
movzx eax, byte [edx]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x544e6c
test al, 4
movzx eax, byte [edx]
jne 0x544e2e
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x544e6c
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
mov eax, dword [eax*4 + 0x6a1c68]
cmp eax, 1
je 0x544ea8
cmp eax, 3
je 0x544ea8
xor eax, eax
jmp 0x544ead
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.default.0x54b28a
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x544d52
jmp 0x5448aa
mov dword [esp + 0x10], 1
cmp ecx, 1
jl 0x5448aa
nop dword [eax]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5409c5
cmp dword [esp + 0x28], 0
lea edx, [eax + 1]
movzx ecx, byte [eax]
mov dword [esi + 8], edx
mov eax, ecx
mov dword [esp + 0x1c], ecx
mov edi, ecx
mov ebx, ecx
mov dword [esp + 0x18], ecx
je 0x54500a
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], ecx
cmp ecx, 0xc0
jb 0x54500a
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x544f3d
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x544ff9
test cl, 0x10
jne 0x544f5e
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 0x544ff9
test cl, 8
jne 0x544f88
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 0x544ff9
test cl, 4
jne 0x544fbe
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 0x544ff9
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
mov dword [esp + 0x1c], ecx
mov eax, ecx
mov ebx, ecx
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x1c], 0x20
mov edx, ecx
ja 0x54502b
cmp eax, 0x20
je case.0x545100.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x545100.8203
jmp dword [eax*4 + 0x54d394]
cmp edx, 0x2000
ja 0x5450d8
cmp edi, 0x2000
je case.0x545100.8193
cmp ecx, 0x1680
ja 0x5450d0
je case.0x545100.8193
mov eax, ecx
sub eax, 0x85
je case.0x545100.8193
sub eax, 0x1b
je case.0x545100.8193
mov eax, ecx
test eax, eax
jns 0x545074
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x6a3918]
shl eax, 7
and ecx, 0x8000007f
jns 0x54508e
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
cmp dword [eax*4 + 0x6a1c68], 6
sete cl
cmp ecx, dword [esi + 0x68]
je case.default.0x54b28a
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
cmp edx, dword [esi + 0x90]
jle 0x544ee0
jmp 0x5448aa
cmp ecx, 0x180e
jmp 0x545065
cmp ebx, 0x3000
ja case.0x545100.8203
cmp dword [esp + 0x18], 0x3000
je case.0x545100.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x545100.8203
movzx eax, byte [eax + 0x54d3b0]
jmp dword [eax*4 + 0x54d3a8]
cmp dword [esi + 0x68], 0
jne case.default.0x54b28a
jmp 0x5450b6
mov dword [esp + 0x18], 1
cmp ecx, 1
jl 0x5448aa
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x540953
cmp dword [esp + 0x28], 0
lea edx, [ecx + 1]
movzx eax, byte [ecx]
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
mov ebx, eax
je 0x54522f
cmp eax, 0xc0
jb 0x54522f
movzx ecx, byte [edx]
and ecx, 0x3f
test al, 0x20
jne 0x54516f
and eax, 0x1f
shl eax, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x545228
test al, 0x10
jne 0x54518f
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x545228
test al, 8
jne 0x5451b8
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x545228
test al, 4
jne 0x5451ed
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x545228
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
mov ebx, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
mov eax, dword [eax*4 + 0x6a1c68]
cmp eax, 1
je 0x54526b
cmp eax, 3
je 0x54526b
cmp ebx, 0x5f
je 0x54526b
xor eax, eax
jmp 0x545270
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.default.0x54b28a
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esi + 0x90]
jle 0x545124
jmp 0x5448aa
mov ebx, 1
cmp ecx, ebx
jl 0x5448aa
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5409c5
cmp dword [esp + 0x28], 0
lea edi, [eax + 1]
movzx edx, byte [eax]
mov dword [esi + 8], edi
mov ecx, edx
je 0x545399
cmp edx, 0xc0
jb 0x545399
movzx ecx, byte [edi]
and ecx, 0x3f
test dl, 0x20
jne 0x5452ed
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x545394
movzx eax, byte [edi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x54530e
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x545394
test dl, 8
jne 0x545331
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 0x545394
test dl, 4
jne 0x545360
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 0x545394
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov ecx, edx
mov eax, dword [esi + 0x64]
cmp ecx, dword [eax*4 + 0x6a2158]
lea eax, [eax*4 + 0x6a2158]
jb 0x5453bd
mov ecx, dword [eax]
nop
lea eax, [eax + 4]
cmp edx, ecx
je 0x5453d9
mov ecx, dword [eax]
cmp edx, ecx
jae 0x5453b0
cmp dword [esi + 0x68], 0
je case.default.0x54b28a
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x5452a0
jmp 0x5448aa
cmp dword [esi + 0x68], 0
jne case.default.0x54b28a
jmp 0x5453c7
mov dword [esp + 0x18], 1
cmp ecx, 1
jl 0x5448aa
nop word [eax + eax]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5409c5
cmp dword [esp + 0x28], 0
lea edi, [eax + 1]
movzx ecx, byte [eax]
mov dword [esi + 8], edi
mov edx, ecx
mov eax, ecx
mov dword [esp + 0x10], ecx
mov ebx, ecx
je 0x54554d
mov dword [esp + 0x10], ecx
cmp ecx, 0xc0
jb 0x54554d
movzx eax, byte [edi]
and eax, 0x3f
test cl, 0x20
jne 0x545460
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edi + 1]
mov edx, ecx
mov dword [esi + 8], eax
mov eax, edx
mov ebx, edx
mov edi, edx
jmp 0x545551
test cl, 0x10
jne 0x54548c
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edi + 2]
mov edx, ecx
mov dword [esi + 8], eax
mov eax, edx
mov ebx, edx
mov edi, edx
jmp 0x545551
test cl, 8
jne 0x5454c4
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edi + 3]
mov edx, ecx
mov dword [esi + 8], eax
mov eax, edx
mov ebx, edx
mov edi, edx
jmp 0x545551
test cl, 4
jne 0x545505
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edi + 4]
mov edx, ecx
mov dword [esi + 8], eax
mov eax, edx
mov ebx, edx
mov edi, edx
jmp 0x545551
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edi + 5]
mov edx, ecx
mov dword [esi + 8], eax
mov eax, edx
mov ebx, edx
mov edi, edx
jmp 0x545551
mov edi, dword [esp + 0x10]
cmp edx, 0x24
je 0x54557c
cmp eax, 0x40
je 0x54557c
cmp ebx, 0x60
je 0x54557c
cmp edi, 0xa0
jb 0x545570
cmp ecx, 0xd7ff
jbe 0x54557c
cmp ecx, 0xe000
jae 0x54557c
xor eax, eax
jmp 0x545581
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.default.0x54b28a
mov edx, dword [esp + 0x18]
inc edx
mov dword [esp + 0x18], edx
cmp edx, dword [esi + 0x90]
jle 0x545400
jmp 0x5448aa
mov eax, dword [esi + 0x7c]
cmp eax, 0x16
jne 0x54589b
mov dword [esp + 0x18], 1
cmp ecx, 1
jl 0x5448aa
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x540953
cmp dword [esp + 0x28], 0
lea edi, [ecx + 1]
movzx eax, byte [ecx]
mov edx, edi
mov dword [esi + 8], edi
mov ecx, eax
mov ebx, eax
mov dword [esp + 0x10], edi
je 0x5456cc
mov dword [esp + 0x10], edi
cmp eax, 0xc0
jb 0x5456cc
test al, 0x20
jne 0x54560c
movzx eax, byte [edi]
lea edx, [edi + 1]
and ecx, 0x1f
jmp 0x5456bb
test al, 0x10
jne 0x54562c
mov ecx, eax
lea edx, [edi + 2]
movzx eax, byte [edi]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
jmp 0x5456bb
test al, 8
jne 0x545655
mov ecx, eax
lea edx, [edi + 3]
movzx eax, byte [edi]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
jmp 0x5456bb
movzx ecx, byte [edi]
and ecx, 0x3f
test al, 4
jne 0x545688
and eax, 3
lea edx, [edi + 4]
shl eax, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
jmp 0x5456bb
and eax, 1
lea edx, [edi + 5]
shl eax, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov dword [esi + 8], edx
mov ebx, ecx
mov dword [esp + 0x10], edx
shr ecx, 7
and ebx, 0x7f
movzx eax, byte [ecx + 0x6a3918]
mov ecx, edx
shl eax, 7
add eax, ebx
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a229a]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x78]
cmp dword [esp + 0x10], eax
jae 0x54585b
mov edi, edx
mov dword [esp + 0x10], eax
nop word [eax + eax]
cmp dword [esp + 0x28], 0
mov ebx, 1
movzx edx, byte [edi]
mov ecx, edx
je 0x5457e9
cmp edx, 0xc0
jb 0x5457e9
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x545751
mov eax, edx
mov ebx, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x5457e5
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x545769
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x5457df
and eax, 0x3f
test dl, 8
jne 0x545789
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x5457df
test dl, 4
jne 0x5457b2
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 0x5457df
and edx, ebx
mov ebx, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov ebp, dword [esp + 0x1c]
and ecx, 0x7f
shr edx, 7
mov dword [esp + 0x14], edi
movzx eax, byte [edx + 0x6a3918]
mov edx, edi
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6a5b18]
movzx ecx, byte [eax*8 + 0x6a229a]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov eax, 1
shl eax, cl
test dword [ebp*4 + 0x6a1ce0], eax
mov ebp, dword [esp + 0xb0]
je 0x545853
lea edx, [ebx + edi]
mov dword [esp + 0x1c], ecx
mov dword [esi + 8], edx
mov edi, edx
mov eax, dword [ebp + 0x78]
mov ecx, edx
mov dword [esp + 0x10], eax
cmp edx, eax
jb 0x545710
jmp 0x54585b
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edi, dword [ebp + 0x88]
test edi, edi
je 0x545881
cmp edx, eax
jb 0x545881
cmp ecx, dword [ebp + 0x84]
jbe 0x545881
mov dword [ebp + 0x64], 1
cmp edi, 1
jg 0x54abdc
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esi + 0x90]
jle 0x5455c1
jmp 0x5448aa
mov ebx, dword [esp + 0x28]
add eax, 0xfffffffa
test ebx, ebx
je 0x546460
cmp eax, 0xf
ja case.0x54b208.15
jmp dword [eax*4 + 0x54d410]
mov ebx, 1
cmp ecx, ebx
jl 0x5448aa
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x78]
cmp ecx, edx
jae 0x540953
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x545909
push dword [esp + 0x28]
lea eax, [ebp + 0x1c]
push eax
push edx
push edi
push ecx
call fcn.0054f1a0
mov ecx, dword [ebp + 0x18]
add esp, 0x14
test eax, eax
je 0x5458fd
mov eax, 1
jmp 0x5458ff
xor eax, eax
test eax, eax
jne case.default.0x54b28a
jmp 0x545930
mov edi, dword [ebp + 0x1c]
sub edx, edi
cmp ecx, edx
ja 0x54592e
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x54592e
cmp edi, 1
je case.default.0x54b28a
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je case.default.0x54b28a
xor ecx, ecx
mov edi, dword [ebp + 0x88]
test edi, edi
je 0x545966
mov edx, dword [esi + 8]
lea eax, [edx + 1]
cmp eax, dword [ebp + 0x78]
jb 0x545966
test ecx, ecx
jne 0x545966
cmp dword [ebp + 0x1c], 2
jne 0x545966
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne 0x545966
mov dword [ebp + 0x64], 1
cmp edi, 1
jg 0x54abdc
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x545982
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x545982
inc ecx
mov dword [esi + 8], ecx
cmp ecx, dword [ebp + 0x78]
jb 0x545971
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x5458c7
jmp 0x5448aa
mov edi, 1
cmp ecx, edi
jl 0x5448ae
mov edx, dword [ebp + 0x78]
mov eax, dword [esi + 8]
cmp eax, edx
jae 0x549935
inc eax
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jae 0x5459d8
nop word [eax + eax]
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x5459d8
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jb 0x5459c0
inc edi
cmp edi, dword [esi + 0x90]
jle 0x5459a4
jmp 0x5448ae
mov eax, dword [ebp + 0x78]
mov edx, dword [esi + 8]
sub eax, ecx
cmp edx, eax
ja case.0x549e8a.14
lea eax, [ecx + edx]
mov dword [esi + 8], eax
jmp 0x5448ae
mov dword [esp + 0x14], 1
cmp ecx, 1
jl 0x5448ae
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5409c5
movzx ecx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 8], edx
mov edi, ecx
mov eax, ecx
mov ebx, edx
cmp ecx, 0xc0
jb 0x545b17
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x545a52
and ecx, 0x1f
shl ecx, 6
or ecx, eax
inc edx
jmp 0x545b0e
test cl, 0x10
jne 0x545a73
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add edx, 2
jmp 0x545b0e
test cl, 8
jne 0x545a9d
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add edx, 3
jmp 0x545b0e
test cl, 4
jne 0x545ad3
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add edx, 4
jmp 0x545b0e
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edx + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add edx, 5
mov dword [esi + 8], edx
mov edi, ecx
mov eax, ecx
mov ebx, edx
cmp edi, 0x85
ja 0x545b4b
cmp eax, 0x85
je case.0x545b32.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x54b28a
jmp dword [ecx*4 + 0x54d450]
cmp ebx, dword [ebp + 0x78]
jae case.0x545b32.10
cmp byte [edx], 0xa
jne case.0x545b32.10
lea eax, [edx + 1]
mov dword [esi + 8], eax
jmp case.0x545b32.10
sub ecx, 0x2028
je case.0x545b32.11
sub ecx, 1
jne case.default.0x54b28a
cmp dword [ebp + 0x68], 0
jne case.default.0x54b28a
mov edx, dword [esp + 0x14]
inc edx
mov dword [esp + 0x14], edx
cmp edx, dword [esi + 0x90]
jle 0x545a12
jmp 0x5448aa
mov dword [esp + 0x14], 1
cmp ecx, 1
jl 0x5448ae
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5409c5
movzx ecx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 8], edx
mov ebx, ecx
mov dword [esp + 0x18], ecx
mov eax, ecx
mov edi, ecx
cmp ecx, 0xc0
jb 0x545ca0
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x545bd7
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x545c93
test cl, 0x10
jne 0x545bf8
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 0x545c93
test cl, 8
jne 0x545c22
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 0x545c93
test cl, 4
jne 0x545c58
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 0x545c93
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov ebx, ecx
mov dword [esp + 0x18], ecx
mov eax, ecx
mov edi, ecx
cmp dword [esp + 0x18], 0x2000
mov edx, ecx
ja 0x545d0c
cmp ebx, 0x2000
je case.default.0x54b28a
cmp ecx, 0xa0
ja 0x545cf2
je case.default.0x54b28a
cmp ecx, 9
je case.default.0x54b28a
cmp ecx, 0x20
je case.default.0x54b28a
mov edx, dword [esp + 0x14]
inc edx
mov dword [esp + 0x14], edx
cmp edx, dword [esi + 0x90]
jle 0x545b91
jmp 0x5448aa
cmp edx, 0x1680
je case.default.0x54b28a
cmp ecx, 0x180e
je case.default.0x54b28a
jmp case.0x545d31.8203
cmp eax, 0x3000
ja case.0x545d31.8203
cmp edi, 0x3000
je case.default.0x54b28a
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x545d31.8203
movzx eax, byte [ecx + 0x54d468]
jmp dword [eax*4 + 0x54d460]
mov dword [esp + 0x14], 1
cmp ecx, 1
jl 0x5448ae
nop dword [eax]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5409c5
movzx ecx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 8], edx
mov ebx, ecx
mov dword [esp + 0x18], ecx
mov eax, ecx
mov edi, ecx
cmp ecx, 0xc0
jb 0x545e5f
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x545d96
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x545e52
test cl, 0x10
jne 0x545db7
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 0x545e52
test cl, 8
jne 0x545de1
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 0x545e52
test cl, 4
jne 0x545e17
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 0x545e52
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov ebx, ecx
mov dword [esp + 0x18], ecx
mov eax, ecx
mov edi, ecx
cmp dword [esp + 0x18], 0x2000
mov edx, ecx
ja 0x545ebb
cmp ebx, 0x2000
je case.0x545ee4.8193
cmp ecx, 0xa0
ja 0x545ea5
je case.0x545ee4.8193
cmp ecx, 9
je case.0x545ee4.8193
cmp ecx, 0x20
jne case.default.0x54b28a
mov edx, dword [esp + 0x14]
inc edx
mov dword [esp + 0x14], edx
cmp edx, dword [esi + 0x90]
jle 0x545d50
jmp 0x5448aa
cmp edx, 0x1680
je case.0x545ee4.8193
cmp ecx, 0x180e
jne case.default.0x54b28a
jmp case.0x545ee4.8193
cmp eax, 0x3000
ja case.default.0x54b28a
cmp edi, 0x3000
je case.0x545ee4.8193
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x54b28a
movzx eax, byte [ecx + 0x54d4d0]
jmp dword [eax*4 + 0x54d4c8]
mov ebx, 1
cmp ecx, ebx
jl 0x5448aa
nop dword [eax + eax]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5409c5
movzx ecx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 8], edx
mov eax, ecx
mov edi, ecx
cmp ecx, 0xc0
jb 0x546003
movzx eax, byte [edx]
and eax, 0x3f
test cl, 0x20
jne 0x545f40
and ecx, 0x1f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x545ffc
test cl, 0x10
jne 0x545f61
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 0x545ffc
test cl, 8
jne 0x545f8b
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 0x545ffc
test cl, 4
jne 0x545fc1
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 0x545ffc
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
mov eax, ecx
cmp eax, 0x85
ja 0x546025
cmp edi, 0x85
je case.default.0x54b28a
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x54601e
jmp dword [ecx*4 + 0x54d530]
sub ecx, 0x2028
je case.default.0x54b28a
sub ecx, 1
je case.default.0x54b28a
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x545f00
jmp 0x5448aa
mov ebx, 1
cmp ecx, ebx
jl 0x5448aa
nop dword [eax]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5409c5
movzx edx, byte [eax]
lea edi, [eax + 1]
mov dword [esi + 8], edi
mov eax, edx
mov ecx, edx
cmp edx, 0xc0
jb 0x546150
movzx ecx, byte [edi]
and ecx, 0x3f
test dl, 0x20
jne 0x5460a2
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x546149
movzx eax, byte [edi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x5460c3
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x546149
test dl, 8
jne 0x5460e6
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 0x546149
test dl, 4
jne 0x546115
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 0x546149
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov ecx, edx
mov eax, edx
cmp eax, 0x85
ja 0x546172
cmp ecx, 0x85
je case.0x54616b.10
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x54b28a
jmp dword [edx*4 + 0x54d540]
sub edx, 0x2028
je case.0x54616b.10
sub edx, 1
jne case.default.0x54b28a
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x546060
jmp 0x5448aa
mov ebx, 1
cmp ecx, ebx
jl 0x5448aa
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x5409c5
movzx edx, byte [eax]
lea edi, [eax + 1]
mov dword [esi + 8], edi
mov eax, edx
cmp edx, 0xc0
jb 0x54628e
movzx ecx, byte [edi]
and ecx, 0x3f
test dl, 0x20
jne 0x5461e2
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x546289
movzx eax, byte [edi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x546203
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x546289
test dl, 8
jne 0x546226
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 0x546289
test dl, 4
jne 0x546255
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 0x546289
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov eax, edx
cmp eax, 0x80
jae 0x5462a2
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
jne case.default.0x54b28a
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x5461a2
jmp 0x5448aa
cmp ecx, 1
jl 0x5448ae
mov edi, 1
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x549d95
movzx edx, byte [ecx]
cmp edx, 0x80
jae case.0x549e8a.14
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
je case.0x549e8a.14
lea eax, [ecx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x5462c2
jmp 0x5448ae
mov edi, 1
cmp ecx, edi
jl 0x5448ae
mov edx, dword [ebp + 0x78]
nop
mov ecx, dword [esi + 8]
cmp ecx, edx
jae 0x549d95
movzx edx, byte [ecx]
cmp edx, 0x80
jae 0x546333
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
jne case.0x549e8a.14
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jae 0x546358
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x546358
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jb 0x546340
inc edi
cmp edi, dword [esi + 0x90]
jle 0x546310
jmp 0x5448ae
cmp ecx, 1
jl 0x5448ae
mov edi, 1
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x549d95
movzx edx, byte [ecx]
cmp edx, 0x80
jae case.0x549e8a.14
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
je case.0x549e8a.14
lea eax, [ecx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x546374
jmp 0x5448ae
mov edi, 1
cmp ecx, edi
jl 0x5448ae
mov edx, dword [ebp + 0x78]
mov ecx, dword [esi + 8]
cmp ecx, edx
jae 0x549d95
movzx edx, byte [ecx]
cmp edx, 0x80
jae 0x5463e3
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
jne case.0x549e8a.14
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jae 0x546408
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x546408
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jb 0x5463f0
inc edi
cmp edi, dword [esi + 0x90]
jle 0x5463c0
jmp 0x5448ae
cmp ecx, 1
jl 0x5448ae
mov edi, 1
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x549d95
movzx edx, byte [ecx]
cmp edx, 0x80
jae case.0x549e8a.14
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
je case.0x549e8a.14
lea eax, [ecx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x546424
jmp 0x5448ae
cmp eax, 0xf
ja case.0x54b208.15
jmp dword [eax*4 + 0x54d550]
mov ebx, 1
cmp ecx, ebx
jl 0x5448aa
nop dword [eax]
mov edx, dword [esi + 8]
mov ecx, dword [ebp + 0x78]
cmp edx, ecx
jae 0x540b20
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x5464c0
push 0
lea eax, [ebp + 0x1c]
push eax
push ecx
push edi
push edx
call fcn.0054f1a0
mov ecx, dword [ebp + 0x78]
add esp, 0x14
test eax, eax
je 0x5464b4
mov eax, 1
jmp 0x5464b6
xor eax, eax
test eax, eax
jne case.default.0x54b28a
jmp 0x5464e7
mov edi, dword [ebp + 0x1c]
mov eax, ecx
sub eax, edi
cmp edx, eax
ja 0x5464e7
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne 0x5464e7
cmp edi, 1
je case.default.0x54b28a
mov al, byte [edx + 1]
cmp al, byte [ebp + 0x35]
je case.default.0x54b28a
mov edi, dword [ebp + 0x88]
test edi, edi
je 0x54651e
mov edx, dword [esi + 8]
lea eax, [edx + 1]
cmp eax, ecx
jb 0x54651e
cmp dword [ebp + 0x18], 0
jne 0x54651e
cmp dword [ebp + 0x1c], 2
jne 0x54651e
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne 0x54651e
mov dword [ebp + 0x64], 1
cmp edi, 1
jg 0x54abdc
inc dword [esi + 8]
inc ebx
cmp ebx, dword [esi + 0x90]
jle 0x546480
jmp 0x5448aa
mov eax, dword [ebp + 0x78]
mov edx, dword [esi + 8]
sub eax, ecx
cmp edx, eax
jbe 0x5459f6
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x549e8a.14
cmp edx, dword [ebp + 0x84]
jmp 0x542dae
mov edx, 1
cmp ecx, edx
jl 0x5448ae
nop dword [eax]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x549d95
mov al, byte [ecx]
inc ecx
movzx eax, al
add eax, 0xfffffff6
mov dword [esi + 8], ecx
cmp eax, 0x7b
ja case.0x549e8a.14
movzx eax, byte [eax + 0x54d5a0]
jmp dword [eax*4 + 0x54d590]
cmp ecx, dword [ebp + 0x78]
jae case.0x546598.10
cmp byte [ecx], 0xa
jne case.0x546598.10
lea eax, [ecx + 1]
mov dword [esi + 8], eax
jmp case.0x546598.10
cmp dword [ebp + 0x68], 0
jne case.0x549e8a.14
inc edx
cmp edx, dword [esi + 0x90]
jle 0x546570
jmp 0x5448ae
cmp ecx, 1
jl 0x5448ae
mov edx, 1
nop word [eax + eax]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x549935
movzx ecx, byte [eax]
inc eax
mov dword [esi + 8], eax
cmp ecx, 9
je case.0x549e8a.14
cmp ecx, 0x20
je case.0x549e8a.14
cmp ecx, 0xa0
je case.0x549e8a.14
inc edx
cmp edx, dword [esi + 0x90]
jle 0x5465e0
jmp 0x5448ae
mov edx, 1
cmp ecx, edx
jl 0x5448ae
nop dword [eax]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x549935
movzx ecx, byte [eax]
inc eax
mov dword [esi + 8], eax
cmp ecx, 9
je 0x546659
cmp ecx, 0x20
je 0x546659
cmp ecx, 0xa0
jne case.0x549e8a.14
inc edx
cmp edx, dword [esi + 0x90]
jle 0x546630
jmp 0x5448ae
cmp ecx, 1
jl 0x5448ae
mov edx, 1
mov edi, edx
nop word [eax + eax]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x549935
mov cl, byte [eax]
inc eax
mov dword [esi + 8], eax
movzx eax, cl
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x5466a6.11
movzx eax, byte [eax + 0x54d624]
mov edx, edi
jmp dword [eax*4 + 0x54d61c]
inc edx
mov edi, edx
cmp edx, dword [esi + 0x90]
jle 0x546680
jmp 0x5448ae
cmp ecx, 1
jl 0x5448ae
mov edx, 1
nop dword [eax + eax]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x549935
mov cl, byte [eax]
inc eax
mov dword [esi + 8], eax
movzx eax, cl
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x549e8a.14
movzx eax, byte [eax + 0x54d6a8]
jmp dword [eax*4 + 0x54d6a0]
inc edx
cmp edx, dword [esi + 0x90]
jle 0x5466d0
jmp 0x5448ae
cmp ecx, 1
jl 0x5448ae
mov edi, 1
nop dword [eax + eax]
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x546543
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
jne case.0x549e8a.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x546720
jmp 0x5448ae
cmp ecx, 1
jl 0x5448ae
mov edi, 1
nop
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x546543
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
je case.0x549e8a.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x546760
jmp 0x5448ae
cmp ecx, 1
jl 0x5448ae
mov edi, 1
nop
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x546543
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
jne case.0x549e8a.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x5467a0
jmp 0x5448ae
cmp ecx, 1
jl 0x5448ae
mov edi, 1
nop
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x546543
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
je case.0x549e8a.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x5467e0
jmp 0x5448ae
cmp ecx, 1
jl 0x5448ae
mov edi, 1
nop
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x546543
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
jne case.0x549e8a.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x546820
jmp 0x5448ae
cmp ecx, 1
jl 0x5448ae
mov edi, 1
nop
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x546543
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
je case.0x549e8a.14
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x90]
jle 0x546860
jmp 0x5448ae
mov dword [esi + 0x84], eax
jmp 0x54b676
mov dword [esi + 0x84], eax
jmp 0x54b844
mov dword [esi + 0x84], eax
jmp 0x54ba0a
mov dword [esi + 0x84], eax
jmp 0x54bbc8
mov dword [esi + 0x84], eax
jmp 0x54bd86
mov dword [esi + 0x84], eax
jmp 0x54c56d
mov dword [esi + 0x84], eax
jmp 0x54c987
mov dword [esi + 0x84], eax
jmp 0x54cbc5
mov dword [esi + 0x84], eax
jmp 0x54cda6
mov dword [esi + 0x84], eax
jmp 0x54c750
cmp dword [esi + 0x7c], 0x16
mov dword [esi + 0x84], eax
je 0x54c0bb
test ebx, ebx
jne 0x54b2fb
jmp 0x549f94
mov eax, dword [esi + 8]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x60]
test eax, eax
js 0x547883
cmp eax, 0xa
ja case.0x54b208.15
jmp dword [eax*4 + 0x54d724]
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge 0x5469b2
nop word [eax + eax]
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x5469c2
movzx ecx, byte [edx]
mov eax, 1
test ebx, ebx
je 0x54699e
cmp ecx, 0xc0
jb 0x54699e
test cl, 0x20
jne 0x546978
mov eax, 2
jmp 0x54699e
test cl, 0x10
jne 0x546984
mov eax, 3
jmp 0x54699e
test cl, 8
jne 0x546990
mov eax, 4
jmp 0x54699e
test cl, 4
mov eax, 0
setne al
add eax, 5
cmp dword [esi + 0x68], 0
jne 0x5469b2
add eax, edx
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x546950
cmp dword [esp + 0x24], 0
jne 0x53f3b3
jmp 0x54c11e
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x5469b2
cmp edx, dword [ebp + 0x84]
jbe 0x5469b2
mov dword [ebp + 0x64], 1
cmp eax, 1
jle 0x5469b2
jmp 0x54cc4a
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x5469b2
nop word [eax + eax]
mov edx, dword [esi + 8]
mov ebx, 1
cmp edx, dword [ebp + 0x78]
jae 0x546b57
cmp dword [esp + 0x28], 0
movzx eax, byte [edx]
mov ecx, eax
mov edi, eax
je 0x546af4
cmp eax, 0xc0
jb 0x546af4
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test al, 0x20
jne 0x546a49
and eax, 0x1f
mov ebx, 2
shl eax, 6
jmp 0x546af0
test al, 0x10
jne 0x546a63
and eax, 0xf
mov ebx, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
jmp 0x546aea
test al, 8
jne 0x546a86
and eax, 7
mov ebx, 4
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x546aea
test al, 4
jne 0x546ab5
and eax, 3
mov ebx, 5
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
jmp 0x546aea
and eax, 1
mov ebx, 6
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
cmp eax, 9
je 0x546b29
cmp eax, 5
je 0x546b29
cmp eax, 8
je 0x546b29
xor eax, eax
jmp 0x546b2e
mov eax, 1
cmp eax, dword [esi + 0x68]
je 0x5469b2
lea eax, [ebx + edx]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x546a00
jmp 0x5469b2
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x5469b2
cmp edx, dword [ebp + 0x84]
jbe 0x5469b2
mov dword [ebp + 0x64], ebx
cmp eax, 1
jle 0x5469b2
jmp 0x5403c7
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x5469b2
nop dword [eax + eax]
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x546cee
cmp dword [esp + 0x28], 0
mov ebx, 1
movzx eax, byte [edx]
mov ecx, eax
mov edi, eax
je 0x546c94
cmp eax, 0xc0
jb 0x546c94
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test al, 0x20
jne 0x546be9
and eax, 0x1f
mov ebx, 2
shl eax, 6
jmp 0x546c90
test al, 0x10
jne 0x546c03
and eax, 0xf
mov ebx, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
jmp 0x546c8a
test al, 8
jne 0x546c26
and eax, 7
mov ebx, 4
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x546c8a
test al, 4
jne 0x546c55
and eax, 3
mov ebx, 5
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
jmp 0x546c8a
and eax, 1
mov ebx, 6
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
mov eax, dword [eax*4 + 0x6a1c68]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je 0x5469b2
lea eax, [ebx + edx]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x546ba0
jmp 0x5469b2
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x5469b2
cmp edx, dword [ebp + 0x84]
jbe 0x5469b2
mov dword [ebp + 0x64], 1
cmp eax, 1
jle 0x5469b2
jmp 0x5403c7
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x5469b2
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x546cee
cmp dword [esp + 0x28], 0
mov ebx, 1
movzx eax, byte [edx]
mov ecx, eax
mov edi, eax
je 0x546e23
cmp eax, 0xc0
jb 0x546e23
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test al, 0x20
jne 0x546d78
and eax, 0x1f
mov ebx, 2
shl eax, 6
jmp 0x546e1f
test al, 0x10
jne 0x546d92
and eax, 0xf
mov ebx, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
jmp 0x546e19
test al, 8
jne 0x546db5
and eax, 7
mov ebx, 4
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x546e19
test al, 4
jne 0x546de4
and eax, 3
mov ebx, 5
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
jmp 0x546e19
and eax, 1
mov ebx, 6
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je 0x5469b2
lea eax, [ebx + edx]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x546d33
jmp 0x5469b2
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x5469b2
nop dword [eax]
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x546cee
cmp dword [esp + 0x28], 0
mov ebx, 1
movzx eax, byte [edx]
mov ecx, eax
mov edi, eax
je 0x546f84
cmp eax, 0xc0
jb 0x546f84
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test al, 0x20
jne 0x546ed9
and eax, 0x1f
mov ebx, 2
shl eax, 6
jmp 0x546f80
test al, 0x10
jne 0x546ef3
and eax, 0xf
mov ebx, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
jmp 0x546f7a
test al, 8
jne 0x546f16
and eax, 7
mov ebx, 4
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x546f7a
test al, 4
jne 0x546f45
and eax, 3
mov ebx, 5
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
jmp 0x546f7a
and eax, 1
mov ebx, 6
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2298]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je 0x5469b2
lea eax, [ebx + edx]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x546e90
jmp 0x5469b2
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x5469b2
nop dword [eax]
mov edx, dword [esi + 8]
mov ebx, 1
cmp edx, dword [ebp + 0x78]
jae 0x546b57
cmp dword [esp + 0x28], 0
movzx eax, byte [edx]
mov ecx, eax
mov edi, eax
je 0x5470e4
cmp eax, 0xc0
jb 0x5470e4
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test al, 0x20
jne 0x547039
and eax, 0x1f
mov ebx, 2
shl eax, 6
jmp 0x5470e0
test al, 0x10
jne 0x547053
and eax, 0xf
mov ebx, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
jmp 0x5470da
test al, 8
jne 0x547076
and eax, 7
mov ebx, 4
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x5470da
test al, 4
jne 0x5470a5
and eax, 3
mov ebx, 5
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
jmp 0x5470da
and eax, 1
mov ebx, 6
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
mov eax, dword [eax*4 + 0x6a1c68]
cmp eax, 1
je 0x54711b
cmp eax, 3
je 0x54711b
xor eax, eax
jmp 0x547120
mov eax, 1
cmp eax, dword [esi + 0x68]
je 0x5469b2
lea eax, [ebx + edx]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x546ff0
jmp 0x5469b2
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x5469b2
nop
mov edi, dword [esi + 8]
mov dword [esp + 0x18], 1
cmp edi, dword [ebp + 0x78]
jae 0x547389
cmp dword [esp + 0x28], 0
movzx edx, byte [edi]
mov dword [esp + 0x10], edx
mov eax, edx
mov ecx, edx
mov dword [esp + 0x1c], edx
mov ebx, edx
je 0x547279
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], edx
cmp edx, 0xc0
jb 0x547279
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x5471c5
and eax, 0x1f
mov dword [esp + 0x18], 2
shl eax, 6
mov edx, ecx
jmp 0x547269
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x5471e3
and edx, 0xf
mov dword [esp + 0x18], 3
shl edx, 6
or edx, ecx
jmp 0x547263
and eax, 0x3f
test dl, 8
jne 0x547206
and edx, 7
mov dword [esp + 0x18], 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x547263
test dl, 4
jne 0x547232
and edx, 3
mov dword [esp + 0x18], 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x547263
and edx, 1
mov dword [esp + 0x18], 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov dword [esp + 0x10], edx
mov eax, edx
mov ecx, edx
mov dword [esp + 0x1c], edx
mov ebx, edx
cmp dword [esp + 0x10], 0x20
ja 0x547298
cmp eax, 0x20
je case.0x547376.8193
lea eax, [edx - 9]
cmp eax, 4
ja case.0x547376.8203
jmp dword [eax*4 + 0x54d750]
cmp edx, 0x2000
ja 0x54734e
cmp ecx, 0x2000
je case.0x547376.8193
cmp edx, 0x1680
ja 0x547346
je case.0x547376.8193
mov eax, edx
sub eax, 0x85
je case.0x547376.8193
sub eax, 0x1b
je case.0x547376.8193
mov eax, edx
test eax, eax
jns 0x5472e1
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x6a3918]
shl eax, 7
and edx, 0x8000007f
jns 0x5472fb
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
cmp dword [eax*4 + 0x6a1c68], 6
sete cl
cmp ecx, dword [esi + 0x68]
je 0x5469b2
mov eax, dword [esp + 0x18]
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x547160
jmp 0x5469b2
cmp edx, 0x180e
jmp 0x5472d2
cmp ebx, 0x3000
ja case.0x547376.8203
cmp dword [esp + 0x1c], 0x3000
je case.0x547376.8193
lea eax, [edx - 0x2001]
cmp eax, 0x5e
ja case.0x547376.8203
movzx eax, byte [eax + 0x54d76c]
jmp dword [eax*4 + 0x54d764]
cmp dword [esi + 0x68], 0
jne 0x5469b2
jmp 0x547323
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x5469b2
cmp edi, dword [ebp + 0x84]
jmp 0x546d02
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x5469b2
nop dword [eax + eax]
mov edx, dword [esi + 8]
mov dword [esp + 0x18], 1
cmp edx, dword [ebp + 0x78]
jae 0x546cee
cmp dword [esp + 0x28], 0
movzx eax, byte [edx]
mov ecx, eax
mov edi, eax
mov ebx, eax
je 0x5474ca
cmp eax, 0xc0
jb 0x5474ca
movzx ecx, byte [edx + 1]
and ecx, 0x3f
test al, 0x20
jne 0x547411
and eax, 0x1f
mov dword [esp + 0x18], 2
shl eax, 6
jmp 0x5474c4
test al, 0x10
jne 0x54742e
and eax, 0xf
mov dword [esp + 0x18], 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
jmp 0x5474be
test al, 8
jne 0x547454
and eax, 7
mov dword [esp + 0x18], 4
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x5474be
test al, 4
jne 0x547486
and eax, 3
mov dword [esp + 0x18], 5
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
jmp 0x5474be
and eax, 1
mov dword [esp + 0x18], 6
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov edi, ecx
mov ebx, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
mov eax, dword [eax*4 + 0x6a1c68]
cmp eax, 1
je 0x547506
cmp eax, 3
je 0x547506
cmp ebx, 0x5f
je 0x547506
xor eax, eax
jmp 0x54750b
mov eax, 1
cmp eax, dword [esi + 0x68]
je 0x5469b2
mov eax, dword [esp + 0x18]
add eax, edx
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x5473c0
jmp 0x5469b2
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x5469b2
nop dword [eax]
mov edi, dword [esi + 8]
mov ebx, 1
cmp edi, dword [ebp + 0x78]
jae 0x547693
cmp dword [esp + 0x28], 0
movzx edx, byte [edi]
mov ecx, edx
je 0x547638
cmp edx, 0xc0
jb 0x547638
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x54759d
mov eax, edx
mov ebx, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x547634
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x5475b8
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x54762e
and eax, 0x3f
test dl, 8
jne 0x5475d8
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x54762e
test dl, 4
jne 0x547601
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 0x54762e
and edx, ebx
mov ebx, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov eax, dword [esi + 0x64]
cmp ecx, dword [eax*4 + 0x6a2158]
lea eax, [eax*4 + 0x6a2158]
jb 0x54765d
mov ecx, dword [eax]
nop dword [eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x547687
mov ecx, dword [eax]
cmp edx, ecx
jae 0x547650
cmp dword [esi + 0x68], 0
je 0x5469b2
lea eax, [ebx + edi]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x547550
jmp 0x5469b2
cmp dword [esi + 0x68], 0
jne 0x5469b2
jmp 0x547667
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x5469b2
cmp edi, dword [ebp + 0x84]
jmp 0x546b6b
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x5469b2
mov edi, dword [esi + 8]
mov dword [esp + 0x18], 1
cmp edi, dword [ebp + 0x78]
jae 0x54785d
cmp dword [esp + 0x28], 0
movzx edx, byte [edi]
mov eax, edx
mov dword [esp + 0x10], edx
mov ecx, edx
mov ebx, edx
je 0x5477ff
mov dword [esp + 0x10], edx
cmp edx, 0xc0
jb 0x5477ff
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x54772b
and eax, 0x1f
mov dword [esp + 0x18], 2
shl eax, 6
mov edx, ecx
or edx, eax
mov eax, edx
mov dword [esp + 0x10], edx
mov ecx, edx
mov ebx, edx
jmp 0x5477ff
movzx eax, byte [edi + 2]
and eax, 0x3f
test dl, 0x10
jne 0x54775b
and edx, 0xf
mov dword [esp + 0x18], 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
mov eax, edx
mov dword [esp + 0x10], edx
mov ecx, edx
mov ebx, edx
jmp 0x5477ff
test dl, 8
jne 0x547790
and edx, 7
mov dword [esp + 0x18], 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
mov dword [esp + 0x10], edx
mov ecx, edx
mov ebx, edx
jmp 0x5477ff
test dl, 4
jne 0x5477bc
and edx, 3
mov dword [esp + 0x18], 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x5477ed
and edx, 1
mov dword [esp + 0x18], 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
mov dword [esp + 0x10], eax
mov ebx, eax
mov ecx, eax
cmp eax, 0x24
je 0x54782c
cmp ecx, 0x40
je 0x54782c
cmp ebx, 0x60
je 0x54782c
cmp dword [esp + 0x10], 0xa0
jb 0x547820
cmp edx, 0xd7ff
jbe 0x54782c
cmp edx, 0xe000
jae 0x54782c
xor eax, eax
jmp 0x547831
mov eax, 1
cmp eax, dword [esi + 0x68]
je 0x5469b2
mov eax, dword [esp + 0x18]
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x5476c2
jmp 0x5469b2
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x5469b2
cmp edi, dword [ebp + 0x84]
jbe 0x5469b2
mov dword [ebp + 0x64], 1
jmp 0x546b74
mov eax, dword [esi + 0x7c]
cmp eax, 0x16
jne 0x547bf9
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x547baa
nop word [eax + eax]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x547b88
cmp dword [esp + 0x28], 0
lea edi, [ecx + 1]
movzx eax, byte [ecx]
mov edx, edi
mov dword [esi + 8], edi
mov ecx, eax
mov ebx, eax
mov dword [esp + 0x18], edi
je 0x5479ba
mov dword [esp + 0x18], edi
cmp eax, 0xc0
jb 0x5479ba
test al, 0x20
jne 0x5478fb
movzx eax, byte [edi]
lea edx, [edi + 1]
and ecx, 0x1f
jmp 0x5479a9
test al, 0x10
jne 0x547919
movzx eax, byte [edi]
lea edx, [edi + 2]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
jmp 0x5479a9
test al, 8
jne 0x547940
movzx eax, byte [edi]
lea edx, [edi + 3]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
jmp 0x5479a9
test al, 4
movzx eax, byte [edi]
jne 0x547973
and ecx, 3
lea edx, [edi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
jmp 0x5479a9
and ecx, 1
lea edx, [edi + 5]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov dword [esi + 8], edx
mov ebx, ecx
mov dword [esp + 0x18], edx
shr ecx, 7
and ebx, 0x7f
movzx eax, byte [ecx + 0x6a3918]
mov ecx, edx
shl eax, 7
add eax, ebx
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a229a]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x78]
cmp dword [esp + 0x18], eax
jae 0x547b4b
mov edi, edx
mov dword [esp + 0x18], eax
nop word [eax + eax]
cmp dword [esp + 0x28], 0
mov ebx, 1
movzx edx, byte [edi]
mov ecx, edx
je 0x547ad9
cmp edx, 0xc0
jb 0x547ad9
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x547a41
mov eax, edx
mov ebx, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x547ad5
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x547a59
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x547acf
and eax, 0x3f
test dl, 8
jne 0x547a79
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x547acf
test dl, 4
jne 0x547aa2
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 0x547acf
and edx, ebx
mov ebx, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov ebp, dword [esp + 0x10]
and ecx, 0x7f
shr edx, 7
mov dword [esp + 0x1c], edi
movzx eax, byte [edx + 0x6a3918]
mov edx, edi
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6a5b18]
movzx ecx, byte [eax*8 + 0x6a229a]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, 1
shl eax, cl
test dword [ebp*4 + 0x6a1ce0], eax
mov ebp, dword [esp + 0xb0]
je 0x547b43
lea edx, [ebx + edi]
mov dword [esp + 0x10], ecx
mov dword [esi + 8], edx
mov edi, edx
mov eax, dword [ebp + 0x78]
mov ecx, edx
mov dword [esp + 0x18], eax
cmp edx, eax
jb 0x547a00
jmp 0x547b4b
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edi, dword [ebp + 0x88]
test edi, edi
je 0x547b71
cmp edx, eax
jb 0x547b71
cmp ecx, dword [ebp + 0x84]
jbe 0x547b71
mov dword [ebp + 0x64], 1
cmp edi, 1
jg 0x54abdc
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x5478b0
jmp 0x547baa
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x547baa
cmp ecx, dword [ebp + 0x84]
jbe 0x547baa
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x5403c7
cmp dword [esp + 0x24], 0
jne 0x53f3b3
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x53f340
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x547bea
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x2d
jmp 0x54a043
add eax, 0xfffffffa
test ebx, ebx
je 0x548a0f
cmp eax, 0xf
ja case.0x54b208.15
jmp dword [eax*4 + 0x54d7cc]
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x5489ff
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x78]
cmp ecx, edx
jae 0x547cf3
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x547c68
push dword [esp + 0x28]
lea eax, [ebp + 0x1c]
push eax
push edx
push edi
push ecx
call fcn.0054f1a0
mov ecx, dword [ebp + 0x18]
add esp, 0x14
test eax, eax
je 0x547c5c
mov eax, 1
jmp 0x547c5e
xor eax, eax
test eax, eax
jne 0x5489ff
jmp 0x547c8f
mov edi, dword [ebp + 0x1c]
sub edx, edi
cmp ecx, edx
ja 0x547c8d
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x547c8d
cmp edi, 1
je 0x5489ff
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je 0x5489ff
xor ecx, ecx
mov edi, dword [ebp + 0x88]
test edi, edi
je 0x547cc5
mov edx, dword [esi + 8]
lea eax, [edx + 1]
cmp eax, dword [ebp + 0x78]
jb 0x547cc5
test ecx, ecx
jne 0x547cc5
cmp dword [ebp + 0x1c], 2
jne 0x547cc5
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne 0x547cc5
mov dword [ebp + 0x64], 1
cmp edi, 1
jg 0x54abdc
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x547ce1
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x547ce1
inc ecx
mov dword [esi + 8], ecx
cmp ecx, dword [ebp + 0x78]
jb 0x547cd0
inc ebx
cmp ebx, dword [esi + 0x8c]
jl 0x547c26
jmp 0x5489ff
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x5489ff
cmp ecx, dword [ebp + 0x84]
jbe 0x5489ff
mov dword [ebp + 0x64], 1
cmp eax, 1
jle 0x5489ff
jmp 0x5403c7
mov eax, dword [esi + 0x8c]
cmp eax, 0x7fffffff
jge 0x547d78
mov edi, dword [esi + 0x90]
cmp edi, eax
jge 0x5489ff
mov edx, dword [ebp + 0x78]
mov eax, dword [esi + 8]
cmp eax, edx
jae 0x547d7e
inc eax
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jae 0x547d6a
mov ecx, dword [esi + 8]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x547d6a
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x78]
cmp eax, edx
jb 0x547d52
inc edi
cmp edi, dword [esi + 0x8c]
jl 0x547d40
jmp 0x5489ff
mov eax, dword [ebp + 0x78]
mov dword [esi + 8], eax
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je 0x5489ff
cmp eax, dword [ebp + 0x84]
jbe 0x5489ff
mov dword [ebp + 0x64], 1
cmp ecx, 1
jle 0x5489ff
jmp 0x54cc4a
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 0x547df9
mov dword [esi + 8], edx
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x5489ff
cmp edx, dword [ebp + 0x84]
jbe 0x5489ff
mov dword [ebp + 0x64], 1
cmp eax, 1
jle 0x5489ff
jmp 0x54cc4a
lea eax, [ecx + edi]
mov dword [esi + 8], eax
jmp 0x5489ff
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x5489ff
nop word [eax + eax]
mov edi, dword [esi + 8]
mov dword [esp + 0x18], 1
cmp edi, dword [ebp + 0x78]
jae 0x547f94
movzx edx, byte [edi]
mov dword [esp + 0x10], edx
mov ecx, edx
mov eax, edx
mov ebx, edx
cmp edx, 0xc0
jb 0x547f1e
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x547e6e
and eax, 0x1f
mov dword [esp + 0x18], 2
shl eax, 6
mov edx, ecx
jmp 0x547f12
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x547e8c
and edx, 0xf
mov dword [esp + 0x18], 3
shl edx, 6
or edx, ecx
jmp 0x547f0c
and eax, 0x3f
test dl, 8
jne 0x547eaf
and edx, 7
mov dword [esp + 0x18], 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x547f0c
test dl, 4
jne 0x547edb
and edx, 3
mov dword [esp + 0x18], 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x547f0c
and edx, 1
mov dword [esp + 0x18], 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov dword [esp + 0x10], edx
mov eax, edx
mov ebx, edx
cmp ecx, 0xd
jne 0x547f3a
lea eax, [edi + 1]
mov dword [esi + 8], eax
cmp eax, dword [ebp + 0x78]
jae 0x5489ff
cmp byte [eax], 0xa
jne 0x547f7a
inc eax
jmp 0x547f77
cmp eax, 0xa
je 0x547f71
cmp dword [ebp + 0x68], 0
jne 0x5489ff
cmp ebx, 0xb
je 0x547f71
cmp dword [esp + 0x10], 0xc
je 0x547f71
cmp edx, 0x85
je 0x547f71
cmp edx, 0x2028
je 0x547f71
cmp edx, 0x2029
jne 0x5489ff
mov eax, dword [esp + 0x18]
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x547e20
jmp 0x5489ff
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x5489ff
cmp edi, dword [ebp + 0x84]
jmp 0x547d07
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x5489ff
nop dword [eax]
nop word [eax + eax]
mov edi, dword [esi + 8]
mov dword [esp + 0x18], 1
cmp edi, dword [ebp + 0x78]
jae 0x547f94
movzx edx, byte [edi]
mov dword [esp + 0x10], edx
mov ebx, edx
mov eax, edx
mov ecx, edx
cmp edx, 0xc0
jb 0x5480ca
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x54801a
and eax, 0x1f
mov dword [esp + 0x18], 2
shl eax, 6
mov edx, ecx
jmp 0x5480be
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x548038
and edx, 0xf
mov dword [esp + 0x18], 3
shl edx, 6
or edx, ecx
jmp 0x5480b8
and eax, 0x3f
test dl, 8
jne 0x54805b
and edx, 7
mov dword [esp + 0x18], 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x5480b8
test dl, 4
jne 0x548087
and edx, 3
mov dword [esp + 0x18], 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x5480b8
and edx, 1
mov dword [esp + 0x18], 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov dword [esp + 0x10], edx
mov ebx, edx
mov eax, edx
mov ecx, edx
cmp dword [esp + 0x10], 0x2000
ja 0x54813a
cmp ebx, 0x2000
je case.0x54815b.8193
cmp edx, 0xa0
ja 0x54812a
je case.0x54815b.8193
cmp edx, 9
je case.0x54815b.8193
cmp edx, 0x20
je case.0x54815b.8193
xor ecx, ecx
xor eax, eax
cmp dword [esi + 0x7c], 0x12
sete al
cmp ecx, eax
je 0x5489ff
mov eax, dword [esp + 0x18]
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x547fd0
jmp 0x5489ff
cmp edx, 0x1680
je case.0x54815b.8193
cmp edx, 0x180e
jmp 0x5480f2
cmp eax, 0x3000
ja case.0x54815b.8203
cmp ecx, 0x3000
je case.0x54815b.8193
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x54815b.8203
movzx eax, byte [edx + 0x54d814]
jmp dword [eax*4 + 0x54d80c]
mov ecx, 1
jmp 0x5480f6
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x5489ff
nop
mov edi, dword [esi + 8]
mov ebx, 1
cmp edi, dword [ebp + 0x78]
jae 0x5482c1
movzx edx, byte [edi]
mov eax, edx
mov ecx, edx
cmp edx, 0xc0
jb 0x54825c
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x5481c2
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ebx, 2
jmp 0x548256
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x5481da
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x548250
and eax, 0x3f
test dl, 8
jne 0x5481fa
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x548250
test dl, 4
jne 0x548223
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 0x548250
and edx, ebx
mov ebx, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
mov ecx, edx
cmp eax, 0x85
ja 0x54827a
cmp ecx, 0x85
je case.0x548273.10
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x548273
jmp dword [edx*4 + 0x54d874]
sub edx, 0x2028
je case.0x548273.10
sub edx, 1
je case.0x548273.10
xor ecx, ecx
jmp 0x548290
mov ecx, 1
xor eax, eax
cmp dword [esi + 0x7c], 0x14
sete al
cmp ecx, eax
je 0x5489ff
lea eax, [ebx + edi]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x548180
jmp 0x5489ff
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x5489ff
cmp edi, dword [ebp + 0x84]
jbe 0x5489ff
mov dword [ebp + 0x64], ebx
jmp 0x547d14
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x5489ff
nop dword [eax]
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x547f94
movzx edx, byte [edi]
mov ebx, 1
mov eax, ebx
mov ecx, edx
cmp edx, 0xc0
jb 0x5483f3
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x548344
mov eax, edx
mov ebx, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x5483ed
test dl, 0x10
jne 0x54835f
movzx eax, byte [edi + 2]
and edx, 0xf
shl edx, 6
mov ebx, 3
or edx, ecx
jmp 0x5483e7
test dl, 8
jne 0x548383
movzx eax, byte [edi + 2]
and edx, 7
shl edx, 6
and eax, 0x3f
or edx, ecx
mov ebx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x5483e7
test dl, 4
jne 0x5483b3
movzx eax, byte [edi + 2]
and edx, 3
shl edx, 6
and eax, 0x3f
or edx, ecx
mov ebx, 5
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x5483e7
and edx, eax
mov ebx, 6
movzx eax, byte [edi + 2]
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, ebx
mov ecx, edx
cmp ecx, 0x100
jae 0x54840a
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
jne 0x5489ff
mov eax, ebx
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x548300
jmp 0x5489ff
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x5489ff
nop dword [eax + eax]
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x547f94
movzx edx, byte [edi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x548519
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x548480
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x548515
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x548498
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x54850f
and eax, 0x3f
test dl, 8
jne 0x5484b8
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x54850f
test dl, 4
jne 0x5484e1
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 0x54850f
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
cmp eax, 0x100
jae 0x5489ff
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
je 0x5489ff
lea eax, [ecx + edi]
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x548440
jmp 0x5489ff
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x5489ff
nop
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x547f94
movzx edx, byte [edi]
mov ebx, 1
mov eax, ebx
mov ecx, edx
cmp edx, 0xc0
jb 0x548653
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x5485a4
mov eax, edx
mov ebx, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x54864d
test dl, 0x10
jne 0x5485bf
movzx eax, byte [edi + 2]
and edx, 0xf
shl edx, 6
mov ebx, 3
or edx, ecx
jmp 0x548647
test dl, 8
jne 0x5485e3
movzx eax, byte [edi + 2]
and edx, 7
shl edx, 6
and eax, 0x3f
or edx, ecx
mov ebx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x548647
test dl, 4
jne 0x548613
movzx eax, byte [edi + 2]
and edx, 3
shl edx, 6
and eax, 0x3f
or edx, ecx
mov ebx, 5
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x548647
and edx, eax
mov ebx, 6
movzx eax, byte [edi + 2]
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, ebx
mov ecx, edx
cmp ecx, 0x100
jae 0x54866a
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
jne 0x5489ff
mov eax, ebx
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x548560
jmp 0x5489ff
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x5489ff
nop dword [eax + eax]
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x547f94
movzx edx, byte [edi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x548779
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x5486e0
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x548775
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x5486f8
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x54876f
and eax, 0x3f
test dl, 8
jne 0x548718
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x54876f
test dl, 4
jne 0x548741
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 0x54876f
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
cmp eax, 0x100
jae 0x5489ff
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
je 0x5489ff
lea eax, [ecx + edi]
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x5486a0
jmp 0x5489ff
mov eax, dword [esi + 0x90]
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jge 0x5489ff
nop
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x547f94
movzx edx, byte [edi]
mov ebx, 1
mov eax, ebx
mov ecx, edx
cmp edx, 0xc0
jb 0x5488b3
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x548804
mov eax, edx
mov ebx, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x5488ad
test dl, 0x10
jne 0x54881f
movzx eax, byte [edi + 2]
and edx, 0xf
shl edx, 6
mov ebx, 3
or edx, ecx
jmp 0x5488a7
test dl, 8
jne 0x548843
movzx eax, byte [edi + 2]
and edx, 7
shl edx, 6
and eax, 0x3f
or edx, ecx
mov ebx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x5488a7
test dl, 4
jne 0x548873
movzx eax, byte [edi + 2]
and edx, 3
shl edx, 6
and eax, 0x3f
or edx, ecx
mov ebx, 5
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x5488a7
and edx, eax
mov ebx, 6
movzx eax, byte [edi + 2]
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, ebx
mov ecx, edx
cmp ecx, 0x100
jae 0x5488ca
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
jne 0x5489ff
mov eax, ebx
add eax, edi
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x8c]
jl 0x5487c0
jmp 0x5489ff
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge 0x5489ff
nop dword [eax + eax]
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x547f94
movzx edx, byte [edi]
mov ecx, 1
mov eax, edx
cmp edx, 0xc0
jb 0x5489dc
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x548940
and eax, 0x1f
mov edx, ecx
shl eax, 6
mov ecx, 2
jmp 0x5489d8
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x54895b
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x5489d2
and eax, 0x3f
test dl, 8
jne 0x54897b
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x5489d2
test dl, 4
jne 0x5489a4
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 0x5489d2
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov eax, edx
cmp eax, 0x100
jae 0x5489ff
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
je 0x5489ff
lea eax, [ecx + edi]
inc ebx
mov dword [esi + 8], eax
cmp ebx, dword [esi + 0x8c]
jl 0x548900
cmp dword [esp + 0x24], 0
jne 0x53f3b3
jmp 0x54b585
cmp eax, 0xf
ja case.0x54b208.15
jmp dword [eax*4 + 0x54d884]
mov ebx, dword [esi + 0x90]
cmp ebx, dword [esi + 0x8c]
jge case.0x548cf0.10
mov edx, dword [esi + 8]
mov ecx, dword [ebp + 0x78]
cmp edx, ecx
jae 0x548aeb
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x548a78
push 0
lea eax, [ebp + 0x1c]
push eax
push ecx
push edi
push edx
call fcn.0054f1a0
mov ecx, dword [ebp + 0x78]
add esp, 0x14
test eax, eax
je 0x548a6c
mov eax, 1
jmp 0x548a6e
xor eax, eax
test eax, eax
jne case.0x548cf0.10
jmp 0x548a9f
mov edi, dword [ebp + 0x1c]
mov eax, ecx
sub eax, edi
cmp edx, eax
ja 0x548a9f
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne 0x548a9f
cmp edi, 1
je case.0x548cf0.10
mov al, byte [edx + 1]
cmp al, byte [ebp + 0x35]
je case.0x548cf0.10
mov edi, dword [ebp + 0x88]
test edi, edi
je 0x548ad6
mov edx, dword [esi + 8]
lea eax, [edx + 1]
cmp eax, ecx
jb 0x548ad6
cmp dword [ebp + 0x18], 0
jne 0x548ad6
cmp dword [ebp + 0x1c], 2
jne 0x548ad6
mov al, byte [edx]
cmp al, byte [ebp + 0x34]
jne 0x548ad6
mov dword [ebp + 0x64], 1
cmp edi, 1
jg 0x54abdc
inc dword [esi + 8]
inc ebx
cmp ebx, dword [esi + 0x8c]
jl 0x548a31
jmp case.0x548cf0.10
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x548cf0.10
cmp edx, dword [ebp + 0x84]
jbe case.0x548cf0.10
mov dword [ebp + 0x64], 1
cmp eax, 1
jle case.0x548cf0.10
jmp 0x5403c7
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 0x548b66
mov dword [esi + 8], edx
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x548cf0.10
cmp edx, dword [ebp + 0x84]
jbe case.0x548cf0.10
mov dword [ebp + 0x64], 1
cmp eax, 1
jle case.0x548cf0.10
jmp 0x54cc4a
lea eax, [ecx + edi]
mov dword [esi + 8], eax
jmp case.0x548cf0.10
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge case.0x548cf0.10
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x548be2
mov al, byte [ecx]
cmp al, 0xd
jne 0x548ba8
lea eax, [ecx + 1]
mov dword [esi + 8], eax
cmp eax, dword [ebp + 0x78]
jae case.0x548cf0.10
cmp byte [eax], 0xa
jne 0x548bd4
inc eax
jmp 0x548bd1
cmp al, 0xa
je 0x548bce
cmp dword [ebp + 0x68], 0
jne case.0x548cf0.10
cmp al, 0xb
je 0x548bce
cmp al, 0xc
je 0x548bce
cmp al, 0x85
jne case.0x548cf0.10
lea eax, [ecx + 1]
mov dword [esi + 8], eax
inc edx
cmp edx, dword [esi + 0x8c]
jl 0x548b83
jmp case.0x548cf0.10
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x548cf0.10
cmp ecx, dword [ebp + 0x84]
jmp 0x548b4b
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge case.0x548cf0.10
nop dword [eax]
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x548c47
mov cl, byte [eax]
cmp cl, 9
je case.0x548cf0.10
cmp cl, 0x20
je case.0x548cf0.10
cmp cl, 0xa0
je case.0x548cf0.10
inc eax
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x548c10
jmp case.0x548cf0.10
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x548cf0.10
cmp eax, dword [ebp + 0x84]
jbe case.0x548cf0.10
mov dword [ebp + 0x64], 1
cmp ecx, 1
jle case.0x548cf0.10
jmp 0x54cc4a
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge case.0x548cf0.10
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jae 0x548c47
mov cl, byte [eax]
cmp cl, 9
je 0x548ca9
cmp cl, 0x20
je 0x548ca9
cmp cl, 0xa0
jne case.0x548cf0.10
inc eax
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x548c88
jmp case.0x548cf0.10
mov ecx, dword [esi + 0x90]
cmp ecx, dword [esi + 0x8c]
jge case.0x548cf0.10
mov edi, ecx
nop
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x548b37
movzx eax, byte [edx]
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x548cf0.11
movzx eax, byte [eax + 0x54d8cc]
mov ecx, edi
jmp dword [eax*4 + 0x54d8c4]
lea eax, [edx + 1]
inc ecx
mov dword [esi + 8], eax
mov edi, ecx
cmp ecx, dword [esi + 0x8c]
jl 0x548cd0
jmp case.0x548cf0.10
mov edx, dword [esi + 0x90]
cmp edx, dword [esi + 0x8c]
jge case.0x548cf0.10
nop
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jae 0x548be2
movzx eax, byte [ecx]
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x548cf0.10
movzx eax, byte [eax + 0x54d950]
jmp dword [eax*4 + 0x54d948]
lea eax, [ecx + 1]
inc edx
mov dword [esi + 8], eax
cmp edx, dword [esi + 0x8c]
jl 0x548d20
jmp case.0x548cf0.10
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge case.0x548cf0.10
nop
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x548b37
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
jne case.0x548cf0.10
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x548d70
jmp case.0x548cf0.10
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge case.0x548cf0.10
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x548b37
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
je case.0x548cf0.10
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x548db2
jmp case.0x548cf0.10
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge case.0x548cf0.10
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x548b37
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
jne case.0x548cf0.10
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x548df4
jmp case.0x548cf0.10
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge case.0x548cf0.10
nop word [eax + eax]
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x548b37
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
je case.0x548cf0.10
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x548e40
jmp case.0x548cf0.10
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge case.0x548cf0.10
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x548b37
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
jne case.0x548cf0.10
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x548e82
jmp case.0x548cf0.10
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x8c]
jge case.0x548cf0.10
nop dword [eax]
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jae 0x548ee5
movzx ecx, byte [edx]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
je case.0x548cf0.10
lea eax, [edx + 1]
inc edi
mov dword [esi + 8], eax
cmp edi, dword [esi + 0x8c]
jl 0x548ec0
jmp case.0x548cf0.10
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x548cf0.10
cmp edx, dword [ebp + 0x84]
jbe case.0x548cf0.10
mov dword [ebp + 0x64], 1
cmp eax, 1
jg 0x54cc4a
cmp dword [esp + 0x24], 0
jne 0x53f3b3
jmp 0x54a004
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54cf2f
mov edi, 0xfffffffb
mov ebx, dword [esp + 0x28]
mov eax, dword [esi + 0x130]
dec eax
cmp eax, 0x42
ja case.default.0x548f44
jmp dword [eax*4 + 0x54d9cc]
cmp edi, 0xfffffc1b
je 0x54902e
cmp edi, 0xfffffc20
jne 0x548f99
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add ecx, edx
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae case.default.0x54945c
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x548f92
cmp byte [ecx], 0x77
jne case.default.0x54945c
xor edi, edi
jmp 0x548fa1
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0xa0]
mov dword [ebp + 0x90], eax
mov ecx, dword [esi + 0xc]
movzx edx, byte [ecx + 1]
movzx eax, byte [ecx + 2]
shl edx, 8
or edx, eax
add edx, ecx
mov dword [esi + 0xc], edx
mov eax, dword [esi + 0x28]
mov dword [ebp + 0xac], eax
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
jne 0x54902e
cmp dword [esi + 0x9c], 0x88
jb 0x548fed
mov dword [ebp + 0x98], 2
mov edx, dword [esi + 4]
test edx, edx
jne 0x549016
push 0x134
call dword [0x7deac8]
mov edx, eax
add esp, 4
test edx, edx
je 0x54cbe8
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 0x549658
mov edx, dword [esi + 0x98]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0xa4]
mov dword [ecx + edx*4], eax
mov edx, dword [esi + 0x98]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0xa8]
mov dword [ecx + edx*4 + 4], eax
mov edx, dword [ebp + 0x10]
sub edx, dword [esi + 0x94]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0xac]
mov dword [ecx + edx*4], eax
mov eax, dword [esi]
mov esi, eax
test eax, eax
jne 0x548f34
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret
cmp edi, 0xfffffc20
jne 0x54914a
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add ecx, edx
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae 0x5491a4
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x5490c0
cmp byte [ecx], 0x77
jne 0x5491a4
mov ecx, dword [esi + 0xc]
movzx edx, byte [ecx + 1]
movzx eax, byte [ecx + 2]
shl edx, 8
or edx, eax
add edx, ecx
mov dword [esi + 0xc], edx
mov eax, dword [esi + 0x28]
mov dword [ebp + 0xac], eax
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
jne case.0x549e8a.14
mov eax, dword [esi + 0xa0]
mov dword [ebp + 0x90], eax
mov eax, dword [esi + 0x9c]
cmp eax, 0x88
jae 0x5491b5
cmp eax, 0x81
je 0x5491b5
cmp dword [ebp + 0x6c], 0
jne 0x5491bf
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 0x5491bf
movzx eax, byte [edx]
movzx eax, byte [eax + 0x6a1b50]
add eax, edx
mov dword [esi + 0xc], eax
jmp 0x53f340
test edi, edi
je 0x5490c0
cmp edi, 0xfffffc1b
jne 0x5491a4
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x81
je 0x549199
cmp byte [eax], 0x77
mov ebx, eax
jne 0x549188
mov edx, eax
nop dword [eax + eax]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov ebx, eax
mov edx, eax
cmp byte [eax], 0x77
je 0x549170
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov eax, ebx
sub eax, ecx
xor ecx, ecx
cmp dword [ebp + 0xb4], eax
cmove edi, ecx
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x549074
jmp 0x548f30
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 0x5491fd
push 0x134
call dword [0x7deac8]
mov edx, eax
add esp, 4
test edx, edx
je 0x54cbe8
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 0x549658
cmp edi, 1
jne 0x549294
mov eax, dword [ebp + 0x8c]
cmp eax, dword [esi + 0x14]
jle 0x549230
mov dword [esi + 0x14], eax
mov dword [esi + 0x58], 1
mov edx, dword [esi + 0xc]
cmp byte [edx], 0x92
jne 0x549247
inc edx
mov dword [esi + 0xc], edx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esi + 0xc], edx
cmp byte [edx], 0x77
jne 0x549279
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 0x549262
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi + 0xc]
movzx eax, byte [eax + 0x6a1b50]
sub ecx, eax
add ecx, 3
mov dword [esi + 0xc], ecx
jmp 0x53f85c
test edi, edi
je 0x53f85c
cmp edi, 0xfffffc20
je 0x53f85c
jmp case.default.0x54945c
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0xc]
add eax, ecx
mov dword [esi + 0xc], eax
cmp dword [esi + 0x58], 0
jne 0x5492cc
cmp byte [eax - 3], 0x77
jne 0x53f3b3
cmp dword [esi + 0x9c], 0x8c
jne 0x53f340
mov dword [ebp + 0x98], 2
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54930f
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x31
jmp 0x54a043
cmp edi, 1
je 0x5493d0
cmp edi, 0xfffffc19
je 0x5493d0
mov eax, dword [esi + 0x28]
mov dword [ebp + 0xac], eax
cmp edi, 0xfffffc20
jne 0x549376
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add ecx, edx
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae case.default.0x54945c
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x54937e
cmp byte [ecx], 0x77
jmp 0x549378
test edi, edi
jne case.default.0x54945c
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov dword [esi + 0xc], eax
cmp byte [eax], 0x77
jne 0x5493d6
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x5493c1
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 4
jmp 0x549515
mov eax, dword [ebp + 0x7c]
mov dword [esi + 0x10], eax
mov edx, dword [esi + 0xc]
cmp byte [edx], 0x78
je case.0x549e8a.14
cmp dword [esi + 0x58], 0
jne 0x5494b2
nop dword [eax]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov edx, eax
mov dword [esi + 0xc], eax
cmp byte [edx], 0x77
je 0x5493f0
add eax, 3
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x8c]
mov dword [esi + 0x14], eax
jmp 0x53f3b3
mov eax, dword [esi + 0x28]
mov dword [ebp + 0xac], eax
cmp edi, 0xfffffc1c
jg 0x54943f
je case.0x54945c.995
cmp edi, 0xfffffc19
jmp 0x54954c
test edi, edi
jg 0x549547
je 0x5494c8
lea eax, [edi + 0x3e3]
cmp eax, 3
ja case.default.0x54945c
jmp dword [eax*4 + 0x54dad8]
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add ecx, edx
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae case.0x54945c.995
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x5494c8
cmp byte [ecx], 0x77
je 0x5494c8
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 0x549491
cmp dword [esi + 0x58], 0
je 0x549757
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54ce82
mov edi, 1
jmp 0x548f30
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esi + 0xc], edx
cmp byte [edx], 0x77
jne 0x5494a8
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54950b
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
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 0x53f330
mov eax, edi
sub eax, 1
je case.0x549e8a.14
jmp case.default.0x54945c
mov eax, dword [esi + 0x48]
shl eax, 2
push eax
push dword [esi + 0x44]
push dword [ebp + 0xc]
call fcn.0052d690
mov eax, dword [esi + 0x4c]
lea ecx, [esi + 0x3c]
mov dword [ebp + 0x90], eax
add esp, 0xc
mov eax, dword [ecx]
mov dword [ebp + 0xa4], eax
cmp edi, 1
je 0x54cdd9
cmp edi, 0xfffffc19
je 0x54cdd9
lea eax, [edi + 0x3e4]
cmp eax, 4
ja 0x5495c0
mov ecx, dword [esi + 0x44]
lea eax, [esi + 0xb0]
cmp ecx, eax
je case.0x549e8a.14
push ecx
call dword [0x7deac4]
add esp, 4
jmp case.0x549e8a.14
test edi, edi
je 0x5495e4
mov ecx, dword [esi + 0x44]
lea eax, [esi + 0xb0]
cmp ecx, eax
je case.default.0x54945c
push ecx
call dword [0x7deac4]
add esp, 4
jmp case.default.0x54945c
mov dword [ebp + 0xa4], ecx
mov edx, dword [esi + 0x20]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov dword [esi + 0x20], eax
cmp byte [eax], 0x77
jne 0x549689
cmp dword [esi + 0x58], 0
je 0x54961c
mov dword [ebp + 0x98], 2
mov edx, dword [esi + 4]
test edx, edx
jne 0x549645
push 0x134
call dword [0x7deac8]
mov edx, eax
add esp, 4
test edx, edx
je 0x54cbe8
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 + 0x6a1b50]
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 0x53f330
mov eax, dword [esi + 0x3c]
mov dword [ebp + 0xa4], eax
jmp 0x5495a0
test edi, edi
jne case.default.0x54945c
mov ecx, dword [esi + 0x34]
mov al, byte [ecx]
cmp al, 0x81
jne 0x5496e5
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x5496cd
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], edi
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 8
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x34]
jmp 0x54a04c
cmp al, 0x88
jb 0x54ce08
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x549716
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
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 0x54a04c
test edi, edi
jne case.default.0x54945c
mov edx, dword [esi + 0x2c]
nop dword [eax]
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 0x549740
lea eax, [edx + 3]
mov dword [esi + 0xc], eax
jmp 0x53f3b3
test edi, edi
je case.0x5412d6.10
jmp case.default.0x54945c
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x34]
mov dword [ebp + 0xb4], eax
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54ce92
mov edi, 0xfffffc1b
jmp 0x548f34
cmp edi, 0xfffffc1b
jne 0x5497b0
mov eax, dword [ebp + 0xb4]
cmp eax, dword [esi + 0x34]
jmp 0x5497b2
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x34]
cmp byte [eax], 0x81
jne 0x54a636
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x5497ed
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
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 0x54a04c
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
push dword [esp + 0x30]
mov edi, dword [esi + 8]
push ebp
push dword [esi + 0x88]
push edi
push dword [esi + 0x98]
call fcn.0054de80
add esp, 0x14
test eax, eax
jns 0x549878
mov ecx, edi
cmp eax, 0xfffffffe
jne 0x549856
mov edi, dword [ebp + 0x78]
mov ecx, edi
mov dword [esi + 8], edi
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x549e8a.14
cmp edi, dword [ebp + 0x78]
jb case.0x549e8a.14
cmp ecx, dword [ebp + 0x84]
jmp 0x542dae
add eax, edi
mov dword [esi + 8], eax
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x5498ac
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0xe
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 8]
sub eax, dword [esi + 0x88]
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jb case.default.0x54b28a
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x549904
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0xf
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x549954
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x549e8a.14
cmp eax, dword [ebp + 0x84]
jbe case.0x549e8a.14
jmp 0x54037f
movzx ecx, byte [eax]
inc eax
mov dword [esi + 8], eax
mov edi, ecx
mov edx, dword [esi + 0x28]
and ecx, 7
shr edi, 3
mov eax, 1
shl eax, cl
test byte [edi + edx], al
je case.0x549e8a.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x5499a5
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x11
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
dec dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jb case.default.0x54b28a
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x5499f4
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x13
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x549a44
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x549e8a.14
cmp eax, dword [ebp + 0x84]
jbe case.0x549e8a.14
jmp 0x54037f
movzx ecx, byte [eax]
cmp dword [esi + 0x80], ecx
je 0x549a5f
cmp dword [esi + 0x94], ecx
jne case.0x549e8a.14
inc eax
mov dword [esi + 8], eax
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x549a92
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x18
jmp 0x54a043
dec dword [esi + 8]
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
je 0x53f340
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x549ae1
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x19
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x542d9a
movzx ecx, byte [edi]
lea eax, [edi + 1]
mov dword [esi + 8], eax
cmp dword [esi + 0x80], ecx
jne case.0x549e8a.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x549b5a
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1a
jmp 0x54a043
dec dword [esi + 8]
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
je 0x53f340
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x549ba9
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1b
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x549bf9
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x549e8a.14
cmp eax, dword [ebp + 0x84]
jbe case.0x549e8a.14
jmp 0x54037f
movzx ecx, byte [eax]
cmp dword [esi + 0x80], ecx
je case.0x549e8a.14
cmp dword [esi + 0x94], ecx
je case.0x549e8a.14
inc eax
mov dword [esi + 8], eax
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x549c47
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1d
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
dec dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
je 0x53f340
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x549c96
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1f
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x542d9a
movzx ecx, byte [edi]
lea eax, [edi + 1]
mov dword [esi + 8], eax
cmp dword [esi + 0x80], ecx
je case.0x549e8a.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x549d0f
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x21
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
dec dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
je 0x53f340
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x549d5e
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x23
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x78]
cmp ecx, edx
jb 0x549dae
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x549e8a.14
cmp ecx, dword [ebp + 0x84]
jmp 0x542dae
cmp dword [esi + 0x7c], 0xc
jne 0x549e09
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x549ddc
push ebx
lea eax, [ebp + 0x1c]
push eax
push edx
push edi
push ecx
call fcn.0054f1a0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
je 0x549e09
jmp case.0x549e8a.14
mov edi, dword [ebp + 0x1c]
sub edx, edi
cmp ecx, edx
ja 0x549e09
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x549e09
cmp edi, 1
je case.0x549e8a.14
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je case.0x549e8a.14
mov eax, dword [esi + 8]
movzx ecx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 8], edx
mov eax, dword [esi + 0x7c]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x54b208.15
jmp dword [eax*4 + 0x54dae8]
mov edi, dword [ebp + 0x88]
test edi, edi
je case.0x549e24.13
cmp edx, dword [ebp + 0x78]
jb case.0x549e24.13
cmp dword [ebp + 0x18], 0
jne case.0x549e24.13
cmp dword [ebp + 0x1c], 2
jne case.0x549e24.13
movzx eax, byte [ebp + 0x34]
cmp ecx, eax
jne case.0x549e24.13
mov dword [ebp + 0x64], 1
cmp edi, 1
jle case.0x549e24.13
jmp 0x54cc4a
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.0x549e8a.14
movzx eax, byte [ecx + 0x54db38]
jmp dword [eax*4 + 0x54db28]
cmp edx, dword [ebp + 0x78]
jae case.0x549e24.13
cmp byte [edx], 0xa
jne case.0x549e24.13
lea eax, [edx + 1]
mov dword [esi + 8], eax
jmp case.0x549e24.13
cmp dword [ebp + 0x68], 0
je case.0x549e24.13
jmp case.0x549e8a.14
cmp ecx, 9
je case.0x549e8a.14
cmp ecx, 0x20
je case.0x549e8a.14
cmp ecx, 0xa0
jne case.0x549e24.13
jmp case.0x549e8a.14
cmp ecx, 9
je case.0x549e24.13
cmp ecx, 0x20
je case.0x549e24.13
cmp ecx, 0xa0
je case.0x549e24.13
jmp case.0x549e8a.14
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.0x549e24.13
movzx eax, byte [ecx + 0x54dbbc]
jmp dword [eax*4 + 0x54dbb4]
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.0x549e8a.14
movzx eax, byte [ecx + 0x54dc40]
jmp dword [eax*4 + 0x54dc38]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
je case.0x549e24.13
jmp case.0x549e8a.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
jne case.0x549e24.13
jmp case.0x549e8a.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
je case.0x549e24.13
jmp case.0x549e8a.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
jne case.0x549e24.13
jmp case.0x549e8a.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
je case.0x549e24.13
jmp case.0x549e8a.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
je case.0x549e8a.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x549fbd
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x2b
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 8]
dec eax
mov dword [esi + 8], eax
cmp dword [esi + 0x7c], 0x11
jne 0x54a004
cmp eax, dword [esi + 0x30]
jbe 0x54a004
cmp byte [eax], 0xa
jne 0x54a004
dec eax
cmp byte [eax], 0xd
jne 0x54a004
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
je 0x53f340
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54a039
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
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 0x53f330
cmp edi, 0xfffffc1a
jne 0x54a0d1
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 0x54a0c9
mov edx, dword [esi + 0xc]
nop word [eax + eax]
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 0x54a0b0
jmp 0x54a131
mov dword [esi + 8], eax
jmp 0x54a156
cmp edi, 0xfffffc20
jne 0x54a10b
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add ecx, edx
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae case.default.0x54945c
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x54a113
cmp byte [ecx], 0x77
jmp 0x54a10d
test edi, edi
jne case.default.0x54945c
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 0x54a14a
cmp dword [esi + 0x5c], 0
jne 0x549757
cmp dword [esi + 0x54], 0
jne 0x549757
jmp case.0x549e8a.14
mov eax, dword [esi + 0xa0]
mov dword [ebp + 0x90], eax
cmp dword [esi + 0x9c], 0x88
jb 0x54a170
mov dword [ebp + 0x98], 2
mov edx, dword [esi + 4]
test edx, edx
jne 0x54a199
push 0x134
call dword [0x7deac8]
mov edx, eax
add esp, 4
test edx, edx
je 0x54cbe8
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 0x549658
mov eax, dword [esi]
mov esi, eax
test edi, edi
je 0x54a2c7
jmp 0x54906c
mov eax, dword [esi]
mov esi, eax
test edi, edi
jne 0x54906c
test eax, eax
je 0x54cea2
mov edi, 0xfffffc1c
jmp 0x548f34
test edi, edi
je 0x54a271
jmp case.default.0x54945c
cmp edi, 1
je 0x54a202
cmp edi, 0xfffffc19
jne 0x54a220
cmp dword [ebp + 0xac], 0
jne 0x54a220
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0xac], eax
jmp case.default.0x54945c
cmp edi, 0xfffffc1f
jne case.default.0x54945c
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp + 0x7c]
add eax, 2
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x54a264
test dl, dl
je 0x54a25d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x54a264
add eax, 2
add ecx, 2
test dl, dl
jne 0x54a235
xor eax, eax
jmp 0x54a269
sbb eax, eax
or eax, 1
test eax, eax
jne case.default.0x54945c
mov eax, dword [esi + 8]
mov dword [ebp + 0x7c], eax
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54ceb2
mov edi, 0xfffffc1e
jmp 0x548f34
cmp edi, 1
je 0x54a2a2
cmp edi, 0xfffffc19
jne 0x54a2bb
cmp dword [ebp + 0xac], 0
jne 0x54a2bb
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0xac], eax
mov eax, dword [esi]
mov esi, eax
test edi, edi
jne 0x54906c
test eax, eax
je 0x54cec2
mov edi, 0xfffffc1d
jmp 0x548f34
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0x7c], eax
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54ced2
mov edi, 0xfffffc1f
jmp 0x548f34
cmp edi, 1
je 0x54a315
cmp edi, 0xfffffc19
jne case.0x548f44.54
cmp dword [ebp + 0xac], 0
jne case.0x548f44.54
mov eax, dword [esi + 0xc]
add eax, 2
mov dword [ebp + 0xac], eax
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0xc]
mov dword [ebp + 0x7c], eax
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54cee2
mov edi, 0xfffffc20
jmp 0x548f34
cmp edi, 0xfffffc1a
jne 0x54a3b7
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 0x54a3af
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 0x54a393
jmp 0x54a423
mov dword [esi + 8], eax
jmp 0x53ff52
cmp edi, 0xfffffc20
jne 0x54a3f1
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add ecx, edx
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae case.default.0x54945c
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x54a3f9
cmp byte [ecx], 0x77
jmp 0x54a3f3
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0xa0]
mov dword [ebp + 0x90], eax
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov dword [esi + 0xc], eax
cmp byte [eax], 0x77
je 0x53ff52
cmp dword [esi + 0x5c], 0
jne 0x54a463
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 0x53fa0f
cmp dword [esi + 0x5c], 0
jne 0x53fa0f
jmp case.0x549e8a.14
cmp edi, 1
jne 0x54a52d
mov eax, dword [ebp + 0x7c]
mov dword [esi + 0x10], eax
mov edx, dword [esi + 0xc]
mov al, byte [edx]
cmp al, 0x82
je 0x54a4a0
cmp al, 0x77
jne case.0x549e8a.14
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or eax, ecx
add eax, edx
mov edx, eax
mov dword [esi + 0xc], eax
cmp byte [edx], 0x77
je 0x54a4a0
mov eax, dword [ebp + 0x8c]
mov dword [esi + 0x14], eax
mov ecx, dword [ebp + 0x80]
mov dword [esi + 8], ecx
mov edi, dword [esi + 0xc]
mov al, byte [edi]
cmp al, 0x78
je 0x541b12
cmp ecx, dword [esi + 0x38]
je 0x541b12
mov ecx, dword [esi + 4]
cmp al, 0x7a
jne 0x54a5dd
test ecx, ecx
jne 0x54a512
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
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 0x54a04c
cmp edi, 0xfffffc20
jne 0x54a567
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add ecx, edx
mov dword [esi + 0x2c], ecx
cmp dword [ebp + 0x7c], ecx
jae case.default.0x54945c
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
je 0x54a56f
cmp byte [ecx], 0x77
jmp 0x54a569
test edi, edi
jne case.default.0x54945c
mov ecx, dword [esi + 0xc]
movzx edx, byte [ecx + 1]
movzx eax, byte [ecx + 2]
shl edx, 8
or edx, eax
add edx, ecx
mov dword [esi + 0xc], edx
mov eax, dword [esi + 0x28]
mov dword [ebp + 0xac], eax
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x77
jne 0x54a48b
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54a5c2
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
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 0x54a04c
test ecx, ecx
jne 0x54a603
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
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 0x54a04c
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x34]
mov dword [esi + 0xc], eax
jmp 0x53f340
test edi, edi
jne case.default.0x54945c
add dword [esi + 0xc], 3
jmp 0x53f340
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x542d9a
movzx edx, byte [edi]
inc edi
mov dword [esi + 8], edi
test ebx, ebx
je 0x54a757
cmp edx, 0xc0
jb 0x54a757
test dl, 0x20
jne 0x54a69f
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x54a754
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x54a6ca
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x54a754
test dl, 8
jne 0x54a6f1
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 0x54a754
test dl, 4
jne 0x54a720
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 0x54a754
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
push ebx
push dword [esi + 0x28]
push edx
call fcn.0054f810
add esp, 0xc
test eax, eax
je case.0x549e8a.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54a79b
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x14
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov ecx, dword [esi + 8]
lea edx, [ecx - 1]
mov dword [esi + 8], edx
cmp ecx, dword [esi + 0x30]
jbe case.0x549e8a.14
test ebx, ebx
je 0x54a7e4
mov al, byte [edx]
and al, 0xc0
cmp al, 0x80
jne 0x54a7e4
dec edx
mov dword [esi + 8], edx
mov al, byte [edx]
and al, 0xc0
cmp al, 0x80
je 0x54a7d8
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54a80d
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x15
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov ecx, dword [esi + 8]
cmp ecx, dword [ebp + 0x78]
jb 0x54a857
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x549e8a.14
cmp ecx, dword [ebp + 0x84]
jmp 0x542dae
movzx ebx, byte [ecx]
inc ecx
mov dword [esi + 8], ecx
mov edi, ebx
mov eax, ebx
cmp ebx, 0xc0
jb 0x54a953
movzx eax, byte [ecx]
and eax, 0x3f
test bl, 0x20
jne 0x54a88d
and ebx, 0x1f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 1]
jmp 0x54a94c
test bl, 0x10
jne 0x54a8ae
and ebx, 0xf
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 2]
jmp 0x54a94c
test bl, 8
jne 0x54a8db
and ebx, 7
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 3]
jmp 0x54a94c
test bl, 4
jne 0x54a911
and ebx, 3
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 4]
jmp 0x54a94c
and ebx, 1
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [ecx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
lea eax, [ecx + 5]
mov dword [esi + 8], eax
mov edi, ebx
mov eax, ebx
cmp eax, 0xff
jbe 0x54a97a
cmp dword [esi + 0x9c], 0x6e
jne 0x54a991
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54cf12
mov ebx, dword [esp + 0x28]
xor edi, edi
jmp 0x548f34
mov edx, dword [esi + 0x28]
and edi, 7
shr ebx, 3
mov eax, 1
mov ecx, edi
shl eax, cl
test byte [ebx + edx], al
jmp 0x54a961
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54a9c0
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x10
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov ecx, dword [esi + 8]
lea edx, [ecx - 1]
mov dword [esi + 8], edx
cmp ecx, dword [esi + 0x30]
jbe case.default.0x54b28a
mov al, byte [edx]
and al, 0xc0
cmp al, 0x80
jne 0x54aa01
dec edx
mov dword [esi + 8], edx
mov al, byte [edx]
and al, 0xc0
cmp al, 0x80
je 0x54a9f5
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54aa2a
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x12
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov ecx, dword [ebp + 0x78]
mov eax, ecx
mov edi, dword [esi + 0x88]
sub eax, edi
mov ebx, dword [esi + 8]
cmp ebx, eax
ja 0x54aae5
mov edx, dword [esi + 0x24]
mov ecx, ebx
sub edi, 4
jb 0x54aa95
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x54aa9a
add ecx, 4
add edx, 4
sub edi, 4
jae 0x54aa80
cmp edi, 0xfffffffc
je 0x54aad7
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x54aae2
cmp edi, 0xfffffffd
je 0x54aad7
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x54aae2
cmp edi, 0xfffffffe
je 0x54aad7
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x54aae2
cmp edi, 0xffffffff
je 0x54aad7
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x54aae2
mov eax, dword [esi + 0x88]
jmp 0x54ab66
mov ecx, dword [ebp + 0x78]
mov edi, dword [esi + 0x6c]
test edi, edi
jle 0x54aba9
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x54aba9
lea edx, [esi + 0x70]
mov ecx, ebx
sub edi, 4
jb 0x54ab25
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x54ab2a
add ecx, 4
add edx, 4
sub edi, 4
jae 0x54ab10
cmp edi, 0xfffffffc
je 0x54ab63
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x54aba9
cmp edi, 0xfffffffd
je 0x54ab63
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x54aba9
cmp edi, 0xfffffffe
je 0x54ab63
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x54aba9
cmp edi, 0xffffffff
je 0x54ab63
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x54aba9
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 0x54ab9a
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x16
jmp 0x54a043
mov eax, dword [ebp + 0x88]
test eax, eax
je case.default.0x54b28a
cmp ebx, dword [ebp + 0x78]
jb case.default.0x54b28a
cmp ebx, dword [ebp + 0x84]
jbe case.default.0x54b28a
mov dword [ebp + 0x64], 1
cmp eax, 1
jle case.default.0x54b28a
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54cf02
mov ebx, dword [esp + 0x28]
mov edi, 0xfffffff4
jmp 0x548f34
test edi, edi
jne case.default.0x54945c
mov ecx, dword [esi + 8]
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x54ac1d
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x54ac11
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x53f340
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54ac52
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x17
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x542d9a
movzx edx, byte [edi]
inc edi
mov dword [esi + 8], edi
mov eax, edx
cmp edx, 0xc0
jb 0x54ad8a
test dl, 0x20
jne 0x54acc0
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
mov dword [esi + 8], eax
mov eax, edx
jmp 0x54ad8a
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x54acf0
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
mov dword [esi + 8], eax
mov eax, edx
jmp 0x54ad8a
test dl, 8
jne 0x54ad1b
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
mov dword [esi + 8], eax
mov eax, edx
jmp 0x54ad8a
test dl, 4
jne 0x54ad4f
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
mov dword [esi + 8], eax
mov eax, edx
jmp 0x54ad8a
and edx, 1
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov edx, ecx
mov eax, ecx
cmp dword [esi + 0x80], edx
je case.0x549e8a.14
cmp dword [esi + 0x94], eax
je case.0x549e8a.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54add1
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1c
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov ecx, dword [esi + 8]
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x54ae0c
nop dword [eax + eax]
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x54ae00
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x53f340
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54ae41
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x1e
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x54ae91
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x549e8a.14
cmp eax, dword [ebp + 0x84]
jbe case.0x549e8a.14
jmp 0x54037f
movzx ebx, byte [eax]
inc eax
mov dword [esp + 0x14], ebx
mov dword [esi + 8], eax
cmp ebx, 0xc0
jb 0x54af9d
mov cl, byte [eax]
test bl, 0x20
jne 0x54aec2
inc eax
and ebx, 0x1f
mov dword [esi + 8], eax
movzx eax, cl
jmp 0x54af95
mov dl, byte [eax + 1]
test bl, 0x10
jne 0x54aee6
add eax, 2
movzx ecx, cl
and ebx, 0xf
mov dword [esi + 8], eax
and ecx, 0x3f
shl ebx, 6
or ebx, ecx
movzx eax, dl
jmp 0x54af95
test bl, 8
jne 0x54af21
mov bl, byte [eax + 2]
add eax, 3
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
movzx ecx, cl
and eax, 7
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx ebx, bl
shl ecx, 6
and ebx, 0x3f
movzx eax, dl
and eax, 0x3f
or ecx, eax
shl ecx, 6
or ebx, ecx
jmp 0x54af9d
mov ch, byte [eax + 3]
movzx edi, cl
and edi, 0x3f
test bl, 4
mov bl, byte [eax + 2]
movzx ebx, bl
jne 0x54af5f
add eax, 4
and ebx, 0x3f
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
and eax, 3
shl eax, 6
or edi, eax
movzx eax, dl
shl edi, 6
and eax, 0x3f
or edi, eax
movzx eax, ch
shl edi, 6
or ebx, edi
jmp 0x54af95
mov dh, byte [eax + 4]
and ebx, 0x3f
add eax, 5
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
and eax, 1
shl eax, 6
or edi, eax
movzx eax, dl
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, ch
shl edi, 6
and eax, 0x3f
or ebx, edi
shl ebx, 6
or ebx, eax
movzx eax, dh
and eax, 0x3f
shl ebx, 6
or ebx, eax
cmp dword [esi + 0x80], ebx
je case.default.0x54b28a
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54afd8
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x20
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov ecx, dword [esi + 8]
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x54b00e
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x54b002
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x53f340
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54b043
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x22
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x78]
cmp ecx, edx
jb 0x54b08f
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x549e8a.14
cmp ecx, dword [ebp + 0x84]
jmp 0x542dae
cmp dword [esi + 0x7c], 0xc
jne 0x54b0e2
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x54b0b9
push ebx
lea eax, [ebp + 0x1c]
push eax
push edx
push edi
push ecx
call fcn.0054f1a0
add esp, 0x14
neg eax
sbb eax, eax
neg eax
je 0x54b0e2
jmp case.0x549e8a.14
mov edi, dword [ebp + 0x1c]
sub edx, edi
cmp ecx, edx
ja 0x54b0e2
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne 0x54b0e2
cmp edi, 1
je case.0x549e8a.14
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
je case.0x549e8a.14
mov eax, dword [esi + 8]
movzx edx, byte [eax]
lea edi, [eax + 1]
mov dword [esi + 8], edi
mov ecx, edx
mov dword [esp + 0x14], edi
mov ebx, edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
cmp edx, 0xc0
jb 0x54b1f9
movzx ecx, byte [edi]
and ecx, 0x3f
test dl, 0x20
jne 0x54b133
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
or edx, eax
inc edi
jmp 0x54b1de
movzx eax, byte [edi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x54b158
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add edi, 2
jmp 0x54b1de
test dl, 8
jne 0x54b17b
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add edi, 3
jmp 0x54b1de
test dl, 4
jne 0x54b1aa
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [edi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add edi, 4
jmp 0x54b1de
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [edi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [edi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add edi, 5
mov ecx, edx
mov dword [esi + 8], edi
mov dword [esp + 0x14], edi
mov ebx, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 0x7c]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x54b208.15
jmp dword [eax*4 + 0x54dcbc]
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x54b208.13
mov eax, dword [esp + 0x14]
cmp eax, dword [ebp + 0x78]
jb case.0x54b208.13
cmp dword [ebp + 0x18], 0
jne case.0x54b208.13
cmp dword [ebp + 0x1c], 2
jne case.0x54b208.13
movzx eax, byte [ebp + 0x34]
cmp edx, eax
jne case.0x54b208.13
mov dword [ebp + 0x64], 1
cmp ecx, 1
jle case.0x54b208.13
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54cf02
mov ebx, dword [esp + 0x28]
mov edi, 0xfffffff4
jmp 0x548f34
cmp edx, 0x85
ja 0x54b2a3
je case.0x54b28a.11
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x54b28a
jmp dword [edx*4 + 0x54dcfc]
cmp edi, dword [ebp + 0x78]
jae case.0x54b208.13
cmp byte [edi], 0xa
jne case.0x54b208.13
lea eax, [edi + 1]
mov dword [esi + 8], eax
jmp case.0x54b208.13
sub edx, 0x2028
je case.0x54b28a.11
sub edx, 1
jne case.default.0x54b28a
cmp dword [ebp + 0x68], 0
je case.0x54b208.13
jmp case.default.0x54b28a
cmp edx, 0x2000
ja 0x54b347
je case.default.0x54b28a
cmp edx, 0xa0
ja 0x54b333
je case.default.0x54b28a
cmp edx, 9
je case.default.0x54b28a
cmp edx, 0x20
je case.default.0x54b28a
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54b324
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x2a
jmp 0x54a043
cmp edx, 0x1680
je case.default.0x54b28a
cmp edx, 0x180e
jmp 0x54b2ef
cmp edx, 0x3000
ja case.0x54b208.13
je case.default.0x54b28a
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x54b208.13
movzx eax, byte [edx + 0x54dd14]
jmp dword [eax*4 + 0x54dd0c]
cmp edx, 0x2000
ja 0x54b3be
je case.0x54b208.13
cmp edx, 0xa0
ja 0x54b3a1
je case.0x54b208.13
cmp edx, 9
je case.0x54b208.13
cmp edx, 0x20
je case.0x54b208.13
jmp case.default.0x54b28a
cmp edx, 0x1680
je case.0x54b208.13
cmp edx, 0x180e
je case.0x54b208.13
jmp case.default.0x54b28a
cmp edx, 0x3000
ja case.default.0x54b28a
je case.0x54b208.13
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.default.0x54b28a
movzx eax, byte [edx + 0x54dd7c]
jmp dword [eax*4 + 0x54dd74]
cmp edx, 0x85
ja 0x54b40e
je case.default.0x54b28a
add edx, 0xfffffff6
cmp edx, 3
ja case.0x54b208.13
jmp dword [edx*4 + 0x54dddc]
sub edx, 0x2028
je case.default.0x54b28a
sub edx, 1
jne case.0x54b208.13
jmp case.default.0x54b28a
cmp edx, 0x85
ja 0x54b449
je case.0x54b208.13
add edx, 0xfffffff6
cmp edx, 3
ja case.default.0x54b28a
jmp dword [edx*4 + 0x54ddec]
sub edx, 0x2028
je case.0x54b208.13
sub edx, 1
je case.0x54b208.13
jmp case.default.0x54b28a
cmp ecx, 0x100
jae case.0x54b208.13
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
je case.0x54b208.13
jmp case.default.0x54b28a
cmp ebx, 0x100
jae case.default.0x54b28a
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
jne case.0x54b208.13
jmp case.default.0x54b28a
cmp dword [esp + 0x18], 0x100
jae case.0x54b208.13
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
je case.0x54b208.13
jmp case.default.0x54b28a
cmp dword [esp + 0x10], 0x100
jae case.default.0x54b28a
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
jne case.0x54b208.13
jmp case.default.0x54b28a
cmp dword [esp + 0x1c], 0x100
jae case.0x54b208.13
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
je case.0x54b208.13
jmp case.default.0x54b28a
cmp dword [esp + 0x20], 0x100
jae case.default.0x54b28a
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
jne case.0x54b208.13
jmp case.default.0x54b28a
mov eax, dword [esi]
mov esi, eax
test eax, eax
je case.default.0x548f44
mov edi, 0xfffffff2
jmp 0x548f30
test edi, edi
jne case.default.0x54945c
mov ecx, dword [esi + 8]
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x54b55c
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x54b550
cmp dword [esi + 0x7c], 0x11
jne 0x54b585
cmp ecx, dword [esi + 0x30]
jbe 0x54b585
cmp byte [ecx], 0xa
jne 0x54b585
dec ecx
cmp byte [ecx], 0xd
jne 0x54b585
mov dword [esi + 8], ecx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x53f340
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54b5ba
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x2e
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov eax, dword [esi + 8]
cmp eax, dword [ebp + 0x78]
jb 0x54b60a
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je case.0x549e8a.14
cmp eax, dword [ebp + 0x84]
jbe case.0x549e8a.14
jmp 0x54037f
movzx ecx, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 8], edx
test ebx, ebx
je 0x54b666
cmp ecx, 0xc0
jb 0x54b666
test cl, 0x20
jne 0x54b62d
lea eax, [edx + 1]
jmp 0x54b663
test cl, 0x10
jne 0x54b63e
add eax, 3
jmp 0x54b663
test cl, 8
jne 0x54b64f
add eax, 4
jmp 0x54b663
test cl, 4
jne 0x54b660
add eax, 5
jmp 0x54b663
add eax, 6
mov dword [esi + 8], eax
cmp dword [esi + 0x68], 0
jne case.0x549e8a.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54b69f
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x24
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x54b6e9
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x549e8a.14
cmp edx, dword [ebp + 0x84]
jmp 0x542dae
movzx eax, byte [edx]
inc edx
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
test ebx, ebx
je 0x54b7ec
cmp eax, 0xc0
jb 0x54b7ec
test al, 0x20
jne 0x54b725
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x54b7e7
movzx ecx, byte [edx]
and ecx, 0x3f
test al, 0x10
jne 0x54b74b
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x54b7e7
test al, 8
jne 0x54b777
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x54b7e7
test al, 4
jne 0x54b7ac
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x54b7e7
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
cmp eax, 9
je 0x54b830
cmp eax, 5
je 0x54b830
cmp eax, 8
je 0x54b830
xor eax, eax
jmp 0x54b835
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.0x549e8a.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54b86d
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x25
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x54b8b7
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x549e8a.14
cmp edx, dword [ebp + 0x84]
jmp 0x542dae
movzx eax, byte [edx]
inc edx
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
test ebx, ebx
je 0x54b9ca
cmp eax, 0xc0
jb 0x54b9ca
test al, 0x20
jne 0x54b8f3
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x54b9c5
test al, 0x10
jne 0x54b91b
mov ecx, eax
movzx eax, byte [edx]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x54b9c5
test al, 8
jne 0x54b94f
mov ecx, eax
movzx eax, byte [edx]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x54b9c5
movzx ecx, byte [edx]
and ecx, 0x3f
test al, 4
jne 0x54b98a
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x54b9c5
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
mov eax, dword [eax*4 + 0x6a1c68]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je case.0x549e8a.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54ba33
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x26
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x54ba7d
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x549e8a.14
cmp edx, dword [ebp + 0x84]
jmp 0x542dae
movzx eax, byte [edx]
inc edx
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
test ebx, ebx
je 0x54bb8f
cmp eax, 0xc0
jb 0x54bb8f
test al, 0x20
jne 0x54bab9
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x54bb8a
test al, 0x10
jne 0x54badf
movzx eax, byte [edx]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x54bb8a
test al, 8
jne 0x54bb11
movzx eax, byte [edx]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x54bb8a
test al, 4
movzx eax, byte [edx]
jne 0x54bb4c
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x54bb8a
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je case.0x549e8a.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54bbf1
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x27
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x54bc3b
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x549e8a.14
cmp edx, dword [ebp + 0x84]
jmp 0x542dae
movzx eax, byte [edx]
inc edx
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
test ebx, ebx
je 0x54bd4d
cmp eax, 0xc0
jb 0x54bd4d
test al, 0x20
jne 0x54bc77
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x54bd48
test al, 0x10
jne 0x54bc9d
movzx eax, byte [edx]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x54bd48
test al, 8
jne 0x54bccf
movzx eax, byte [edx]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x54bd48
test al, 4
movzx eax, byte [edx]
jne 0x54bd0a
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x54bd48
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
xor ecx, ecx
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2298]
cmp eax, dword [esi + 0x64]
sete cl
cmp ecx, dword [esi + 0x68]
je case.0x549e8a.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54bdaf
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x28
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x54bdf9
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x549e8a.14
cmp edx, dword [ebp + 0x84]
jmp 0x542dae
movzx eax, byte [edx]
inc edx
cmp dword [esp + 0x28], 0
mov ecx, eax
mov dword [esi + 8], edx
mov ebx, eax
mov edi, edx
mov dword [esp + 0x14], edx
je 0x54befa
mov dword [esp + 0x14], edx
cmp eax, 0xc0
jb 0x54befa
test al, 0x20
jne 0x54be3a
movzx eax, byte [edx]
lea edi, [edx + 1]
and ecx, 0x1f
jmp 0x54bee9
test al, 0x10
jne 0x54be5a
mov ecx, eax
lea edi, [edx + 2]
movzx eax, byte [edx]
and ecx, 0xf
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
jmp 0x54bee9
test al, 8
jne 0x54be83
mov ecx, eax
lea edi, [edx + 3]
movzx eax, byte [edx]
and ecx, 7
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
jmp 0x54bee9
movzx ecx, byte [edx]
and ecx, 0x3f
test al, 4
jne 0x54beb6
and eax, 3
lea edi, [edx + 4]
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x54bee9
and eax, 1
lea edi, [edx + 5]
shl eax, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov dword [esi + 8], edi
mov ebx, ecx
mov dword [esp + 0x14], edi
mov edx, dword [ebp + 0x78]
and ebx, 0x7f
shr ecx, 7
movzx eax, byte [ecx + 0x6a3918]
shl eax, 7
add eax, ebx
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a229a]
mov dword [esp + 0x18], eax
cmp dword [esp + 0x14], edx
jae 0x54c076
mov dword [esp + 0x14], edx
cmp dword [esp + 0x28], 0
mov ebx, 1
movzx edx, byte [edi]
mov ecx, edx
je 0x54c019
cmp edx, 0xc0
jb 0x54c019
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x54bf76
mov eax, edx
mov ebx, 2
and eax, 0x1f
mov edx, ecx
shl eax, 6
jmp 0x54c015
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x54bf95
and edx, 0xf
mov ebx, 3
shl edx, 6
or edx, ecx
jmp 0x54c00f
and eax, 0x3f
test dl, 8
jne 0x54bfb9
and edx, 7
mov ebx, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x54c00f
test dl, 4
jne 0x54bfe2
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 0x54c00f
and edx, ebx
mov ebx, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov ebp, dword [esp + 0x18]
and ecx, 0x7f
shr edx, 7
movzx eax, byte [edx + 0x6a3918]
mov edx, dword [esp + 0x14]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6a5b18]
movzx ecx, byte [eax*8 + 0x6a229a]
mov eax, 1
shl eax, cl
test dword [ebp*4 + 0x6a1ce0], eax
mov ebp, dword [esp + 0xb0]
je 0x54c076
add edi, ebx
mov dword [esp + 0x18], ecx
mov dword [esi + 8], edi
mov edx, dword [ebp + 0x78]
mov dword [esp + 0x14], edx
cmp edi, edx
jb 0x54bf31
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je 0x54c0b5
mov eax, dword [esi + 8]
cmp eax, edx
jb 0x54c0b5
cmp eax, dword [ebp + 0x84]
jbe 0x54c0b5
mov dword [ebp + 0x64], 1
cmp ecx, 1
jle 0x54c0b5
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54cf02
mov ebx, dword [esp + 0x28]
mov edi, 0xfffffff4
jmp 0x548f34
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54c0e4
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x29
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov ecx, dword [esi + 8]
dec ecx
mov dword [esi + 8], ecx
test ebx, ebx
je 0x54c11e
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x54c11e
dec ecx
mov dword [esi + 8], ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x54c112
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x30]
jbe 0x53f340
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54c153
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x2c
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov edi, dword [esi + 8]
dec edi
mov dword [esi + 8], edi
test ebx, ebx
jne 0x54c181
movzx edx, byte [edi]
jmp 0x54c25d
mov al, byte [edi]
and al, 0xc0
cmp al, 0x80
jne 0x54c19c
nop dword [eax]
dec edi
mov dword [esi + 8], edi
mov al, byte [edi]
and al, 0xc0
cmp al, 0x80
je 0x54c190
mov edi, dword [esi + 8]
movzx edx, byte [edi]
mov ecx, edx
cmp edx, 0xc0
jb 0x54c25f
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x54c1cf
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
jmp 0x54c25b
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x54c1e9
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x54c255
and eax, 0x3f
test dl, 8
jne 0x54c208
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x54c255
test dl, 4
jne 0x54c22c
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x54c255
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
shr edx, 7
and ecx, 0x7f
movzx eax, byte [edx + 0x6a3918]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6a5b18]
movzx ebx, byte [eax*8 + 0x6a229a]
mov eax, edi
cmp eax, dword [esi + 0x30]
jbe 0x53f340
cmp dword [esp + 0x28], 0
lea edx, [edi - 1]
mov edi, edx
jne 0x54c2a4
movzx edx, byte [edi]
jmp 0x54c380
mov cl, byte [edi]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x54c2c2
mov al, byte [edx - 1]
lea edi, [edx - 1]
mov cl, al
mov edx, edi
and al, 0xc0
cmp al, 0x80
je 0x54c2b2
movzx edx, cl
mov ecx, edx
cmp edx, 0xc0
jb 0x54c382
movzx ecx, byte [edi + 1]
and ecx, 0x3f
test dl, 0x20
jne 0x54c2f2
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
jmp 0x54c37e
movzx eax, byte [edi + 2]
test dl, 0x10
jne 0x54c30c
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x54c378
and eax, 0x3f
test dl, 8
jne 0x54c32b
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x54c378
test dl, 4
jne 0x54c34f
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x54c378
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
shr edx, 7
and ecx, 0x7f
movzx eax, byte [edx + 0x6a3918]
shl eax, 7
add eax, ecx
mov ecx, ebx
movzx eax, word [eax*2 + 0x6a5b18]
movzx edx, byte [eax*8 + 0x6a229a]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x6a1ce0], eax
je 0x547bb5
mov dword [esi + 8], edi
mov ebx, edx
jmp 0x54c281
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x54c403
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x549e8a.14
cmp edx, dword [ebp + 0x84]
jmp 0x542dae
movzx eax, byte [edx]
inc edx
mov dword [esi + 8], edx
mov ecx, eax
mov edi, eax
test ebx, ebx
je 0x54c517
cmp eax, 0xc0
jb 0x54c517
test al, 0x20
jne 0x54c43f
movzx eax, byte [edx]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 1]
jmp 0x54c512
test al, 0x10
jne 0x54c465
movzx ecx, byte [edx]
and eax, 0xf
shl eax, 6
and ecx, 0x3f
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x54c512
test al, 8
jne 0x54c497
movzx ecx, byte [edx]
and eax, 7
shl eax, 6
and ecx, 0x3f
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x54c512
mov ecx, eax
test al, 4
movzx eax, byte [edx]
jne 0x54c4d4
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x54c512
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
mov eax, dword [eax*4 + 0x6a1c68]
cmp eax, 1
je 0x54c559
cmp eax, 3
je 0x54c559
xor eax, eax
jmp 0x54c55e
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.0x549e8a.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54c596
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x3b
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x542d9a
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x28], 0
mov ecx, edx
mov dword [esi + 8], edi
mov eax, edx
mov ebx, edx
mov dword [esp + 0x14], edx
je 0x54c6fa
mov dword [esp + 0x14], edx
cmp edx, 0xc0
jb 0x54c6fa
movzx ecx, byte [edi]
and ecx, 0x3f
test dl, 0x20
jne 0x54c61f
and eax, 0x1f
mov edx, ecx
shl eax, 6
or edx, eax
lea eax, [edi + 1]
mov ecx, edx
mov dword [esi + 8], eax
mov eax, ecx
mov ebx, ecx
mov edi, ecx
jmp 0x54c6fe
movzx eax, byte [edi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x54c64b
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
mov ecx, edx
mov dword [esi + 8], eax
mov eax, ecx
mov ebx, ecx
mov edi, ecx
jmp 0x54c6fe
test dl, 8
jne 0x54c67c
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 3]
mov ecx, edx
mov dword [esi + 8], eax
mov eax, ecx
mov ebx, ecx
mov edi, ecx
jmp 0x54c6fe
test dl, 4
jne 0x54c6b6
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 4]
mov ecx, edx
mov dword [esi + 8], eax
mov eax, ecx
mov ebx, ecx
mov edi, ecx
jmp 0x54c6fe
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov ecx, edx
mov dword [esi + 8], eax
mov eax, ecx
mov ebx, ecx
mov edi, ecx
jmp 0x54c6fe
mov edi, dword [esp + 0x14]
cmp ecx, 0x24
je 0x54c73c
cmp eax, 0x40
je 0x54c73c
cmp ebx, 0x60
je 0x54c73c
cmp edi, 0xa0
jb 0x54c729
cmp edx, 0xd7ff
jbe 0x54c73c
cmp edx, 0xe000
jae 0x54c73c
xor eax, eax
jmp 0x54c741
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.default.0x54b28a
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54c779
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x3c
jmp 0x54a043
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jae 0x542d9a
movzx edx, byte [edi]
inc edi
cmp dword [esp + 0x28], 0
mov eax, edx
mov dword [esi + 8], edi
mov ecx, edx
mov dword [esp + 0x14], edx
mov ebx, edx
mov dword [esp + 0x18], edx
je 0x54c8c3
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
cmp edx, 0xc0
jb 0x54c8c3
test dl, 0x20
jne 0x54c801
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x54c8b2
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x54c82c
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x54c8b2
test dl, 8
jne 0x54c84f
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 0x54c8b2
test dl, 4
jne 0x54c87e
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 0x54c8b2
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov ecx, edx
mov dword [esp + 0x14], edx
mov eax, edx
mov ebx, edx
mov dword [esp + 0x18], edx
cmp dword [esp + 0x14], 0x20
mov edi, edx
ja 0x54c8e8
cmp eax, 0x20
je case.0x54c9f6.8193
lea eax, [edx - 9]
cmp eax, 4
ja case.0x54c9f6.8203
jmp dword [eax*4 + 0x54ddfc]
cmp edx, 0x2000
ja 0x54c9ca
cmp ecx, 0x2000
je case.0x54c9f6.8193
cmp edi, 0x1680
ja 0x54c9bf
cmp edx, 0x1680
je case.0x54c9f6.8193
mov eax, edx
sub eax, 0x85
je case.0x54c9f6.8193
sub eax, 0x1b
je case.0x54c9f6.8193
mov eax, edx
test eax, eax
jns 0x54c93b
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x6a3918]
shl eax, 7
and edx, 0x8000007f
jns 0x54c959
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
cmp dword [eax*4 + 0x6a1c68], 6
sete cl
cmp ecx, dword [esi + 0x68]
je case.default.0x54b28a
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54c9b0
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x54cbe8
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x3d
jmp 0x54a043
cmp edx, 0x180e
jmp 0x54c928
cmp ebx, 0x3000
ja case.0x54c9f6.8203
cmp dword [esp + 0x18], 0x3000
je case.0x54c9f6.8193
lea eax, [edx - 0x2001]
cmp eax, 0x5e
ja case.0x54c9f6.8203
movzx eax, byte [eax + 0x54de18]
jmp dword [eax*4 + 0x54de10]
cmp dword [esi + 0x68], 0
je 0x54c981
jmp case.default.0x54b28a
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov edx, dword [esi + 8]
cmp edx, dword [ebp + 0x78]
jb 0x54ca4b
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x549e8a.14
cmp edx, dword [ebp + 0x84]
jmp 0x542dae
movzx eax, byte [edx]
inc edx
cmp dword [esp + 0x28], 0
mov ecx, eax
mov dword [esi + 8], edx
mov edi, eax
mov ebx, eax
je 0x54cb66
cmp eax, 0xc0
jb 0x54cb66
test al, 0x20
jne 0x54ca8c
movzx ecx, byte [edx]
and eax, 0x1f
shl eax, 6
and ecx, 0x3f
or ecx, eax
lea eax, [edx + 1]
jmp 0x54cb5f
test al, 0x10
jne 0x54cab2
movzx ecx, byte [edx]
and eax, 0xf
shl eax, 6
and ecx, 0x3f
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 2]
jmp 0x54cb5f
test al, 8
jne 0x54cae4
movzx ecx, byte [edx]
and eax, 7
shl eax, 6
and ecx, 0x3f
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 3]
jmp 0x54cb5f
mov ecx, eax
test al, 4
movzx eax, byte [edx]
jne 0x54cb21
and ecx, 3
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 4]
jmp 0x54cb5f
and ecx, 1
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 1]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
lea eax, [edx + 5]
mov dword [esi + 8], eax
mov edi, ecx
mov ebx, ecx
shr ecx, 7
and edi, 0x7f
movzx eax, byte [ecx + 0x6a3918]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x6a5b18]
movzx eax, byte [eax*8 + 0x6a2299]
mov eax, dword [eax*4 + 0x6a1c68]
cmp eax, 1
je 0x54cbb1
cmp eax, 3
je 0x54cbb1
cmp ebx, 0x5f
je 0x54cbb1
xor eax, eax
jmp 0x54cbb6
mov eax, 1
cmp eax, dword [esi + 0x68]
je case.default.0x54b28a
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54ce1a
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x54ce10
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54cf1f
mov edi, 0xfffffffa
jmp 0x548f30
test edi, edi
jne case.default.0x54945c
mov eax, dword [esi + 0x84]
cmp eax, dword [esi + 0x8c]
jge case.0x549e8a.14
mov edi, dword [esi + 8]
cmp edi, dword [ebp + 0x78]
jb 0x54cc60
mov eax, dword [ebp + 0x88]
test eax, eax
je case.0x549e8a.14
cmp edi, dword [ebp + 0x84]
jbe case.0x549e8a.14
mov dword [ebp + 0x64], 1
cmp eax, 1
jle case.0x549e8a.14
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54cf02
mov edi, 0xfffffff4
jmp 0x548f34
movzx edx, byte [edi]
inc edi
mov dword [esi + 8], edi
mov ecx, edx
test ebx, ebx
je 0x54cd50
cmp edx, 0xc0
jb 0x54cd50
movzx ecx, byte [edi]
and ecx, 0x3f
test dl, 0x20
jne 0x54cca0
mov eax, edx
mov edx, ecx
and eax, 0x1f
shl eax, 6
or edx, eax
lea eax, [edi + 1]
jmp 0x54cd4b
movzx eax, byte [edi + 1]
and eax, 0x3f
test dl, 0x10
jne 0x54ccc5
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
lea eax, [edi + 2]
jmp 0x54cd4b
test dl, 8
jne 0x54cce8
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 0x54cd4b
test dl, 4
jne 0x54cd17
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 0x54cd4b
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
lea eax, [edi + 5]
mov dword [esi + 8], eax
mov ecx, edx
mov eax, dword [esi + 0x64]
cmp ecx, dword [eax*4 + 0x6a2158]
lea eax, [eax*4 + 0x6a2158]
jb 0x54cd7d
mov ecx, dword [eax]
nop dword [eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x54cd9a
mov ecx, dword [eax]
cmp edx, ecx
jae 0x54cd70
cmp dword [esi + 0x68], 0
jne 0x54cda0
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54cf12
xor edi, edi
jmp 0x548f34
cmp dword [esi + 0x68], 0
jne case.0x549e8a.14
inc dword [esi + 0x84]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x54ce33
push 0x134
call dword [0x7deac8]
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x54ce29
mov eax, dword [esi]
mov esi, eax
test eax, eax
je 0x54cf1f
lea edi, [ecx - 6]
jmp 0x548f34
mov ecx, dword [esi + 0x44]
lea eax, [esi + 0xb0]
cmp ecx, eax
je 0x54cdf4
push ecx
call dword [0x7deac4]
add esp, 4
mov eax, dword [ebp + 0x80]
mov dword [esi + 8], eax
mov eax, dword [ebp + 0x7c]
mov dword [esi + 0x10], eax
jmp 0x53f3b3
mov dword [esi + 0xc], ecx
jmp 0x53f340
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x3e
jmp 0x54a043
mov dword [ecx + 4], 0
mov dword [esi + 4], ecx
mov dword [esi + 0x130], 0x43
jmp 0x54a043
pop edi
pop esi
pop ebp
mov eax, 0xfffffff8
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffeb
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffe6
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1a
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1b
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1c
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1e
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1d
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc1f
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffc20
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffff2
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffff4
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffa
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffb
pop ebx
add esp, 0x8c
ret