Function at 0x5385c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x150
mov eax, dword [0x596fb8]
xor eax, esp
mov dword [esp + 0x14c], eax
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x158]
mov dword [esp + 0xc], edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x164]
xor edx, edx
cmp ecx, edx
push esi
mov esi, dword [esp + 0x158]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
jne 0x538667
cmp dword [esp + 0x170], edx
lea eax, [esp + 0x170]
jne 0x538643
push 1
push edx
push edx
push edx
push edx
push edx
push eax
call fcn.005385c0
pop esi
mov ecx, dword [esp + 0x14c]
xor ecx, esp
call fcn.00549750
add esp, 0x150
ret 0x1c
sub eax, esi
cmp eax, edx
jle 0x54558d
neg eax
pop esi
mov ecx, dword [esp + 0x14c]
xor ecx, esp
call fcn.00549750
add esp, 0x150
ret 0x1c
mov ecx, dword [eax + 0x4c]
push ebx
mov dword [esp + 0x18], ecx
mov ecx, dword [eax]
cmp ecx, dword [eax + 4]
push ebp
push edi
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], edx
jae 0x542488
add ecx, 1
mov dword [eax], ecx
mov ecx, dword [esp + 0x17c]
cmp ecx, dword [eax + 8]
jae 0x542495
cmp dword [eax + 0x98], 2
jne 0x5386c0
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x6c]
mov dword [esp + 0x70], esi
mov dword [esp + 0x1c], ecx
mov dword [eax + 0x98], edx
lea esp, [esp]
mov edx, dword [esp + 0x14]
mov al, byte [edx]
movzx ebx, al
xor ebp, ebp
cmp ebx, 0xa1
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x40], ebx
ja case.0x5386ea.98
movzx ecx, byte [ebx + 0x5456f4]
jmp dword [ecx*4 + 0x5455a8]
mov edi, dword [esp + 0x10]
add dword [edi + 0x28], 1
mov eax, dword [edi + 0x28]
cmp eax, dword [edi + 0x2c]
ja 0x5426b6
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x573640]
movzx eax, byte [edx + 1]
add eax, edx
add eax, ecx
mov dword [esp + 0x14], eax
jmp 0x5386c0
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0xac]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x30], ecx
jmp 0x538740
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x170]
mov ecx, dword [esp + 0x14]
add edx, 1
push edx
push ebx
push edi
push eax
push ebp
add ecx, 3
push ecx
push esi
call fcn.005385c0
cmp eax, 1
je 0x5387c2
cmp eax, 0xfffffc20
jne 0x538797
mov edx, dword [esp + 0x14]
xor ecx, ecx
mov ch, byte [edx + 1]
mov cl, byte [edx + 2]
add ecx, edx
cmp dword [edi + 0x7c], ecx
jae 0x54558a
cmp byte [edx], 0x77
je 0x5387a3
cmp byte [ecx], 0x77
jne 0x54558a
jmp 0x5387a3
test eax, eax
jne 0x54558a
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
xor eax, eax
mov ah, byte [edx + 1]
mov al, byte [edx + 2]
mov dword [edi + 0xac], ecx
add edx, eax
cmp byte [edx], 0x77
mov dword [esp + 0x14], edx
je 0x538740
jmp 0x5387cd
mov ebp, dword [edi + 0x7c]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x28], ebp
mov al, byte [edx]
cmp al, 0x82
je 0x5387e0
cmp al, 0x77
jne case.0x545420.14
jmp 0x5387e0
xor eax, eax
mov ah, byte [edx + 1]
mov al, byte [edx + 2]
add edx, eax
cmp byte [edx], 0x77
je 0x5387e0
cmp byte [edx], 0x78
mov eax, dword [edi + 0x8c]
mov esi, dword [edi + 0x80]
mov dword [esp + 0x14], edx
mov dword [esp + 0x170], eax
je 0x538815
cmp esi, dword [esp + 0x3c]
jne 0x541f4b
add edx, 3
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov dword [esp + 0x34], ebp
jmp 0x5392f4
mov dword [esp + 0x34], ebp
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
sub eax, dword [edi + 0x70]
mov edx, dword [edi + 0x90]
mov ebx, dword [esp + 0x170]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x30], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
lea ebx, [ebx]
cmp dword [esp + 0x40], 0x88
jb 0x538874
mov dword [edi + 0x98], 2
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
add eax, 1
push eax
mov eax, dword [esp + 0x18]
movzx edx, byte [eax]
push ecx
movzx ecx, byte [edx + 0x573640]
push edi
push ebx
push ebp
add ecx, eax
push ecx
push esi
call fcn.005385c0
cmp eax, 0xfffffc1a
jne 0x5393f8
mov eax, dword [edi + 0x70]
add eax, dword [esp + 0x38]
cmp esi, dword [edi + 0x80]
mov ebx, dword [edi + 0x8c]
mov ebp, dword [edi + 0x7c]
mov dword [esp + 0x170], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], ebp
je 0x539454
mov esi, dword [edi + 0x80]
jmp 0x538860
xor ecx, ecx
mov ch, byte [edx + 1]
add edx, 3
cmp byte [edx], 0x76
mov dword [esp + 0x14], edx
mov cl, byte [edx - 1]
mov dword [esp + 0x38], ecx
jne 0x5389f4
mov ecx, dword [0x598370]
cmp ecx, ebp
mov ebp, dword [esp + 0x10]
je 0x5389e1
mov dword [esp + 0x74], 2
movzx eax, byte [edx + 1]
mov dword [esp + 0x78], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x7c], eax
mov eax, dword [ebp + 0x74]
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 0x78]
sub eax, dword [ebp + 0x74]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x28]
sub eax, dword [ebp + 0x74]
mov dword [esp + 0x88], eax
mov eax, esi
sub eax, dword [ebp + 0x74]
mov dword [esp + 0x8c], eax
xor eax, eax
mov ah, byte [edx + 2]
mov al, byte [edx + 3]
mov dword [esp + 0x9c], eax
xor eax, eax
mov ah, byte [edx + 4]
mov al, byte [edx + 5]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x170]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x90], eax
mov edx, dword [ebp + 0x90]
and edx, 0xffff
mov dword [esp + 0x94], edx
jne 0x5389ae
mov dword [esp + 0x94], 0xffffffff
mov eax, dword [ebp + 0xa8]
mov dword [esp + 0x98], eax
mov edx, dword [ebp + 0xb0]
lea eax, [esp + 0x74]
push eax
mov dword [esp + 0xa8], edx
call ecx
test eax, eax
jg case.0x545420.14
jl 0x54558a
mov edx, dword [esp + 0x14]
movzx eax, byte [0x5736b6]
add edx, eax
sub dword [esp + 0x38], eax
mov dword [esp + 0x14], edx
jmp 0x5389f8
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx]
mov dword [esp + 0x4c], eax
add eax, 0xffffff73
xor ebx, ebx
cmp eax, 0x10
ja case.0x538a1a.146
movzx edx, byte [eax + 0x5457b0]
jmp dword [edx*4 + 0x545798]
cmp dword [ebp + 0xa4], 0
je case.0x538a1a.145
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
mov eax, ecx
cmp eax, 0xffff
je 0x538b3a
mov edx, dword [ebp + 0xa4]
cmp eax, dword [edx + 4]
je 0x538b3a
xor ebx, ebx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
add ecx, eax
test ebx, ebx
mov dword [esp + 0x14], ecx
jne 0x538a70
cmp byte [ecx - 3], 0x77
jne 0x5386c0
cmp dword [esp + 0x40], 0x8c
jne 0x541c63
mov edx, dword [esp + 0x1c]
mov dword [ebp + 0x98], 2
mov eax, dword [esp + 0x17c]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push edx
mov edx, dword [esp + 0x30]
push ebp
push eax
push edx
push ecx
push esi
call fcn.005385c0
jmp 0x54558a
cmp dword [ebp + 0xa4], 0
je case.0x538a1a.145
mov eax, dword [esp + 0x14]
xor edx, edx
mov dh, byte [eax + 1]
xor ecx, ecx
mov ch, byte [eax + 3]
mov dl, byte [eax + 2]
mov cl, byte [eax + 4]
imul edx, dword [ebp + 0x24]
add edx, dword [ebp + 0x30]
mov edi, ecx
test edi, edi
mov eax, edx
jle case.0x538a1a.145
mov ecx, dword [ebp + 0xa4]
mov ecx, dword [ecx + 4]
jmp 0x538af0
movzx edx, byte [eax + 1]
mov dh, byte [eax]
xor ebx, ebx
sub edi, 1
cmp edx, ecx
sete bl
test ebx, ebx
jne 0x538b3f
add eax, dword [ebp + 0x24]
test edi, edi
jg 0x538af0
jmp case.0x538a1a.145
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add ecx, ecx
mov eax, ecx
cmp eax, dword [esp + 0x170]
jge 0x538a52
mov edx, dword [ebp + 0xc]
cmp dword [edx + eax*4], 0
jl 0x538a52
mov ebx, 1
mov edx, dword [esp + 0x4c]
movzx eax, byte [edx + 0x573640]
jmp 0x538a58
mov edi, dword [esp + 0x14]
xor eax, eax
mov ah, byte [edi + 1]
xor edx, edx
mov dh, byte [edi + 3]
mov al, byte [edi + 2]
mov dl, byte [edi + 4]
imul eax, dword [ebp + 0x24]
add eax, dword [ebp + 0x30]
test edx, edx
jle case.0x538a1a.145
xor ebx, ebx
xor ecx, ecx
mov ch, byte [eax]
sub edx, 1
mov cl, byte [eax + 1]
add ecx, ecx
cmp ecx, dword [esp + 0x170]
jge 0x538b92
mov edi, dword [ebp + 0xc]
cmp dword [edi + ecx*4], 0
jge 0x538b3a
add eax, dword [ebp + 0x24]
test edx, edx
jg 0x538b74
jmp case.0x538a1a.145
mov ecx, dword [esp + 0x170]
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
mov dword [ebp + 0x98], 1
mov eax, dword [esp + 0x17c]
add eax, 1
push eax
push 0
push ebp
push ecx
push edx
push edi
push esi
call fcn.005385c0
cmp eax, 1
jne 0x538c37
mov eax, dword [ebp + 0x8c]
cmp eax, dword [esp + 0x170]
jle 0x538be9
mov dword [esp + 0x170], eax
cmp byte [edi], 0x92
mov ebx, 1
jne 0x538bf5
add edi, ebx
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x77
jne 0x538c13
xor ecx, ecx
mov ch, byte [edi + 1]
mov cl, byte [edi + 2]
add edi, ecx
cmp byte [edi], 0x77
je 0x538c04
mov edx, dword [esp + 0x4c]
movzx eax, byte [edx + 0x573640]
mov ecx, 3
sub ecx, eax
movzx eax, byte [edx + 0x573640]
add edi, ecx
mov dword [esp + 0x14], edi
jmp 0x538a58
test eax, eax
je case.0x538a1a.145
cmp eax, 0xfffffc20
jne 0x54558a
jmp case.0x538a1a.145
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
xor eax, eax
mov ah, byte [ebx + 1]
mov al, byte [ebx + 2]
mov edi, eax
mov eax, dword [ecx + 0x90]
and eax, 0xffff0000
or eax, edi
lea edx, [edi + edi]
mov dword [ecx + 0x90], eax
cmp edx, dword [ecx + 0x14]
jl 0x538c93
or eax, 0x10000
add ebx, 3
mov dword [ecx + 0x90], eax
mov dword [esp + 0x14], ebx
jmp 0x5386c0
mov ebp, dword [ecx + 0x10]
mov eax, dword [ecx + 0xc]
sub ebp, edi
mov edi, dword [eax + ebp*4]
mov dword [eax + edx*4], edi
mov edi, dword [ecx + 0xc]
mov eax, esi
sub eax, dword [ecx + 0x74]
mov dword [edi + edx*4 + 4], eax
mov eax, dword [esp + 0x170]
cmp edx, eax
jl 0x538cdf
mov ecx, dword [ecx + 0xc]
lea edi, [ecx + eax*4]
lea ecx, [ecx + edx*4]
cmp edi, ecx
jae 0x538cd5
sub ecx, edi
sub ecx, 1
shr ecx, 2
add ecx, 1
or eax, 0xffffffff
rep stosd dword es:[edi], eax
add edx, 2
mov dword [esp + 0x170], edx
add ebx, 3
mov dword [esp + 0x14], ebx
jmp 0x5386c0
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0xac]
mov eax, 1
cmp dword [edi + 0x98], eax
mov dword [esp + 0x30], ecx
jne 0x538d12
mov dword [esp + 0x38], eax
mov dword [edi + 0x98], ebp
jmp 0x538d16
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
mov edi, edi
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x170]
add edx, 1
push edx
push 0
push edi
push eax
push ebp
lea ecx, [ebx + 3]
push ecx
push esi
call fcn.005385c0
cmp eax, 1
je 0x538d94
cmp eax, 0xfffffc19
je 0x538d94
cmp eax, 0xfffffc20
mov edx, dword [esp + 0x30]
mov dword [edi + 0xac], edx
jne 0x538d7b
xor ecx, ecx
mov ch, byte [ebx + 1]
mov cl, byte [ebx + 2]
add ecx, ebx
cmp dword [edi + 0x7c], ecx
jae 0x54558a
cmp byte [ebx], 0x77
je 0x538d83
cmp byte [ecx], 0x77
jmp 0x538d7d
test eax, eax
jne 0x54558a
xor eax, eax
mov ah, byte [ebx + 1]
mov al, byte [ebx + 2]
add ebx, eax
cmp byte [ebx], 0x77
je 0x538d20
jmp 0x538d9b
mov ecx, dword [edi + 0x7c]
mov dword [esp + 0x28], ecx
cmp byte [ebx], 0x78
je case.0x545420.14
cmp dword [esp + 0x38], 0
jne 0x542962
nop
xor edx, edx
mov dh, byte [ebx + 1]
mov dl, byte [ebx + 2]
add ebx, edx
cmp byte [ebx], 0x77
je 0x538db0
mov eax, dword [edi + 0x8c]
add ebx, 3
mov dword [esp + 0x14], ebx
mov dword [esp + 0x170], eax
jmp 0x5386c0
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0xac]
mov eax, 1
cmp dword [edi + 0x98], eax
mov dword [esp + 0x30], ecx
jne 0x538dff
mov dword [esp + 0x38], eax
mov dword [edi + 0x98], ebp
jmp 0x538e03
mov dword [esp + 0x38], ebp
mov ebx, dword [esp + 0x170]
mov ebp, dword [esp + 0x28]
mov edi, edi
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x14]
add edx, 1
push edx
push 0
push edi
push ebx
push ebp
add eax, 3
push eax
push esi
call fcn.005385c0
cmp eax, 0xfffffc20
mov ecx, dword [esp + 0x30]
mov dword [edi + 0xac], ecx
jg 0x538e60
jne 0x538e84
mov ecx, dword [esp + 0x14]
xor eax, eax
mov ah, byte [ecx + 1]
mov al, byte [ecx + 2]
add eax, ecx
cmp dword [edi + 0x7c], eax
jae 0x538eb0
cmp byte [ecx], 0x77
je 0x538e6b
cmp byte [eax], 0x77
jne 0x538ea5
jmp 0x538e6b
mov ecx, eax
sub ecx, 0
jne 0x54247a
mov eax, dword [esp + 0x14]
xor edx, edx
mov dh, byte [eax + 1]
mov dl, byte [eax + 2]
add eax, edx
cmp byte [eax], 0x77
mov dword [esp + 0x14], eax
je 0x538e10
jmp 0x538ec3
cmp eax, 0xfffffc19
je case.0x545420.14
cmp eax, 0xfffffc1b
jle 0x54558a
cmp eax, 0xfffffc1f
jg 0x54558a
mov ecx, dword [esp + 0x14]
lea esp, [esp]
xor eax, eax
mov ah, byte [ecx + 1]
mov al, byte [ecx + 2]
add ecx, eax
cmp byte [ecx], 0x77
je 0x538eb0
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x38], 0
jne 0x542962
add dword [esp + 0x14], 3
jmp 0x5386c0
mov edi, dword [esp + 0x10]
xor eax, eax
cmp dword [esp + 0x20], ebp
mov ah, byte [edx + 1]
mov al, byte [edx + 2]
je 0x538f24
cmp eax, ebp
jle 0x538f2f
mov ebp, dword [edi + 0x74]
sub esi, 1
sub eax, 1
cmp esi, ebp
jb case.0x545420.14
mov cl, byte [esi]
and cl, 0xc0
cmp cl, 0x80
jne 0x538f1e
lea esp, [esp]
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
je 0x538f10
test eax, eax
jg 0x538ef1
jmp 0x538f2f
sub esi, eax
cmp esi, dword [edi + 0x74]
jb case.0x545420.14
cmp esi, dword [edi + 0x84]
jae 0x538f3d
mov dword [edi + 0x84], esi
add edx, 3
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov ebx, dword [0x598370]
cmp ebx, ebp
mov edi, dword [esp + 0x14]
je 0x539032
mov dword [esp + 0xa8], 2
movzx ecx, byte [edi + 1]
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0xb0], edx
mov eax, dword [ecx + 0x74]
mov dword [esp + 0xb4], eax
mov edx, dword [ecx + 0x78]
sub edx, dword [ecx + 0x74]
mov eax, dword [esp + 0x28]
mov dword [esp + 0xb8], edx
sub eax, dword [ecx + 0x74]
mov edx, esi
mov dword [esp + 0xbc], eax
sub edx, dword [ecx + 0x74]
xor eax, eax
mov dword [esp + 0xc0], edx
mov ah, byte [edi + 2]
xor edx, edx
mov al, byte [edi + 3]
mov dword [esp + 0xd0], eax
mov dh, byte [edi + 4]
mov eax, dword [esp + 0x170]
mov dl, byte [edi + 5]
mov dword [esp + 0xd4], edx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0xc4], eax
mov eax, dword [ecx + 0x90]
and eax, 0xffff
mov dword [esp + 0xc8], eax
jne 0x539000
mov dword [esp + 0xc8], 0xffffffff
mov edx, dword [ecx + 0xa8]
mov dword [esp + 0xcc], edx
mov eax, dword [ecx + 0xb0]
lea ecx, [esp + 0xa8]
push ecx
mov dword [esp + 0xdc], eax
call ebx
test eax, eax
jg case.0x545420.14
jl 0x54558a
add edi, 6
mov dword [esp + 0x14], edi
jmp 0x5386c0
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
xor ebx, ebx
mov bh, byte [edx + 1]
xor ecx, ecx
mov bl, byte [edx + 2]
add ebx, dword [ebp + 0x70]
cmp ebx, dword [ebp + 0x70]
je 0x53905e
mov ch, byte [ebx + 3]
mov cl, byte [ebx + 4]
mov eax, dword [ebp + 0xa4]
test eax, eax
je 0x53907c
cmp ecx, dword [eax + 4]
jne 0x539076
cmp esi, dword [eax + 0x14]
je 0x5428d5
mov eax, dword [eax]
test eax, eax
jne 0x539068
mov dword [esp + 0x58], ecx
mov eax, dword [ebp + 0x90]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], esi
mov ecx, dword [ebp + 0xa4]
mov dword [esp + 0x54], ecx
lea eax, [esp + 0x54]
mov dword [ebp + 0xa4], eax
mov ecx, dword [ebp + 0x10]
add edx, 3
cmp ecx, 0x1e
mov dword [esp + 0x14], edx
mov dword [esp + 0x60], ecx
jg 0x5390c2
lea eax, [esp + 0xdc]
mov dword [esp + 0x5c], eax
jmp 0x5390dd
add ecx, ecx
add ecx, ecx
push ecx
call dword [0x596f0c]
test eax, eax
mov dword [esp + 0x5c], eax
je 0x5428df
mov ecx, dword [esp + 0x60]
lea edx, [ecx*4]
mov ecx, dword [ebp + 0xc]
push edx
push ecx
push eax
call fcn.00549ad0
add esp, 0xc
cmp byte [ebx], 0x88
sbb eax, eax
add eax, 1
mov dword [esp + 0x38], eax
mov edi, edi
test eax, eax
je 0x53910e
mov dword [ebp + 0x98], 2
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x170]
add edx, 1
push edx
mov edx, dword [esp + 0x2c]
push eax
movzx eax, byte [ebx]
push ebp
push ecx
movzx ecx, byte [eax + 0x573640]
push edx
add ecx, ebx
push ecx
push esi
call fcn.005385c0
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
mov edi, eax
lea eax, [edx*4]
mov edx, dword [ebp + 0xc]
push eax
push ecx
push edx
call fcn.00549ad0
mov eax, dword [esp + 0x70]
mov dword [ebp + 0x90], eax
mov ecx, dword [esp + 0x60]
add esp, 0xc
cmp edi, 1
mov dword [ebp + 0xa4], ecx
je 0x5391c1
cmp edi, 0xfffffc19
je 0x5391c1
cmp edi, 0xfffffc1c
jl 0x539193
cmp edi, 0xfffffc20
jle 0x542910
test edi, edi
jne 0x5428e9
xor eax, eax
lea edx, [esp + 0x54]
mov dword [ebp + 0xa4], edx
mov ah, byte [ebx + 1]
mov al, byte [ebx + 2]
add ebx, eax
cmp byte [ebx], 0x77
jne 0x542906
mov eax, dword [esp + 0x38]
jmp 0x539100
mov eax, dword [esp + 0x5c]
lea ecx, [esp + 0xdc]
cmp eax, ecx
je 0x5391d7
push eax
call dword [0x596f10]
mov edx, dword [ebp + 0x7c]
mov esi, dword [ebp + 0x80]
mov dword [esp + 0x28], edx
jmp 0x5386c0
xor eax, eax
mov ah, byte [edx + 1]
mov al, byte [edx + 2]
add edx, eax
cmp byte [edx], 0x77
je case.0x5386ea.119
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x174]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
push edx
add edi, 1
push edi
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x77
je 0x539240
add edi, 3
mov dword [esp + 0x14], edi
jmp 0x5386c0
lea edi, [edx + 1]
mov eax, edi
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x77
je 0x539260
mov edx, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
add edx, 1
push edx
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x178]
push edx
mov edx, dword [esp + 0x34]
push ecx
push edx
add eax, 3
push eax
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
mov dword [esp + 0x14], edi
jmp 0x5386c0
lea eax, [edx + 1]
nop
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x77
je 0x5392b0
add eax, 3
mov dword [esp + 0x14], eax
jmp 0x5386c0
movzx eax, byte [edx + 1]
add edx, 1
cmp eax, 0x86
mov dword [esp + 0x14], edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], 1
je 0x5392f4
cmp eax, 0x8b
jne 0x53882e
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
xor edx, edx
mov dh, byte [eax + 3]
mov dl, byte [eax + 4]
lea ecx, [edx + edx]
cmp ecx, dword [edi + 0x14]
mov dword [esp + 0x38], edx
jge 0x538832
mov ebp, eax
mov eax, dword [edi + 0xc]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [eax + ecx*4 + 4]
sub ebp, dword [edi + 0x70]
mov dword [esp + 0x50], ecx
mov ecx, dword [edi + 0x10]
sub ecx, edx
mov edx, dword [eax + ecx*4]
mov eax, dword [edi + 0x90]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], edx
mov dword [esp + 0x3c], eax
lea ecx, [ecx]
mov edx, dword [edi + 0x10]
sub edx, dword [esp + 0x38]
mov eax, dword [edi + 0xc]
mov ecx, esi
sub ecx, dword [edi + 0x74]
cmp dword [esp + 0x40], 0x88
mov dword [eax + edx*4], ecx
jb 0x539376
mov dword [edi + 0x98], 2
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x170]
add ecx, 1
push ecx
push edx
push edi
push eax
mov eax, dword [esp + 0x24]
movzx ecx, byte [eax]
movzx edx, byte [ecx + 0x573640]
push ebx
add edx, eax
push edx
push esi
call fcn.005385c0
cmp eax, 0xfffffc1a
jne 0x539493
mov eax, dword [edi + 0x8c]
mov ecx, dword [edi + 0x90]
mov ebx, dword [edi + 0x7c]
mov dword [esp + 0x170], eax
mov eax, dword [edi + 0x70]
add eax, ebp
cmp esi, dword [edi + 0x80]
mov dword [esp + 0x14], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], ebx
je 0x539540
mov esi, dword [edi + 0x80]
jmp 0x539350
cmp eax, 0xfffffc20
jne 0x539426
mov edx, dword [esp + 0x14]
xor ecx, ecx
mov ch, byte [edx + 1]
mov cl, byte [edx + 2]
add ecx, edx
cmp dword [edi + 0x7c], ecx
jae 0x54558a
cmp byte [edx], 0x77
je 0x539432
cmp byte [ecx], 0x77
jne 0x54558a
jmp 0x539432
test eax, eax
jne 0x54558a
mov edx, dword [esp + 0x14]
xor eax, eax
mov ah, byte [edx + 1]
mov al, byte [edx + 2]
add edx, eax
cmp byte [edx], 0x77
mov dword [esp + 0x14], edx
jne 0x539475
mov ecx, dword [esp + 0x3c]
mov dword [edi + 0x90], ecx
jmp 0x538860
xor edx, edx
mov dh, byte [eax + 1]
mov dl, byte [eax + 2]
add eax, edx
cmp byte [eax], 0x77
je 0x539454
mov edx, eax
add edx, 3
mov dword [esp + 0x14], eax
mov dword [esp + 0x14], edx
jmp 0x5386c0
cmp dword [esp + 0x30], 0
jne 0x539487
cmp dword [esp + 0x34], 0
je case.0x545420.14
add edx, 3
mov dword [esp + 0x14], edx
jmp 0x5386c0
cmp eax, 0xfffffc20
jne 0x5394c1
mov edx, dword [esp + 0x14]
xor ecx, ecx
mov ch, byte [edx + 1]
mov cl, byte [edx + 2]
add ecx, edx
cmp dword [edi + 0x7c], ecx
jae 0x54558a
cmp byte [edx], 0x77
je 0x5394cd
cmp byte [ecx], 0x77
jne 0x54558a
jmp 0x5394cd
test eax, eax
jne 0x54558a
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
xor ecx, ecx
mov dword [edi + 0x90], eax
mov ch, byte [edx + 1]
mov cl, byte [edx + 2]
add edx, ecx
cmp byte [edx], 0x77
mov dword [esp + 0x14], edx
je 0x539350
cmp dword [esp + 0x30], 0
jne 0x539520
mov ebx, dword [edi + 0xc]
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x24]
lea eax, [ecx + ecx]
mov dword [ebx + eax*4], ebp
mov ebx, dword [edi + 0xc]
mov ebp, dword [esp + 0x50]
mov dword [ebx + eax*4 + 4], ebp
mov eax, dword [edi + 0x10]
sub eax, ecx
mov ecx, dword [edi + 0xc]
mov edi, dword [esp + 0x2c]
mov dword [ecx + eax*4], edi
cmp dword [esp + 0x34], 0
jne 0x539532
cmp dword [esp + 0x30], 0
je case.0x545420.14
add edx, 3
mov dword [esp + 0x14], edx
jmp 0x5386c0
xor edx, edx
mov dh, byte [eax + 1]
mov dl, byte [eax + 2]
add eax, edx
cmp byte [eax], 0x77
je 0x539540
mov dword [esp + 0x14], eax
mov edx, eax
jmp 0x539520
mov ecx, dword [esp + 0x14]
xor edx, edx
mov dh, byte [ecx + 1]
mov dl, byte [ecx + 2]
sub ecx, edx
mov al, byte [ecx]
cmp al, 0x88
mov dword [esp + 0x40], ecx
jae 0x53957d
cmp al, 0x81
je 0x53957d
mov dword [esp + 0x3c], 0
jmp 0x53958e
mov edx, dword [esp + 0x1c]
mov edi, dword [edx + 4]
mov edx, dword [edx]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x1c], edx
cmp al, 0x7d
jb 0x53959a
cmp al, 0x80
jbe 0x54292d
cmp al, 0x82
je 0x54292d
cmp al, 0x85
je 0x5395b6
cmp al, 0x8a
je 0x5395b6
cmp al, 0x86
je 0x5395b6
cmp al, 0x8b
jne 0x53965c
mov ebp, dword [esp + 0x10]
xor eax, eax
cmp dword [ebp + 0xa4], 0
mov ah, byte [ecx + 3]
mov al, byte [ecx + 4]
mov ecx, eax
mov dword [esp + 0x38], ecx
lea edx, [ecx + ecx]
je 0x5395e3
mov eax, dword [ebp + 0xa4]
cmp dword [eax + 4], ecx
je 0x542955
mov eax, dword [ebp + 0x90]
mov ebx, dword [esp + 0x170]
and eax, 0xffff0000
or eax, ecx
mov dword [ebp + 0x90], eax
cmp edx, dword [ebp + 0x14]
jl 0x53960f
or eax, 0x10000
mov dword [ebp + 0x90], eax
jmp 0x539667
cmp edx, ebx
jle 0x539630
mov eax, dword [ebp + 0xc]
lea edi, [eax + ebx*4]
lea ecx, [eax + edx*4]
cmp edi, ecx
jae 0x539630
sub ecx, edi
sub ecx, 1
shr ecx, 2
add ecx, 1
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
sub ecx, dword [esp + 0x38]
mov ecx, dword [eax + ecx*4]
mov dword [eax + edx*4], ecx
mov ecx, dword [ebp + 0xc]
mov eax, esi
sub eax, dword [ebp + 0x74]
cmp ebx, edx
mov dword [ecx + edx*4 + 4], eax
jg 0x539667
lea ebx, [edx + 2]
mov dword [esp + 0x170], ebx
jmp 0x539667
mov ebx, dword [esp + 0x170]
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov al, byte [ecx]
cmp al, 0x7b
je 0x54296c
cmp al, 0x78
je 0x539683
cmp esi, dword [esp + 0x3c]
jne 0x542175
mov edi, dword [esp + 0x40]
add ecx, 3
cmp byte [edi], 0x81
je 0x542a23
mov dword [esp + 0x14], ecx
jmp 0x5386c0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], ebp
je 0x5396b4
cmp esi, dword [eax + 0x74]
je case.0x545420.14
jmp 0x5396b4
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x74]
jne case.0x545420.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], ebp
je 0x5396db
cmp esi, dword [eax + 0x74]
je case.0x545420.14
mov edx, dword [eax + 0x74]
cmp esi, edx
je 0x539751
cmp esi, dword [eax + 0x78]
je case.0x545420.14
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x539720
cmp esi, edx
jbe case.0x545420.14
mov edx, dword [esp + 0x20]
push edx
lea edx, [eax + 0x1c]
mov eax, dword [eax + 0x74]
push edx
push eax
push ecx
push esi
call fcn.00546f80
test eax, eax
je case.0x545420.14
add dword [esp + 0x14], 1
jmp 0x5386c0
mov edx, dword [eax + 0x1c]
mov ecx, dword [eax + 0x74]
add ecx, edx
cmp esi, ecx
jb case.0x545420.14
mov ecx, esi
sub ecx, edx
mov dl, byte [ecx]
cmp dl, byte [eax + 0x34]
jne case.0x545420.14
cmp dword [eax + 0x1c], 1
je 0x539751
mov cl, byte [ecx + 1]
cmp cl, byte [eax + 0x35]
jne case.0x545420.14
add dword [esp + 0x14], 1
jmp 0x5386c0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x94]
add ecx, dword [eax + 0x74]
cmp esi, ecx
jne case.0x545420.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5386c0
add edx, 1
mov dword [esp + 0x28], esi
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov edi, dword [esp + 0x10]
cmp esi, dword [edi + 0x78]
jae 0x5397ff
mov eax, dword [edi + 0x18]
cmp eax, ebp
je 0x5397c8
mov edx, dword [esp + 0x20]
push edx
mov edx, dword [edi + 0x78]
lea ecx, [edi + 0x1c]
push ecx
push edx
push eax
push esi
call fcn.00546dc0
test eax, eax
je 0x542a59
mov edx, dword [esp + 0x14]
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov eax, dword [edi + 0x78]
sub eax, dword [edi + 0x1c]
cmp esi, eax
ja 0x542a59
mov cl, byte [esi]
cmp cl, byte [edi + 0x34]
jne 0x542a59
cmp dword [edi + 0x1c], 1
je 0x53982c
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
jne 0x542a5b
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5386c0
cmp dword [edi + 0x48], ebp
jne case.0x545420.14
cmp dword [edi + 0x88], ebp
je 0x53982c
cmp esi, dword [edi + 0x84]
jbe 0x53982c
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x88], eax
jg 0x545577
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov edi, dword [esp + 0x10]
cmp dword [edi + 0x48], ebp
jne case.0x545420.14
cmp dword [edi + 0x58], ebp
je 0x53985f
jmp 0x539850
mov edi, dword [esp + 0x10]
cmp esi, dword [edi + 0x78]
jb case.0x545420.14
jmp 0x539808
mov edi, dword [esp + 0x10]
cmp esi, dword [edi + 0x78]
jae 0x5398c6
mov eax, dword [edi + 0x18]
cmp eax, ebp
lea ebp, [edi + 0x1c]
je 0x53988d
mov ecx, dword [esp + 0x20]
mov edx, dword [edi + 0x78]
push ecx
push ebp
push edx
push eax
push esi
call fcn.00546dc0
test eax, eax
je 0x542aa4
mov edx, dword [esp + 0x14]
jmp 0x5398b8
mov eax, dword [edi + 0x78]
sub eax, dword [ebp]
cmp esi, eax
ja 0x542aa4
mov cl, byte [esi]
cmp cl, byte [edi + 0x34]
jne 0x542aa4
cmp dword [ebp], 1
je 0x5398b8
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
jne 0x542aa4
mov ecx, dword [edi + 0x78]
sub ecx, dword [ebp]
cmp esi, ecx
jne 0x542aa4
cmp dword [edi + 0x88], 0
jmp 0x53980e
cmp dword [esp + 0x20], ebp
je 0x539bb0
mov ebp, dword [esp + 0x10]
cmp esi, dword [ebp + 0x74]
je 0x539a37
mov dl, byte [esi - 1]
lea eax, [esi - 1]
and dl, 0xc0
cmp dl, 0x80
jne 0x539905
mov cl, byte [eax - 1]
sub eax, 1
and cl, 0xc0
cmp cl, 0x80
je 0x5398f7
cmp eax, dword [ebp + 0x84]
jae 0x539913
mov dword [ebp + 0x84], eax
movzx ecx, byte [eax]
cmp ecx, 0xc0
jb 0x5399c3
movzx edx, byte [eax + 1]
and edx, 0x3f
test cl, 0x20
jne 0x53993b
and ecx, 0x1f
shl ecx, 6
or ecx, edx
jmp 0x5399c3
test cl, 0x10
jne 0x53994f
movzx eax, byte [eax + 2]
and ecx, 0xf
shl ecx, 6
jmp 0x5399b7
test cl, 8
jne 0x539966
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [eax + 2]
movzx eax, byte [eax + 3]
jmp 0x5399b1
test cl, 4
jne 0x539989
and ecx, 3
shl ecx, 6
or edx, ecx
movzx ecx, byte [eax + 2]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [eax + 3]
movzx eax, byte [eax + 4]
jmp 0x5399b1
and ecx, 1
shl ecx, 6
or edx, ecx
movzx ecx, byte [eax + 2]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [eax + 3]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [eax + 4]
movzx eax, byte [eax + 5]
shl edx, 6
and ecx, 0x3f
or edx, ecx
and eax, 0x3f
shl edx, 6
or edx, eax
mov ecx, edx
cmp dword [ebp + 0x54], 0
je 0x539a1f
cmp ecx, 0x5f
jne 0x5399d3
lea edi, [ecx - 0x5e]
jmp 0x539a39
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x5399f5
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx ecx, byte [eax*8 + 0x5742d9]
mov eax, dword [ecx*4 + 0x573818]
cmp eax, 1
je 0x539a18
cmp eax, 3
jne 0x539a37
mov edi, 1
jmp 0x539a39
cmp ecx, 0x100
jae 0x539a37
mov edx, dword [ebp + 0x40]
test byte [ecx + edx], 0x10
je 0x539a37
mov edi, 1
jmp 0x539a39
xor edi, edi
cmp esi, dword [ebp + 0x78]
jb 0x539a6a
cmp dword [ebp + 0x88], 0
je 0x539a63
cmp esi, dword [ebp + 0x84]
jbe 0x539a63
mov eax, 1
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x88], eax
jg 0x545577
xor eax, eax
jmp 0x539ce6
movzx ecx, byte [esi]
cmp ecx, 0xc0
jb 0x539b2e
test cl, 0x20
jne 0x539a92
movzx eax, byte [esi + 1]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
jmp 0x539b2e
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 0x10
jne 0x539ab9
and ecx, 0xf
shl ecx, 6
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
jmp 0x539b2e
test cl, 8
jne 0x539acc
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
jmp 0x539b1e
and eax, 0x3f
test cl, 4
jne 0x539afd
and ecx, 3
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and ecx, 0x3f
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
jmp 0x539b2e
and ecx, 1
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp dword [ebp + 0x54], 0
je 0x539b8d
cmp ecx, 0x5f
jne 0x539b41
lea eax, [ecx - 0x5e]
jmp 0x539ce6
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x539b63
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx ecx, byte [eax*8 + 0x5742d9]
mov eax, dword [ecx*4 + 0x573818]
cmp eax, 1
je 0x539ba6
cmp eax, 3
je 0x539ba6
xor eax, eax
jmp 0x539ce6
cmp ecx, 0x100
jae 0x539c6b
mov edx, dword [ebp + 0x40]
test byte [ecx + edx], 0x10
je 0x539c6b
mov eax, 1
jmp 0x539ce6
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x74]
jne 0x539bc0
xor edi, edi
jmp 0x539c41
cmp esi, dword [ecx + 0x84]
ja 0x539bd1
lea eax, [esi - 1]
mov dword [ecx + 0x84], eax
cmp dword [ecx + 0x54], 0
je 0x539c30
movzx edi, byte [esi - 1]
cmp edi, 0x5f
jne 0x539be7
mov edi, 1
jmp 0x539c41
mov eax, edi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and edi, 0x8000007f
jns 0x539c09
dec edi
or edi, 0xffffff80
inc edi
add edx, edi
movzx eax, word [edx*2 + 0x577b58]
movzx edx, byte [eax*8 + 0x5742d9]
mov eax, dword [edx*4 + 0x573818]
cmp eax, 1
je 0x539be0
cmp eax, 3
je 0x539be0
xor edi, edi
jmp 0x539c41
movzx edx, byte [esi - 1]
mov eax, dword [ecx + 0x40]
movzx edi, byte [edx + eax]
shr edi, 4
and edi, 1
cmp esi, dword [ecx + 0x78]
jb 0x539c72
cmp dword [ecx + 0x88], 0
je 0x539c6b
cmp esi, dword [ecx + 0x84]
jbe 0x539c6b
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x88], eax
jg 0x545577
xor eax, eax
jmp 0x539ce6
cmp dword [ecx + 0x54], 0
je 0x539cd6
movzx ecx, byte [esi]
cmp ecx, 0x5f
jne 0x539c85
lea eax, [ecx - 0x5e]
jmp 0x539ce6
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x575958]
shl eax, 7
and ecx, 0x8000007f
jns 0x539ca7
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx ecx, word [eax*2 + 0x577b58]
movzx edx, byte [ecx*8 + 0x5742d9]
mov eax, dword [edx*4 + 0x573818]
cmp eax, 1
je 0x539ba6
cmp eax, 3
je 0x539ba6
xor eax, eax
jmp 0x539ce6
mov eax, dword [ecx + 0x40]
movzx ecx, byte [esi]
movzx eax, byte [ecx + eax]
shr eax, 4
and eax, 1
mov ecx, dword [esp + 0x14]
mov dl, byte [ecx]
add ecx, 1
cmp dl, 5
mov dword [esp + 0x14], ecx
jne 0x539d03
xor ecx, ecx
cmp eax, edi
sete cl
mov eax, ecx
jmp 0x539d0c
xor edx, edx
cmp eax, edi
setne dl
mov eax, edx
test eax, eax
je 0x5386c0
xor eax, eax
jmp 0x54558a
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x18]
cmp eax, ebp
je 0x539d4f
cmp esi, dword [edi + 0x78]
jae 0x539d76
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [edi + 0x78]
lea edx, [edi + 0x1c]
push edx
push ecx
push eax
push esi
call fcn.00546dc0
test eax, eax
jne case.0x545420.14
mov edx, dword [esp + 0x14]
xor ebp, ebp
jmp 0x539d76
mov eax, dword [edi + 0x78]
sub eax, dword [edi + 0x1c]
cmp esi, eax
ja 0x539d76
mov cl, byte [esi]
cmp cl, byte [edi + 0x34]
jne 0x539d76
cmp dword [edi + 0x1c], 1
je case.0x545420.14
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
je case.0x545420.14
cmp dword [edi + 0x88], ebp
je 0x539db2
lea ecx, [esi + 1]
cmp ecx, dword [edi + 0x78]
jb 0x539db2
cmp dword [edi + 0x18], ebp
jne 0x539db2
cmp dword [edi + 0x1c], 2
jne 0x539db2
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x539db2
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x88], eax
jg 0x545577
jmp 0x539db2
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x78]
cmp esi, eax
jae 0x543037
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53982c
cmp esi, eax
jae 0x53982c
mov cl, byte [esi]
and cl, 0xc0
cmp cl, 0x80
jne 0x53982c
add esi, 1
cmp esi, eax
jb 0x539dd2
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x542afa
add esi, 1
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x542aef
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x539f0d
cmp eax, 0xc0
jb 0x539f0d
movzx ebx, byte [esi]
and ebx, 0x3f
test al, 0x20
jne 0x539e51
and eax, 0x1f
shl eax, 6
or eax, ebx
add esi, 1
jmp 0x539f0d
test al, 0x10
jne 0x539e71
and eax, 0xf
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 2
jmp 0x539f0d
test al, 8
jne 0x539e9d
and eax, 7
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 3
jmp 0x539f0d
test al, 4
jne 0x539ed2
and eax, 3
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 3]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 4
jmp 0x539f0d
and eax, 1
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 3]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 4]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 5
cmp eax, 0x100
jae 0x53982c
mov ecx, dword [ecx + 0x40]
test byte [eax + ecx], 4
jne case.0x545420.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x542aef
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53a02f
cmp eax, 0xc0
jb 0x53a02f
movzx ebx, byte [esi]
and ebx, 0x3f
test al, 0x20
jne 0x539f73
and eax, 0x1f
shl eax, 6
or eax, ebx
add esi, 1
jmp 0x53a02f
test al, 0x10
jne 0x539f93
and eax, 0xf
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 2
jmp 0x53a02f
test al, 8
jne 0x539fbf
and eax, 7
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 3
jmp 0x53a02f
test al, 4
jne 0x539ff4
and eax, 3
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 3]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 4
jmp 0x53a02f
and eax, 1
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 3]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 4]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 5
cmp eax, 0xff
ja case.0x545420.14
mov ecx, dword [ecx + 0x40]
test byte [eax + ecx], 4
je case.0x545420.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x542aef
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53a151
cmp eax, 0xc0
jb 0x53a151
movzx ebx, byte [esi]
and ebx, 0x3f
test al, 0x20
jne 0x53a095
and eax, 0x1f
shl eax, 6
or eax, ebx
add esi, 1
jmp 0x53a151
test al, 0x10
jne 0x53a0b5
and eax, 0xf
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 2
jmp 0x53a151
test al, 8
jne 0x53a0e1
and eax, 7
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 3
jmp 0x53a151
test al, 4
jne 0x53a116
and eax, 3
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 3]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 4
jmp 0x53a151
and eax, 1
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 3]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 4]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 5
cmp eax, 0x100
jae 0x53982c
mov ecx, dword [ecx + 0x40]
test byte [eax + ecx], 1
jne case.0x545420.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x542aef
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53a273
cmp eax, 0xc0
jb 0x53a273
movzx ebx, byte [esi]
and ebx, 0x3f
test al, 0x20
jne 0x53a1b7
and eax, 0x1f
shl eax, 6
or eax, ebx
add esi, 1
jmp 0x53a273
test al, 0x10
jne 0x53a1d7
and eax, 0xf
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 2
jmp 0x53a273
test al, 8
jne 0x53a203
and eax, 7
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 3
jmp 0x53a273
test al, 4
jne 0x53a238
and eax, 3
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 3]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 4
jmp 0x53a273
and eax, 1
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 3]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 4]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 5
cmp eax, 0xff
ja case.0x545420.14
mov ecx, dword [ecx + 0x40]
test byte [eax + ecx], 1
je case.0x545420.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x542aef
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53a395
cmp eax, 0xc0
jb 0x53a395
movzx ebx, byte [esi]
and ebx, 0x3f
test al, 0x20
jne 0x53a2d9
and eax, 0x1f
shl eax, 6
or eax, ebx
add esi, 1
jmp 0x53a395
test al, 0x10
jne 0x53a2f9
and eax, 0xf
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 2
jmp 0x53a395
test al, 8
jne 0x53a325
and eax, 7
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 3
jmp 0x53a395
test al, 4
jne 0x53a35a
and eax, 3
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 3]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 4
jmp 0x53a395
and eax, 1
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 3]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 4]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 5
cmp eax, 0x100
jae 0x53982c
mov ecx, dword [ecx + 0x40]
test byte [eax + ecx], 0x10
jne case.0x545420.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x542aef
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53a4b7
cmp eax, 0xc0
jb 0x53a4b7
movzx ebx, byte [esi]
and ebx, 0x3f
test al, 0x20
jne 0x53a3fb
and eax, 0x1f
shl eax, 6
or eax, ebx
add esi, 1
jmp 0x53a4b7
test al, 0x10
jne 0x53a41b
and eax, 0xf
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 2
jmp 0x53a4b7
test al, 8
jne 0x53a447
and eax, 7
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 3
jmp 0x53a4b7
test al, 4
jne 0x53a47c
and eax, 3
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 3]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 4
jmp 0x53a4b7
and eax, 1
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 3]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 4]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 5
cmp eax, 0xff
ja case.0x545420.14
mov ecx, dword [ecx + 0x40]
test byte [eax + ecx], 0x10
je case.0x545420.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x78]
cmp esi, edi
jae 0x542aef
movzx eax, byte [esi]
mov ebp, 1
add esi, ebp
cmp dword [esp + 0x20], 0
je 0x53a5de
cmp eax, 0xc0
jb 0x53a5de
movzx ebx, byte [esi]
and ebx, 0x3f
test al, 0x20
jne 0x53a523
and eax, 0x1f
shl eax, 6
or eax, ebx
add esi, ebp
jmp 0x53a5de
test al, 0x10
jne 0x53a543
and eax, 0xf
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 2
jmp 0x53a5de
test al, 8
jne 0x53a56f
and eax, 7
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 3
jmp 0x53a5de
test al, 4
jne 0x53a5a4
and eax, 3
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 3]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 4
jmp 0x53a5de
and eax, ebp
shl eax, 6
or eax, ebx
movzx ebx, byte [esi + 1]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 2]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 3]
shl eax, 6
and ebx, 0x3f
or eax, ebx
movzx ebx, byte [esi + 4]
shl eax, 6
and ebx, 0x3f
or eax, ebx
add esi, 5
cmp eax, 0xd
ja 0x53a636
je 0x53a5f5
cmp eax, 0xa
je 0x53a65d
jbe case.0x545420.14
cmp eax, 0xc
jmp 0x53a64d
cmp esi, edi
jb 0x53a624
cmp dword [ecx + 0x88], 0
je 0x53a65d
cmp esi, dword [ecx + 0x84]
jbe 0x53a65d
mov dword [ecx + 0x64], ebp
cmp dword [ecx + 0x88], ebp
jg 0x545577
add edx, ebp
mov dword [esp + 0x14], edx
jmp 0x5386c0
cmp byte [esi], 0xa
jne 0x53a65d
add esi, ebp
add edx, ebp
mov dword [esp + 0x14], edx
jmp 0x5386c0
cmp eax, 0x85
je 0x53a653
cmp eax, 0x2027
jbe case.0x545420.14
cmp eax, 0x2029
ja case.0x545420.14
cmp dword [ecx + 0x68], 0
jne case.0x545420.14
add edx, ebp
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x542afa
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53a766
cmp eax, 0xc0
jb 0x53a766
movzx ecx, byte [esi]
and ecx, 0x3f
test al, 0x20
jne 0x53a6aa
and eax, 0x1f
shl eax, 6
or eax, ecx
add esi, 1
jmp 0x53a766
test al, 0x10
jne 0x53a6ca
and eax, 0xf
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 2
jmp 0x53a766
test al, 8
jne 0x53a6f6
and eax, 7
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 3
jmp 0x53a766
test al, 4
jne 0x53a72b
and eax, 3
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 4
jmp 0x53a766
and eax, 1
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 4]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 5
cmp eax, 0x180e
ja 0x53a795
je case.0x545420.14
cmp eax, 0xa0
ja 0x53a78e
je case.0x545420.14
cmp eax, 9
je case.0x545420.14
cmp eax, 0x20
jmp 0x53a7c4
cmp eax, 0x1680
jmp 0x53a7c4
cmp eax, 0x205f
ja 0x53a7bf
je case.0x545420.14
cmp eax, 0x2000
jb 0x53982c
cmp eax, 0x200a
jbe case.0x545420.14
cmp eax, 0x202f
jmp 0x53a7c4
cmp eax, 0x3000
je case.0x545420.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x542afa
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53a8d4
cmp eax, 0xc0
jb 0x53a8d4
movzx ecx, byte [esi]
and ecx, 0x3f
test al, 0x20
jne 0x53a818
and eax, 0x1f
shl eax, 6
or eax, ecx
add esi, 1
jmp 0x53a8d4
test al, 0x10
jne 0x53a838
and eax, 0xf
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 2
jmp 0x53a8d4
test al, 8
jne 0x53a864
and eax, 7
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 3
jmp 0x53a8d4
test al, 4
jne 0x53a899
and eax, 3
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 4
jmp 0x53a8d4
and eax, 1
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 4]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 5
cmp eax, 0x180e
ja 0x53a903
je 0x53982c
cmp eax, 0xa0
ja 0x53a8fc
je 0x53982c
cmp eax, 9
je 0x53982c
cmp eax, 0x20
jmp 0x53a932
cmp eax, 0x1680
jmp 0x53a932
cmp eax, 0x205f
ja 0x53a92d
je 0x53982c
cmp eax, 0x2000
jb case.0x545420.14
cmp eax, 0x200a
jbe 0x53982c
cmp eax, 0x202f
jmp 0x53a932
cmp eax, 0x3000
jne case.0x545420.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x542afa
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53aa42
cmp eax, 0xc0
jb 0x53aa42
movzx ecx, byte [esi]
and ecx, 0x3f
test al, 0x20
jne 0x53a986
and eax, 0x1f
shl eax, 6
or eax, ecx
add esi, 1
jmp 0x53aa42
test al, 0x10
jne 0x53a9a6
and eax, 0xf
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 2
jmp 0x53aa42
test al, 8
jne 0x53a9d2
and eax, 7
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 3
jmp 0x53aa42
test al, 4
jne 0x53aa07
and eax, 3
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 4
jmp 0x53aa42
and eax, 1
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 4]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 5
cmp eax, 0x85
ja 0x53aa5d
je case.0x545420.14
cmp eax, 0xa
jb 0x53982c
cmp eax, 0xd
jmp 0x53aa6d
cmp eax, 0x2028
jb 0x53982c
cmp eax, 0x2029
jbe case.0x545420.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x542afa
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53ab7d
cmp eax, 0xc0
jb 0x53ab7d
movzx ecx, byte [esi]
and ecx, 0x3f
test al, 0x20
jne 0x53aac1
and eax, 0x1f
shl eax, 6
or eax, ecx
add esi, 1
jmp 0x53ab7d
test al, 0x10
jne 0x53aae1
and eax, 0xf
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 2
jmp 0x53ab7d
test al, 8
jne 0x53ab0d
and eax, 7
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 3
jmp 0x53ab7d
test al, 4
jne 0x53ab42
and eax, 3
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 4
jmp 0x53ab7d
and eax, 1
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 4]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 5
cmp eax, 0x85
ja 0x53ab98
je 0x53982c
cmp eax, 0xa
jb case.0x545420.14
cmp eax, 0xd
jmp 0x53aba8
cmp eax, 0x2028
jb case.0x545420.14
cmp eax, 0x2029
ja case.0x545420.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x542afa
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x53acc9
cmp ecx, 0xc0
jb 0x53acc9
test cl, 0x20
jne 0x53abff
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x53acc9
test cl, 0x10
jne 0x53ac26
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 2
jmp 0x53acc9
test cl, 8
jne 0x53ac59
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x53acc9
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x53ac95
and ecx, 3
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x53acc9
and ecx, 1
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x575958]
mov edx, ecx
shl eax, 7
and edx, 0x8000007f
jns 0x53aced
dec edx
or edx, 0xffffff80
inc edx
mov edi, dword [esp + 0x14]
add eax, edx
movzx edx, byte [edi + 1]
cmp edx, 0xa
movzx eax, word [eax*2 + 0x577b58]
lea eax, [eax*8 + 0x5742d8]
ja case.default.0x53ad0f
jmp dword [edx*4 + 0x5457c4]
cmp ebx, 0xf
jmp 0x53af21
mov al, byte [eax + 1]
cmp al, 9
je 0x53ad3e
cmp al, 5
je 0x53ad3e
cmp al, 8
je 0x53ad3e
xor ecx, ecx
xor eax, eax
cmp ebx, 0xf
sete cl
cmp eax, ecx
jmp 0x53af21
xor ecx, ecx
cmp ebx, 0xf
sete cl
mov eax, 1
cmp eax, ecx
jmp 0x53af21
movzx edx, byte [eax + 1]
movzx eax, byte [edi + 2]
xor ecx, ecx
cmp eax, dword [edx*4 + 0x573818]
setne cl
xor edx, edx
cmp ebx, 0x10
sete dl
cmp ecx, edx
jmp 0x53af21
mov cl, byte [edi + 2]
xor edx, edx
cmp cl, byte [eax + 1]
setne dl
xor eax, eax
cmp ebx, 0x10
sete al
cmp edx, eax
jmp 0x53af21
mov cl, byte [edi + 2]
xor edx, edx
cmp cl, byte [eax]
setne dl
xor eax, eax
cmp ebx, 0x10
sete al
cmp edx, eax
jmp 0x53af21
movzx ecx, byte [eax + 1]
mov eax, dword [ecx*4 + 0x573818]
cmp eax, 1
je 0x53af12
cmp eax, 3
je 0x53af12
xor eax, eax
jmp 0x53af17
cmp ecx, 0x180e
ja 0x53ae0f
je case.0x53ad0f.0
cmp ecx, 0x85
ja 0x53adfb
je case.0x53ad0f.0
cmp ecx, 9
jb case.0x53ae2f.8203
cmp ecx, 0xd
jbe case.0x53ad0f.0
cmp ecx, 0x20
jmp 0x53ae48
cmp ecx, 0xa0
je case.0x53ad0f.0
cmp ecx, 0x1680
jmp 0x53ae48
cmp ecx, 0x202f
ja 0x53ae36
je case.0x53ad0f.0
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0x53ae2f.8203
movzx ecx, byte [ecx + 0x5457f8]
jmp dword [ecx*4 + 0x5457f0]
cmp ecx, 0x205f
je case.0x53ad0f.0
cmp ecx, 0x3000
je case.0x53ad0f.0
movzx edx, byte [eax + 1]
xor eax, eax
cmp dword [edx*4 + 0x573818], 6
sete al
xor ecx, ecx
cmp ebx, 0xf
sete cl
cmp eax, ecx
jmp 0x53af21
movzx edx, byte [eax + 1]
mov eax, dword [edx*4 + 0x573818]
cmp eax, 1
je 0x53ad3e
cmp eax, 3
je 0x53ad3e
cmp ecx, 0x5f
je 0x53ad3e
xor ecx, ecx
xor eax, eax
cmp ebx, 0xf
sete cl
cmp eax, ecx
jmp 0x53af21
movzx edx, byte [edi + 2]
mov eax, dword [edx*4 + 0x574198]
cmp ecx, eax
lea edx, [edx*4 + 0x574198]
jb 0x53aecd
jmp 0x53aec0
add edx, 4
cmp ecx, eax
je 0x53aed2
mov eax, dword [edx]
cmp ecx, eax
jae 0x53aec0
cmp ebx, 0x10
jmp 0x53af21
cmp ebx, 0x10
jne case.0x545420.14
add edi, 3
mov dword [esp + 0x14], edi
jmp 0x5386c0
cmp ecx, 0x24
je 0x53af12
cmp ecx, 0x40
je 0x53af12
cmp ecx, 0x60
je 0x53af12
cmp ecx, 0xa0
jb 0x53af06
cmp ecx, 0xd7ff
jbe 0x53af12
cmp ecx, 0xe000
jae 0x53af12
xor eax, eax
jmp 0x53af17
mov eax, 1
xor edx, edx
cmp ebx, 0xf
sete dl
cmp eax, edx
je case.0x545420.14
add edi, 3
mov dword [esp + 0x14], edi
jmp 0x5386c0
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + 0x78]
cmp esi, ebp
jae 0x5433e9
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x53b044
cmp ecx, 0xc0
jb 0x53b044
test cl, 0x20
jne 0x53af7a
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 1
jmp 0x53b044
test cl, 0x10
jne 0x53afa1
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x53b044
test cl, 8
jne 0x53afd4
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 7
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 3
jmp 0x53b044
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and eax, 0x3f
and edx, 0x3f
test cl, 4
jne 0x53b010
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 4
jmp 0x53b044
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x53b066
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
cmp esi, ebp
movzx eax, word [edx*2 + 0x577b58]
movzx ebx, byte [eax*8 + 0x5742da]
jae 0x53b1c3
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
mov edi, 1
je 0x53b173
cmp ecx, 0xc0
jb 0x53b173
test cl, 0x20
jne 0x53b0bb
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x53b171
test cl, 0x10
jne 0x53b0e5
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or ecx, eax
mov edi, 3
jmp 0x53b173
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x53b108
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x53b163
and eax, 0x3f
test cl, 4
jne 0x53b13e
and ecx, 3
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and ecx, 0x3f
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov edi, 5
jmp 0x53b173
and ecx, edi
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [esi + 5]
mov edi, 6
shl edx, 6
and eax, 0x3f
or edx, eax
shl edx, 6
and ecx, 0x3f
or ecx, edx
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x53b195
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx ecx, byte [eax*8 + 0x5742da]
mov edx, 1
shl edx, cl
test dword [ebx*4 + 0x5737a4], edx
je 0x53b1c3
add esi, edi
cmp esi, ebp
mov ebx, ecx
jb 0x53b080
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je 0x53b1f9
cmp esi, ebp
jb 0x53b1f9
cmp esi, dword [eax + 0x84]
jbe 0x53b1f9
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jg 0x545577
add dword [esp + 0x14], ecx
jmp 0x5386c0
mov ecx, 1
add dword [esp + 0x14], ecx
jmp 0x5386c0
mov edx, dword [esp + 0x14]
xor eax, eax
cmp dword [esp + 0x40], 0x74
mov ebp, dword [esp + 0x10]
sete al
mov edi, dword [ebp + 0x50]
xor ecx, ecx
mov ch, byte [edx + 3]
add edx, 5
mov dword [esp + 0x14], edx
mov dword [esp + 0x38], eax
xor eax, eax
mov ah, byte [edx - 4]
mov cl, byte [edx - 1]
mov al, byte [edx - 3]
imul eax, dword [ebp + 0x24]
add eax, dword [ebp + 0x30]
neg edi
sbb edi, edi
neg edi
sub edi, 1
xor ebx, ebx
test ecx, ecx
jle 0x53b2d8
movzx ebx, byte [eax + 1]
mov bh, byte [eax]
sub ecx, 1
add ebx, ebx
cmp ebx, dword [esp + 0x170]
jge 0x53b26e
mov edx, dword [ebp + 0xc]
cmp dword [edx + ebx*4], 0
jge 0x53b27a
add eax, dword [ebp + 0x24]
test ecx, ecx
jg 0x53b251
jmp 0x53b2d8
mov eax, edx
mov edi, dword [eax + ebx*4 + 4]
sub edi, dword [eax + ebx*4]
lea eax, [eax + ebx*4]
jmp 0x53b2d8
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
xor ecx, ecx
cmp dword [esp + 0x40], 0x72
sete cl
xor ebx, ebx
mov bh, byte [eax + 1]
add eax, 3
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], ecx
mov bl, byte [eax - 1]
add ebx, ebx
cmp ebx, dword [esp + 0x170]
jge 0x53b2cc
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + ebx*4]
test ecx, ecx
lea eax, [edx + ebx*4]
jl 0x53b2cc
mov edi, dword [eax + 4]
sub edi, ecx
jmp 0x53b2d8
mov edi, dword [ebp + 0x50]
neg edi
sbb edi, edi
neg edi
sub edi, 1
mov eax, dword [esp + 0x14]
mov cl, byte [eax]
movzx eax, cl
lea edx, [eax - 0x62]
cmp edx, 7
ja case.default.0x53b2f4
movzx edx, byte [edx + 0x54582c]
jmp dword [edx*4 + 0x545824]
movsx ebp, byte [eax + 0x5735c6]
add dword [esp + 0x14], 1
add eax, 0xffffff9e
mov ecx, eax
movsx eax, byte [eax + 0x573634]
and ecx, 1
test eax, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], eax
jne 0x53b365
mov dword [esp + 0x18], closesocket
jmp 0x53b365
xor eax, eax
cmp cl, 0x69
sete al
xor ecx, ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x14]
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
mov ebp, ecx
xor ecx, ecx
mov ch, byte [eax + 3]
mov cl, byte [eax + 4]
test ecx, ecx
mov dword [esp + 0x18], ecx
jne 0x53b35e
mov dword [esp + 0x18], closesocket
add eax, 5
mov dword [esp + 0x14], eax
test edi, edi
je 0x5386c0
jge 0x53b377
test ebp, ebp
je 0x5386c0
cmp ebp, 1
mov dword [esp + 0x30], 1
jl 0x53b3b2
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
push edx
push eax
mov eax, edi
mov ecx, esi
mov edx, ebx
call fcn.00538280
test eax, eax
jl 0x542b05
add esi, eax
mov eax, dword [esp + 0x30]
add eax, 1
cmp eax, ebp
mov dword [esp + 0x30], eax
jle 0x53b384
mov eax, dword [esp + 0x18]
cmp ebp, eax
je 0x5386c0
cmp dword [esp + 0x34], 0
je 0x542b1a
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x20]
push edx
push eax
push ecx
push esi
mov dword [esp + 0x4c], ebp
call fcn.005385c0
test eax, eax
jne 0x54558a
mov ebp, dword [esp + 0x10]
jmp 0x53b410
mov edx, dword [esp + 0x30]
cmp edx, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x38]
push eax
push ebp
mov eax, edi
mov ecx, esi
mov edx, ebx
call fcn.00538280
test eax, eax
jl 0x542bcc
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
add dword [esp + 0x30], 1
add ecx, 1
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x1c]
push ebp
add esi, eax
mov eax, dword [esp + 0x17c]
push eax
push ecx
push edx
push esi
call fcn.005385c0
test eax, eax
je 0x53b410
jmp 0x54558a
mov ecx, dword [esp + 0x38]
push ecx
push ebp
mov eax, edi
mov ecx, esi
mov edx, ebx
call fcn.00538280
test eax, eax
jl 0x542bcc
add esi, eax
jmp 0x5386c0
mov edi, dword [esp + 0x14]
mov al, byte [edi + 0x21]
lea edx, [edi + 1]
add edi, 0x21
movzx ecx, al
mov dword [esp + 0x30], edx
lea edx, [ecx - 0x62]
cmp edx, 0xb
mov dword [esp + 0x14], edi
ja case.default.0x53b4bb
movzx edx, byte [edx + 0x54583c]
jmp dword [edx*4 + 0x545834]
lea eax, [ecx - 0x62]
add edi, 1
cmp eax, 8
mov dword [esp + 0x14], edi
jae 0x53b4dc
mov ecx, eax
and ecx, 1
mov dword [esp + 0x34], ecx
jmp 0x53b4e4
mov dword [esp + 0x3c], 1
movsx edx, byte [eax + 0x573628]
movsx eax, byte [eax + 0x573634]
test eax, eax
mov dword [esp + 0x18], eax
jne 0x53b54c
mov dword [esp + 0x18], closesocket
jmp 0x53b54c
xor ecx, ecx
cmp al, 0x69
sete cl
xor edx, edx
cmp al, 0x6d
sete dl
xor eax, eax
mov ah, byte [edi + 3]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x3c], edx
xor edx, edx
mov al, byte [edi + 4]
mov dh, byte [edi + 1]
test eax, eax
mov dl, byte [edi + 2]
mov dword [esp + 0x18], eax
jne 0x53b53a
mov dword [esp + 0x18], closesocket
add edi, 5
mov dword [esp + 0x14], edi
jmp 0x53b54c
mov edx, 1
mov dword [esp + 0x18], edx
cmp dword [esp + 0x20], 0
mov edi, 1
je 0x53b69a
cmp edx, edi
jl 0x53b6d9
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
jmp 0x53b574
mov ebx, dword [esp + 0x40]
cmp esi, ebp
jae 0x5433e5
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53b663
movzx ecx, byte [esi]
and ecx, 0x3f
test al, 0x20
jne 0x53b5a7
and eax, 0x1f
shl eax, 6
or eax, ecx
add esi, 1
jmp 0x53b663
test al, 0x10
jne 0x53b5c7
and eax, 0xf
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 2
jmp 0x53b663
test al, 8
jne 0x53b5f3
and eax, 7
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 3
jmp 0x53b663
test al, 4
jne 0x53b628
and eax, 3
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 4
jmp 0x53b663
and eax, 1
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 4]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 5
cmp eax, 0xff
jbe 0x53b66f
cmp ebx, 0x6e
jmp 0x53b687
mov ecx, eax
and ecx, 7
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x30]
shr eax, 3
mov al, byte [eax + ecx]
test al, bl
je case.0x545420.14
add edi, 1
cmp edi, edx
jle 0x53b570
jmp 0x53b6d9
cmp edx, 1
jl 0x53b6d9
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + 0x78]
cmp esi, ebp
jae 0x543874
movzx eax, byte [esi]
mov ecx, eax
and ecx, 7
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x30]
shr eax, 3
mov al, byte [eax + ecx]
add esi, 1
test al, bl
je case.0x545420.14
add edi, 1
cmp edi, edx
jle 0x53b6a6
mov eax, dword [esp + 0x18]
cmp edx, eax
mov ecx, dword [esp + 0x10]
je 0x5386c0
cmp dword [esp + 0x34], 0
jne 0x542c09
cmp dword [esp + 0x20], 0
mov ebx, esi
mov dword [esp + 0x34], ebx
je 0x53b8e5
cmp edx, eax
mov ebp, edx
jge 0x53b855
mov edx, dword [ecx + 0x78]
cmp esi, edx
mov edi, 1
jae 0x53b833
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x53b7f4
movzx ebx, byte [esi + 1]
and ebx, 0x3f
test al, 0x20
jne 0x53b748
and eax, 0x1f
shl eax, 6
mov edi, 2
jmp 0x53b7f2
test al, 0x10
jne 0x53b762
and eax, 0xf
shl eax, 6
or ebx, eax
movzx eax, byte [esi + 2]
mov edi, 3
jmp 0x53b7ec
test al, 8
jne 0x53b788
and eax, 7
shl eax, 6
or ebx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 3]
mov edi, 4
jmp 0x53b7ec
test al, 4
jne 0x53b7b7
and eax, 3
shl eax, 6
or ebx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 4]
mov edi, 5
jmp 0x53b7ec
and eax, 1
shl eax, 6
or ebx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 5]
mov edi, 6
shl ebx, 6
and eax, 0x3f
or eax, ebx
cmp eax, 0xff
jbe 0x53b804
cmp dword [esp + 0x40], 0x6e
je 0x53b855
jmp 0x53b822
mov ecx, eax
and ecx, 7
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x30]
shr eax, 3
mov al, byte [eax + ecx]
test al, bl
je 0x53b855
mov ecx, dword [esp + 0x10]
add ebp, 1
add esi, edi
cmp ebp, dword [esp + 0x18]
jl 0x53b712
jmp 0x53b855
cmp dword [ecx + 0x88], 0
je 0x53b855
cmp esi, dword [ecx + 0x84]
jbe 0x53b855
mov eax, edi
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x88], eax
jg 0x545577
cmp dword [esp + 0x3c], 0
jne 0x5386c0
mov edx, dword [esp + 0x17c]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x170]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
add edx, 1
push edx
push ebp
push eax
push ebx
push edi
push ecx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
mov edx, esi
sub esi, 1
cmp edx, dword [esp + 0x34]
je case.0x545420.14
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x53b8be
lea esp, [esp]
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
je 0x53b8b0
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add edx, 1
push edx
push ebp
push eax
push ebx
push edi
push ecx
push esi
call fcn.005385c0
test eax, eax
je 0x53b895
jmp 0x54558a
cmp edx, eax
mov edi, edx
jge 0x53b94c
mov ebp, dword [ecx + 0x78]
jmp 0x53b8f8
mov ecx, dword [esp + 0x10]
cmp esi, ebp
jae 0x53b927
movzx eax, byte [esi]
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x30]
shr eax, 3
mov al, byte [eax + ecx]
test al, dl
je 0x53b94c
add edi, 1
add esi, 1
cmp edi, dword [esp + 0x18]
jl 0x53b8f4
jmp 0x53b94c
cmp dword [ecx + 0x88], 0
je 0x53b94c
cmp esi, dword [ecx + 0x84]
jbe 0x53b94c
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x88], eax
jg 0x545577
cmp dword [esp + 0x3c], 0
jne 0x5386c0
cmp esi, ebx
jb case.0x545420.14
mov ebp, dword [esp + 0x170]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
lea ebx, [ebx]
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add edx, 1
push edx
push eax
push ecx
push ebp
push ebx
push edi
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
sub esi, 1
cmp esi, dword [esp + 0x34]
jae 0x53b970
xor eax, eax
jmp 0x54558a
mov edi, dword [esp + 0x14]
xor edx, edx
mov dh, byte [edi + 1]
lea ecx, [edi + 3]
mov dword [esp + 0x30], ecx
mov dl, byte [edi + 2]
mov al, byte [edi + edx]
movzx ecx, al
add edi, edx
lea edx, [ecx - 0x62]
cmp edx, 0xb
mov dword [esp + 0x14], edi
ja case.default.0x53b9d8
movzx edx, byte [edx + 0x545850]
jmp dword [edx*4 + 0x545848]
lea eax, [ecx - 0x62]
add edi, 1
cmp eax, 8
mov dword [esp + 0x14], edi
jae 0x53b9f9
mov ecx, eax
and ecx, 1
mov dword [esp + 0x34], ecx
jmp 0x53ba01
mov dword [esp + 0x3c], 1
movsx ebx, byte [eax + 0x573628]
movsx eax, byte [eax + 0x573634]
test eax, eax
mov dword [esp + 0x18], eax
jne 0x53ba69
mov dword [esp + 0x18], closesocket
jmp 0x53ba69
xor ecx, ecx
cmp al, 0x69
sete cl
xor edx, edx
cmp al, 0x6d
sete dl
xor eax, eax
mov ah, byte [edi + 3]
xor ebx, ebx
mov bh, byte [edi + 1]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x3c], edx
mov al, byte [edi + 4]
mov bl, byte [edi + 2]
test eax, eax
mov dword [esp + 0x18], eax
jne 0x53ba57
mov dword [esp + 0x18], closesocket
add edi, 5
mov dword [esp + 0x14], edi
jmp 0x53ba69
mov ebx, 1
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x20]
mov edi, 1
cmp ebx, edi
jl 0x53bba6
lea ebx, [ebx]
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx eax, byte [esi]
add esi, 1
test ebp, ebp
je 0x53bb87
cmp eax, 0xc0
jb 0x53bb87
test al, 0x20
jne 0x53bac0
movzx ecx, byte [esi]
and eax, 0x1f
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 1
jmp 0x53bb87
test al, 0x10
jne 0x53bae6
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
and eax, 0xf
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 2
jmp 0x53bb87
test al, 8
jne 0x53bb18
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
and eax, 7
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 3
jmp 0x53bb87
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0x3f
and edx, 0x3f
test al, 4
jne 0x53bb53
and eax, 3
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
or eax, edx
movzx edx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 4
jmp 0x53bb87
and eax, 1
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
or eax, edx
movzx edx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 4]
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 5
mov edx, dword [esp + 0x30]
push ebp
push edx
push eax
call fcn.00547540
test eax, eax
je case.0x545420.14
add edi, 1
cmp edi, ebx
jle 0x53ba80
cmp ebx, dword [esp + 0x18]
je 0x5386c0
cmp dword [esp + 0x34], 0
jne 0x542e5c
cmp ebx, dword [esp + 0x18]
mov dword [esp + 0x34], esi
jge 0x53bd09
lea esp, [esp]
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
mov edi, 1
jae 0x53bce9
test ebp, ebp
movzx eax, byte [esi]
je 0x53bcc8
cmp eax, 0xc0
jb 0x53bcc8
test al, 0x20
jne 0x53bc13
movzx ecx, byte [esi + 1]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edi, 2
jmp 0x53bcc6
test al, 0x10
jne 0x53bc3c
movzx edx, byte [esi + 1]
and eax, 0xf
shl eax, 6
and edx, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or eax, edx
mov edi, 3
jmp 0x53bcc8
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
and ecx, 0x3f
test al, 8
jne 0x53bc5e
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 3]
mov edi, 4
jmp 0x53bcb8
and edx, 0x3f
test al, 4
jne 0x53bc93
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
mov eax, ecx
mov edi, 5
jmp 0x53bcc8
and eax, edi
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 5]
mov edi, 6
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, dword [esp + 0x30]
push ebp
push ecx
push eax
call fcn.00547540
test eax, eax
je 0x53bd09
add ebx, 1
add esi, edi
cmp ebx, dword [esp + 0x18]
jl 0x53bbd0
jmp 0x53bd09
cmp dword [eax + 0x88], 0
je 0x53bd09
cmp esi, dword [eax + 0x84]
jbe 0x53bd09
mov dword [eax + 0x64], edi
cmp dword [eax + 0x88], edi
jg 0x545577
cmp dword [esp + 0x3c], 0
jne 0x5386c0
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x170]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
add eax, 1
push eax
push ecx
push edx
push ebp
push ebx
push edi
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
lea esp, [esp]
mov eax, esi
sub esi, 1
cmp eax, dword [esp + 0x34]
je case.0x545420.14
cmp dword [esp + 0x20], 0
je 0x53bd7e
mov cl, byte [esi]
and cl, 0xc0
cmp cl, 0x80
jne 0x53bd7e
mov dl, byte [esi - 1]
sub esi, 1
and dl, 0xc0
cmp dl, 0x80
je 0x53bd70
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
push ecx
push edx
push ebp
push ebx
push edi
push esi
call fcn.005385c0
test eax, eax
je 0x53bd50
jmp 0x54558a
cmp dword [esp + 0x20], ebp
je 0x53be35
mov eax, dword [esp + 0x14]
mov ecx, 1
add eax, ecx
mov dword [esp + 0x14], eax
movzx eax, byte [eax]
cmp eax, 0xc0
jb 0x53bdf6
test al, 0x20
jne 0x53bdd3
mov ecx, 2
jmp 0x53bdf6
test al, 0x10
jne 0x53bdde
mov ecx, 3
jmp 0x53bdf6
test al, 8
jne 0x53bde9
mov ecx, 4
jmp 0x53bdf6
and al, 4
neg al
sbb eax, eax
neg eax
add eax, 5
mov ecx, eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x78]
sub edx, esi
cmp ecx, edx
jg 0x542ff4
test ecx, ecx
jle 0x5386c0
mov edi, dword [esp + 0x14]
mov al, byte [edi]
mov dl, byte [esi]
add edi, 1
sub ecx, 1
add esi, 1
cmp al, dl
mov dword [esp + 0x14], edi
jne case.0x545420.14
test ecx, ecx
jg 0x53be13
jmp 0x5386c0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
sub ecx, esi
cmp ecx, 1
jl 0x54300c
mov al, byte [esi]
add esi, 1
cmp byte [edx + 1], al
jne case.0x545420.14
add edx, 2
mov dword [esp + 0x14], edx
jmp 0x5386c0
mov edi, dword [esp + 0x10]
cmp esi, dword [edi + 0x78]
jae 0x543037
cmp dword [esp + 0x20], ebp
je 0x53c0e3
mov edx, dword [esp + 0x14]
mov eax, 1
movzx ecx, byte [edx + eax]
add edx, eax
cmp ecx, 0xc0
mov dword [esp + 0x14], edx
jb 0x53bf7c
movzx eax, byte [edx + 1]
and eax, 0x3f
test cl, 0x20
jne 0x53beb5
and ecx, 0x1f
shl ecx, 6
or ecx, eax
mov eax, 2
jmp 0x53bf7c
test cl, 0x10
jne 0x53bed8
and ecx, 0xf
shl ecx, 6
or eax, ecx
movzx ecx, byte [edx + 2]
shl eax, 6
and ecx, 0x3f
or ecx, eax
mov eax, 3
jmp 0x53bf7c
test cl, 8
jne 0x53bf07
and ecx, 7
shl ecx, 6
or eax, ecx
movzx ecx, byte [edx + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [edx + 3]
shl eax, 6
and ecx, 0x3f
or ecx, eax
mov eax, 4
jmp 0x53bf7c
test cl, 4
jne 0x53bf3f
and ecx, 3
shl ecx, 6
or eax, ecx
movzx ecx, byte [edx + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [edx + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [edx + 4]
shl eax, 6
and ecx, 0x3f
or ecx, eax
mov eax, 5
jmp 0x53bf7c
and ecx, 1
shl ecx, 6
or eax, ecx
movzx ecx, byte [edx + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [edx + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [edx + 4]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [edx + 5]
shl eax, 6
and ecx, 0x3f
or ecx, eax
mov eax, 6
cmp ecx, 0x80
jae 0x53bfa5
mov eax, dword [edi + 0x38]
movzx edi, byte [esi]
mov cl, byte [ecx + eax]
cmp cl, byte [edi + eax]
jne case.0x545420.14
add edx, 1
mov dword [esp + 0x14], edx
add esi, 1
jmp 0x5386c0
movzx ebx, byte [esi]
add esi, 1
cmp ebx, 0xc0
jb 0x53c091
movzx edx, byte [esi]
and edx, 0x3f
test bl, 0x20
jne 0x53bfd2
and ebx, 0x1f
shl ebx, 6
or ebx, edx
add esi, 1
jmp 0x53c091
test bl, 0x10
jne 0x53bff3
and ebx, 0xf
shl ebx, 6
or ebx, edx
movzx edx, byte [esi + 1]
shl ebx, 6
and edx, 0x3f
or ebx, edx
add esi, 2
jmp 0x53c091
test bl, 8
jne 0x53c020
and ebx, 7
shl ebx, 6
or ebx, edx
movzx edx, byte [esi + 1]
shl ebx, 6
and edx, 0x3f
or ebx, edx
movzx edx, byte [esi + 2]
shl ebx, 6
and edx, 0x3f
or ebx, edx
add esi, 3
jmp 0x53c091
test bl, 4
jne 0x53c056
and ebx, 3
shl ebx, 6
or ebx, edx
movzx edx, byte [esi + 1]
shl ebx, 6
and edx, 0x3f
or ebx, edx
movzx edx, byte [esi + 2]
shl ebx, 6
and edx, 0x3f
or ebx, edx
movzx edx, byte [esi + 3]
shl ebx, 6
and edx, 0x3f
or ebx, edx
add esi, 4
jmp 0x53c091
and ebx, 1
shl ebx, 6
or ebx, edx
movzx edx, byte [esi + 1]
shl ebx, 6
and edx, 0x3f
or ebx, edx
movzx edx, byte [esi + 2]
shl ebx, 6
and edx, 0x3f
or ebx, edx
movzx edx, byte [esi + 3]
shl ebx, 6
and edx, 0x3f
or ebx, edx
movzx edx, byte [esi + 4]
shl ebx, 6
and edx, 0x3f
or ebx, edx
add esi, 5
add dword [esp + 0x14], eax
cmp ecx, ebx
je 0x5386c0
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x575958]
mov edx, ecx
shl eax, 7
and edx, 0x8000007f
jns 0x53c0c1
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x577b58]
mov edx, dword [eax*8 + 0x5742dc]
add edx, ecx
cmp ebx, edx
je 0x5386c0
xor eax, eax
jmp 0x54558a
mov eax, dword [edi + 0x38]
movzx ecx, byte [edx + 1]
movzx edi, byte [esi]
mov cl, byte [ecx + eax]
cmp cl, byte [edi + eax]
jne case.0x545420.14
add esi, 1
add edx, 2
mov dword [esp + 0x14], edx
jmp 0x5386c0
xor eax, eax
mov ah, byte [edx + 1]
add edx, 3
mov dword [esp + 0x14], edx
mov al, byte [edx - 1]
mov edi, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], edi
jmp 0x53c1ed
mov dword [esp + 0x3c], 1
xor ecx, ecx
cmp al, 0x28
mov ch, byte [edx + 1]
mov dword [esp + 0x2c], ebp
mov cl, byte [edx + 2]
mov dword [esp + 0x18], ecx
je 0x53c14a
cmp al, 0x35
mov dword [esp + 0x34], ebp
jne 0x53c152
mov dword [esp + 0x34], 1
mov edi, dword [esp + 0x2c]
add edx, 3
mov dword [esp + 0x14], edx
jmp 0x53c1ed
xor edi, edi
add edx, 1
mov dword [esp + 0x3c], 1
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], edx
jmp 0x53c1e5
mov edi, 1
add edx, edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], edx
jmp 0x53c1e5
mov eax, 1
xor edi, edi
add edx, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
jmp 0x53c1ed
cmp ebx, 0x2e
sbb ecx, ecx
and ecx, 0xfffffff3
add ecx, 0x2e
mov eax, ebx
sub eax, ecx
movsx edi, byte [eax + 0x573628]
mov ecx, eax
movsx eax, byte [eax + 0x573634]
add edx, 1
and ecx, 1
cmp eax, ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], eax
jne 0x53c1ed
mov dword [esp + 0x18], closesocket
cmp dword [esp + 0x20], ebp
mov eax, dword [esp + 0x14]
movzx ebx, byte [eax]
je 0x53c72d
cmp ebx, 0xc0
mov ebp, 1
mov dword [esp + 0x38], ebp
mov dword [esp + 0x4c], eax
jb 0x53c2db
test bl, 0x20
jne 0x53c235
movzx edx, byte [eax + 1]
and ebx, 0x1f
and edx, 0x3f
shl ebx, 6
or ebx, edx
mov ebp, 2
jmp 0x53c2d7
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
and ecx, 0x3f
test bl, 0x10
jne 0x53c257
and ebx, 0xf
shl ebx, 6
or ecx, ebx
mov ebp, 3
jmp 0x53c2cd
and edx, 0x3f
test bl, 8
jne 0x53c277
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, edx
movzx edx, byte [eax + 3]
mov ebp, 4
jmp 0x53c2cd
test bl, 4
jne 0x53c2a0
and ebx, 3
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, edx
movzx edx, byte [eax + 3]
and edx, 0x3f
shl ecx, 6
or ecx, edx
movzx edx, byte [eax + 4]
mov ebp, 5
jmp 0x53c2cd
and ebx, ebp
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, edx
movzx edx, byte [eax + 3]
and edx, 0x3f
shl ecx, 6
or ecx, edx
movzx edx, byte [eax + 4]
and edx, 0x3f
shl ecx, 6
or ecx, edx
movzx edx, byte [eax + 5]
mov ebp, 6
and edx, 0x3f
shl ecx, 6
or ecx, edx
mov ebx, ecx
mov dword [esp + 0x38], ebp
add eax, ebp
cmp ebp, 1
mov dword [esp + 0x14], eax
jle 0x53c734
cmp dword [esp + 0x40], 0x2e
jb 0x53c340
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x575958]
mov ecx, ebx
shl eax, 7
and ecx, 0x8000007f
jns 0x53c315
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx edx, word [eax*2 + 0x577b58]
mov eax, dword [edx*8 + 0x5742dc]
add eax, ebx
cmp eax, ebx
je 0x53c340
lea ecx, [esp + 0x154]
push ecx
push eax
call fcn.00547170
mov dword [esp + 0x40], eax
jmp 0x53c348
mov dword [esp + 0x40], 0
cmp edi, 1
mov dword [esp + 0x30], 1
jl 0x53c4de
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x78]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x24], ecx
sub ecx, ebp
mov dword [esp + 0x50], ecx
jmp 0x53c374
mov ecx, dword [esp + 0x50]
cmp esi, ecx
ja 0x53c416
cmp ebp, 4
mov ecx, dword [esp + 0x4c]
mov eax, ebp
mov edx, esi
jb 0x53c3a4
lea esp, [esp]
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x53c3a8
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x53c390
test eax, eax
je 0x53c405
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x53c3f7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c405
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x53c3f7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c405
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x53c3f7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c405
movzx edi, byte [edx]
movzx eax, byte [ecx]
sub edi, eax
je 0x53c405
test edi, edi
mov eax, 1
jg 0x53c407
or eax, 0xffffffff
jmp 0x53c407
xor eax, eax
test eax, eax
mov eax, dword [esp + 0x40]
jne 0x53c416
add esi, ebp
jmp 0x53c4c5
test eax, eax
jle 0x543042
mov ecx, dword [esp + 0x24]
sub ecx, eax
cmp esi, ecx
ja 0x543042
cmp eax, 4
lea ecx, [esp + 0x154]
mov edx, esi
jb 0x53c454
lea ebx, [ebx]
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x53c458
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x53c440
test eax, eax
je 0x53c4b5
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x53c4a7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c4b5
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x53c4a7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c4b5
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x53c4a7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c4b5
movzx edi, byte [edx]
movzx edx, byte [ecx]
sub edi, edx
je 0x53c4b5
test edi, edi
mov eax, 1
jg 0x53c4b7
or eax, 0xffffffff
jmp 0x53c4b7
xor eax, eax
test eax, eax
jne 0x543042
mov eax, dword [esp + 0x40]
add esi, eax
mov ecx, dword [esp + 0x30]
add ecx, 1
cmp ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
jle 0x53c370
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
cmp edi, eax
je 0x5386c0
cmp dword [esp + 0x34], 0
jne 0x54307b
cmp edi, eax
mov dword [esp + 0x34], esi
mov ebx, edi
jge 0x53c6b6
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x78]
mov dword [esp + 0x24], eax
sub eax, ebp
mov dword [esp + 0x50], eax
jmp 0x53c524
mov eax, dword [esp + 0x50]
cmp esi, eax
ja 0x53c5ca
cmp ebp, 4
mov ecx, dword [esp + 0x4c]
mov eax, ebp
mov edx, esi
jb 0x53c554
lea esp, [esp]
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x53c558
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x53c540
test eax, eax
je 0x53c5bd
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x53c5a7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c5b9
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x53c5a7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c5b9
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x53c5a7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c5b9
movzx edi, byte [edx]
movzx ecx, byte [ecx]
sub edi, ecx
je 0x53c5b9
test edi, edi
mov ebp, dword [esp + 0x38]
mov eax, 1
jg 0x53c5bf
or eax, 0xffffffff
jmp 0x53c5bf
mov ebp, dword [esp + 0x38]
xor eax, eax
test eax, eax
jne 0x53c5ca
add esi, ebp
jmp 0x53c679
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x53c688
mov edx, dword [esp + 0x24]
sub edx, eax
cmp esi, edx
ja 0x53c688
cmp eax, 4
lea ecx, [esp + 0x154]
mov edx, esi
jb 0x53c606
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x53c60a
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x53c5f2
test eax, eax
je 0x53c66f
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x53c659
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c66b
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x53c659
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c66b
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x53c659
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c66b
movzx edi, byte [edx]
movzx eax, byte [ecx]
sub edi, eax
je 0x53c66b
test edi, edi
mov ebp, dword [esp + 0x38]
mov eax, 1
jg 0x53c671
or eax, 0xffffffff
jmp 0x53c671
mov ebp, dword [esp + 0x38]
xor eax, eax
test eax, eax
jne 0x53c688
add esi, dword [esp + 0x40]
add ebx, 1
cmp ebx, dword [esp + 0x18]
jl 0x53c520
jmp 0x53c6b6
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x88], 0
je 0x53c6b6
cmp esi, dword [ecx + 0x78]
jb 0x53c6b6
cmp esi, dword [ecx + 0x84]
jbe 0x53c6b6
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x88], eax
jg 0x545577
cmp dword [esp + 0x3c], 0
jne 0x5386c0
cmp esi, dword [esp + 0x34]
jbe 0x541c63
mov ebp, dword [esp + 0x170]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
lea ebx, [ebx]
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add ecx, 1
push ecx
push edx
push eax
push ebp
push ebx
push edi
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
jne 0x53c722
mov dl, byte [esi - 1]
sub esi, 1
and dl, 0xc0
cmp dl, 0x80
je 0x53c714
cmp esi, dword [esp + 0x34]
ja 0x53c6e0
jmp 0x541c63
add eax, 1
mov dword [esp + 0x14], eax
cmp dword [esp + 0x40], 0x2e
jb 0x53c854
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x3c]
movzx ebp, byte [ecx + ebx]
mov ecx, 1
cmp dword [esp + 0x2c], ecx
mov dword [esp + 0x38], ebp
jl 0x53c783
mov edx, dword [edi + 0x78]
lea esp, [esp]
cmp esi, edx
jae 0x5438f2
movzx eax, byte [esi]
cmp ebx, eax
je 0x53c777
cmp ebp, eax
jne case.0x545420.14
add ecx, 1
add esi, 1
cmp ecx, dword [esp + 0x2c]
jle 0x53c760
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x2c], edx
je 0x5386c0
cmp dword [esp + 0x34], 0
jne 0x5432a5
mov ecx, dword [esp + 0x2c]
cmp ecx, edx
mov dword [esp + 0x34], esi
jge 0x53c7f2
mov edx, dword [edi + 0x78]
jmp 0x53c7b0
cmp esi, edx
jae 0x53c7cd
movzx eax, byte [esi]
cmp ebx, eax
je 0x53c7bf
cmp ebp, eax
jne 0x53c7f2
add ecx, 1
add esi, 1
cmp ecx, dword [esp + 0x18]
jl 0x53c7b0
jmp 0x53c7f2
cmp dword [edi + 0x88], 0
je 0x53c7f2
cmp esi, dword [edi + 0x84]
jbe 0x53c7f2
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x88], eax
jg 0x545577
cmp dword [esp + 0x3c], 0
jne 0x5386c0
cmp esi, dword [esp + 0x34]
je 0x541c63
mov ebp, dword [esp + 0x170]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
jmp 0x53c820
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
push ecx
push edx
push ebp
push ebx
push edi
push esi
call fcn.005385c0
sub esi, 1
test eax, eax
jne 0x54558a
cmp esi, dword [esp + 0x34]
jne 0x53c820
jmp 0x541c63
mov edx, dword [esp + 0x10]
mov eax, 1
cmp edi, eax
jl 0x53c881
mov ecx, dword [edx + 0x78]
cmp esi, ecx
jae 0x54554a
movzx ebp, byte [esi]
add esi, 1
cmp ebx, ebp
jne case.0x545420.14
add eax, 1
cmp eax, edi
jle 0x53c864
cmp edi, dword [esp + 0x18]
je 0x5386c0
cmp dword [esp + 0x34], 0
jne 0x543340
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x18]
mov edi, esi
mov dword [esp + 0x34], edi
jge 0x53c8ee
mov ecx, dword [edx + 0x78]
lea esp, [esp]
cmp esi, ecx
jae 0x53c8c9
movzx ebp, byte [esi]
cmp ebx, ebp
jne 0x53c8ee
add eax, 1
add esi, 1
cmp eax, dword [esp + 0x18]
jl 0x53c8b0
jmp 0x53c8ee
cmp dword [edx + 0x88], 0
je 0x53c8ee
cmp esi, dword [edx + 0x84]
jbe 0x53c8ee
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x88], eax
jg 0x545577
cmp dword [esp + 0x3c], 0
jne 0x5386c0
cmp esi, edi
je 0x541c63
mov ebp, dword [esp + 0x170]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
push ecx
push edx
push ebp
push ebx
push edi
push esi
call fcn.005385c0
sub esi, 1
test eax, eax
jne 0x54558a
cmp esi, dword [esp + 0x34]
jne 0x53c910
jmp 0x541c63
mov edx, dword [esp + 0x10]
cmp esi, dword [edx + 0x78]
jae 0x5433da
cmp dword [esp + 0x20], ebp
je 0x53cbae
mov eax, dword [esp + 0x14]
movzx ebx, byte [eax + 1]
add eax, 1
add eax, 1
cmp ebx, 0xc0
mov dword [esp + 0x14], eax
jb 0x53ca54
movzx ecx, byte [eax]
and ecx, 0x3f
test bl, 0x20
jne 0x53c994
and ebx, 0x1f
shl ebx, 6
or ebx, ecx
add eax, 1
jmp 0x53ca50
test bl, 0x10
jne 0x53c9b5
and ebx, 0xf
shl ebx, 6
or ebx, ecx
movzx ecx, byte [eax + 1]
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
add eax, 2
jmp 0x53ca50
test bl, 8
jne 0x53c9df
and ebx, 7
shl ebx, 6
or ebx, ecx
movzx ecx, byte [eax + 1]
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
movzx ecx, byte [eax + 2]
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
add eax, 3
jmp 0x53ca50
test bl, 4
jne 0x53ca15
and ebx, 3
shl ebx, 6
or ebx, ecx
movzx ecx, byte [eax + 1]
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
movzx ecx, byte [eax + 2]
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
movzx ecx, byte [eax + 3]
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
add eax, 4
jmp 0x53ca50
and ebx, 1
shl ebx, 6
or ebx, ecx
movzx ecx, byte [eax + 1]
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
movzx ecx, byte [eax + 2]
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
movzx ecx, byte [eax + 3]
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
movzx ecx, byte [eax + 4]
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
add eax, 5
mov dword [esp + 0x14], eax
movzx ecx, byte [esi]
add esi, 1
cmp ecx, 0xc0
jb 0x53cb3d
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x53ca81
and ecx, 0x1f
shl ecx, 6
or ecx, eax
add esi, 1
jmp 0x53cb3d
test cl, 0x10
jne 0x53caa2
and ecx, 0xf
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x53cb3d
test cl, 8
jne 0x53cacc
and ecx, 7
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x53cb3d
test cl, 4
jne 0x53cb02
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x53cb3d
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
cmp dword [esp + 0x40], 0x1f
jne 0x53cb53
cmp ebx, ecx
jne 0x5386c0
xor eax, eax
jmp 0x54558a
cmp ebx, 0x7f
jbe 0x53cb90
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
mov eax, ebx
shl edx, 7
and eax, 0x8000007f
jns 0x53cb7b
dec eax
or eax, 0xffffff80
inc eax
add edx, eax
movzx edx, word [edx*2 + 0x577b58]
mov eax, dword [edx*8 + 0x5742dc]
add eax, ebx
jmp 0x53cb97
mov eax, dword [edx + 0x3c]
movzx eax, byte [eax + ebx]
cmp ebx, ecx
je case.0x545420.14
cmp eax, ecx
jne 0x5386c0
xor eax, eax
jmp 0x54558a
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + 1]
movzx ecx, byte [esi]
add esi, 1
cmp eax, ecx
je case.0x545420.14
cmp ebx, 0x20
jne 0x53cbd8
mov edx, dword [edx + 0x3c]
movzx eax, byte [edx + eax]
cmp eax, ecx
je case.0x545420.14
add dword [esp + 0x14], 2
jmp 0x5386c0
xor eax, eax
mov ah, byte [edx + 1]
add edx, 3
mov al, byte [edx - 1]
mov dword [esp + 0x18], eax
mov edi, eax
jmp 0x53cca5
xor ecx, ecx
mov ch, byte [edx + 1]
xor edi, edi
cmp al, 0x42
mov cl, byte [edx + 2]
mov dword [esp + 0x18], ecx
je 0x53cc12
cmp al, 0x4f
mov dword [esp + 0x34], ebp
jne 0x53cc1a
mov dword [esp + 0x34], 1
add edx, 3
jmp 0x53cca5
xor edi, edi
mov dword [esp + 0x3c], 1
add edx, 1
jmp 0x53cc9d
mov edi, 1
mov dword [esp + 0x3c], edi
add edx, edi
jmp 0x53cc9d
mov eax, 1
xor edi, edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x18], eax
add edx, eax
jmp 0x53cca5
xor eax, eax
mov ah, byte [edx + 1]
xor edi, edi
mov dword [esp + 0x3c], 1
add edx, 3
mov al, byte [edx - 1]
mov dword [esp + 0x18], eax
jmp 0x53cca5
cmp ebx, 0x48
sbb ecx, ecx
and ecx, 0xfffffff3
add ecx, 0x48
mov eax, ebx
sub eax, ecx
movsx edi, byte [eax + 0x573628]
mov ecx, eax
movsx eax, byte [eax + 0x573634]
and ecx, 1
add edx, 1
cmp eax, ebp
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], eax
jne 0x53cca5
mov dword [esp + 0x18], closesocket
movzx ebx, byte [edx]
mov ebp, dword [esp + 0x20]
add edx, 1
test ebp, ebp
mov dword [esp + 0x30], ebx
mov dword [esp + 0x14], edx
je 0x53cda3
cmp ebx, 0xc0
jb 0x53cda3
test bl, 0x20
jne 0x53ccea
movzx eax, byte [edx]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or eax, ebx
mov dword [esp + 0x30], eax
add edx, 1
jmp 0x53cd9b
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x53cd11
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add edx, 2
jmp 0x53cd97
test bl, 8
jne 0x53cd34
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add edx, 3
jmp 0x53cd97
test bl, 4
jne 0x53cd63
and ebx, 3
shl ebx, 6
or ecx, ebx
shl ecx, 6
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 0x53cd97
and ebx, 1
shl ebx, 6
or ecx, ebx
shl ecx, 6
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 [esp + 0x30], ecx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x14], edx
cmp dword [esp + 0x40], 0x48
jb 0x53d1f4
test ebp, ebp
je 0x53cdf0
cmp ebx, 0x7f
jbe 0x53cdf0
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x575958]
mov edx, ebx
shl ecx, 7
and edx, 0x8000007f
jns 0x53cddb
dec edx
or edx, 0xffffff80
inc edx
add ecx, edx
movzx eax, word [ecx*2 + 0x577b58]
mov eax, dword [eax*8 + 0x5742dc]
add eax, ebx
jmp 0x53cdfb
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x3c]
movzx eax, byte [edx + ebx]
test ebp, ebp
mov dword [esp + 0x38], eax
je 0x53cf2b
mov ecx, 1
cmp edi, ecx
jl 0x53cf67
mov edx, dword [esp + 0x10]
mov ebp, dword [edx + 0x78]
jmp 0x53ce20
cmp esi, ebp
jae 0x543874
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53cf0c
movzx edx, byte [esi]
and edx, 0x3f
test al, 0x20
jne 0x53ce53
and eax, 0x1f
shl eax, 6
or eax, edx
add esi, 1
jmp 0x53cf0c
test al, 0x10
jne 0x53ce73
and eax, 0xf
shl eax, 6
or eax, edx
movzx edx, byte [esi + 1]
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 2
jmp 0x53cf0c
test al, 8
jne 0x53ce9c
and eax, 7
shl eax, 6
or eax, edx
movzx edx, byte [esi + 1]
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 3
jmp 0x53cf0c
test al, 4
jne 0x53ced1
and eax, 3
shl eax, 6
or eax, edx
movzx edx, byte [esi + 1]
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 3]
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 4
jmp 0x53cf0c
and eax, 1
shl eax, 6
or eax, edx
movzx edx, byte [esi + 1]
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 3]
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 4]
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 5
cmp ebx, eax
je case.0x545420.14
cmp dword [esp + 0x38], eax
je case.0x545420.14
add ecx, 1
cmp ecx, edi
jle 0x53ce20
jmp 0x53cf67
mov edx, 1
cmp edi, edx
jl 0x53cf67
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
jmp 0x53cf40
cmp esi, ebp
jae 0x5433e5
movzx eax, byte [esi]
cmp ebx, eax
je case.0x545420.14
cmp dword [esp + 0x38], eax
je case.0x545420.14
add edx, 1
add esi, 1
cmp edx, edi
jle 0x53cf40
mov edx, dword [esp + 0x18]
cmp edi, edx
je 0x5386c0
cmp dword [esp + 0x34], 0
jne 0x543415
cmp dword [esp + 0x20], 0
mov dword [esp + 0x34], esi
je 0x53d14b
cmp edi, edx
jge 0x53d0db
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
mov edx, dword [esp + 0x38]
jmp 0x53cfa6
mov eax, dword [esp + 0x10]
cmp esi, ebp
mov ecx, 1
jae 0x53d0bb
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x53d0a2
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x53cfde
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x53d0a2
test al, 0x10
jne 0x53d000
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 3
jmp 0x53d0a2
test al, 8
jne 0x53d02e
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 4
jmp 0x53d0a2
test al, 4
jne 0x53d065
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 5
jmp 0x53d0a2
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 6
cmp ebx, eax
je 0x53d0db
cmp edx, eax
je 0x53d0db
add edi, 1
add esi, ecx
cmp edi, dword [esp + 0x18]
jl 0x53cfa2
jmp 0x53d0db
cmp dword [eax + 0x88], 0
je 0x53d0db
cmp esi, dword [eax + 0x84]
jbe 0x53d0db
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jg 0x545577
cmp dword [esp + 0x3c], 0
jne 0x5386c0
cmp esi, dword [esp + 0x34]
jbe 0x541c63
mov ebp, dword [esp + 0x170]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
nop
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
push ecx
push edx
push ebp
push ebx
push edi
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
mov al, byte [esi - 1]
sub esi, 1
and al, 0xc0
cmp al, 0x80
jne 0x53d140
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
je 0x53d132
cmp esi, dword [esp + 0x34]
ja 0x53d100
jmp 0x541c63
cmp edi, edx
mov ecx, edi
jge 0x53d19a
mov ebp, dword [esp + 0x10]
mov edi, dword [ebp + 0x78]
cmp esi, edi
jae 0x53d175
movzx eax, byte [esi]
cmp ebx, eax
je 0x53d19a
cmp dword [esp + 0x38], eax
je 0x53d19a
add ecx, 1
add esi, 1
cmp ecx, edx
jl 0x53d158
jmp 0x53d19a
cmp dword [ebp + 0x88], 0
je 0x53d19a
cmp esi, dword [ebp + 0x84]
jbe 0x53d19a
mov eax, 1
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x88], eax
jg 0x545577
cmp dword [esp + 0x3c], 0
jne 0x5386c0
cmp esi, dword [esp + 0x34]
je 0x541c63
mov ebp, dword [esp + 0x170]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
mov edi, edi
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add edx, 1
push edx
push eax
push ecx
push ebp
push ebx
push edi
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
sub esi, 1
cmp esi, dword [esp + 0x34]
jne 0x53d1c0
jmp 0x541c63
test ebp, ebp
je 0x53d316
mov ecx, 1
cmp edi, ecx
jl 0x53d347
mov ebx, dword [esp + 0x10]
mov ebp, dword [ebx + 0x78]
cmp esi, ebp
jae 0x543636
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53d2ff
movzx edx, byte [esi]
and edx, 0x3f
test al, 0x20
jne 0x53d243
and eax, 0x1f
shl eax, 6
or eax, edx
add esi, 1
jmp 0x53d2ff
test al, 0x10
jne 0x53d263
and eax, 0xf
shl eax, 6
or eax, edx
movzx edx, byte [esi + 1]
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 2
jmp 0x53d2ff
test al, 8
jne 0x53d28f
and eax, 7
shl eax, 6
or eax, edx
movzx edx, byte [esi + 1]
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 3
jmp 0x53d2ff
test al, 4
jne 0x53d2c4
and eax, 3
shl eax, 6
or eax, edx
movzx edx, byte [esi + 1]
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 3]
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 4
jmp 0x53d2ff
and eax, 1
shl eax, 6
or eax, edx
movzx edx, byte [esi + 1]
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 3]
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 4]
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 5
cmp dword [esp + 0x30], eax
je case.0x545420.14
add ecx, 1
cmp ecx, edi
jle 0x53d210
jmp 0x53d34b
mov eax, 1
cmp edi, eax
jl 0x53d347
mov ebx, dword [esp + 0x10]
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x543636
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x30], ecx
je case.0x545420.14
add eax, 1
cmp eax, edi
jle 0x53d326
jmp 0x53d34b
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
cmp edi, ecx
je 0x5386c0
cmp dword [esp + 0x34], 0
jne 0x543662
cmp dword [esp + 0x20], 0
mov edx, esi
mov dword [esp + 0x34], edx
je 0x53d52b
cmp edi, ecx
jge 0x53d4b7
mov ebp, dword [ebx + 0x78]
jmp 0x53d384
mov ebx, dword [esp + 0x10]
cmp esi, ebp
mov ecx, 1
jae 0x53d497
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x53d480
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x53d3bc
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x53d480
test al, 0x10
jne 0x53d3de
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 3
jmp 0x53d480
test al, 8
jne 0x53d40c
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 4
jmp 0x53d480
test al, 4
jne 0x53d443
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 5
jmp 0x53d480
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 6
cmp dword [esp + 0x30], eax
je 0x53d4b7
add edi, 1
add esi, ecx
cmp edi, dword [esp + 0x18]
jl 0x53d380
jmp 0x53d4b7
cmp dword [ebx + 0x88], 0
je 0x53d4b7
cmp esi, dword [ebx + 0x84]
jbe 0x53d4b7
mov dword [ebx + 0x64], ecx
cmp dword [ebx + 0x88], ecx
jg 0x545577
cmp dword [esp + 0x3c], 0
jne 0x5386c0
cmp esi, edx
jbe 0x541c63
mov ebp, dword [esp + 0x170]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
lea esp, [esp]
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add edx, 1
push edx
push eax
push ecx
push ebp
push ebx
push edi
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
mov dl, byte [esi - 1]
sub esi, 1
and dl, 0xc0
cmp dl, 0x80
jne 0x53d520
mov al, byte [esi - 1]
sub esi, 1
and al, 0xc0
cmp al, 0x80
je 0x53d514
cmp esi, dword [esp + 0x34]
ja 0x53d4e0
jmp 0x541c63
cmp edi, ecx
mov eax, edi
jge 0x53d57a
mov ecx, dword [ebx + 0x78]
jmp 0x53d53a
mov ebx, dword [esp + 0x10]
cmp esi, ecx
jae 0x53d555
movzx edi, byte [esi]
cmp dword [esp + 0x30], edi
je 0x53d57a
add eax, 1
add esi, 1
cmp eax, dword [esp + 0x18]
jl 0x53d536
jmp 0x53d57a
cmp dword [ebx + 0x88], 0
je 0x53d57a
cmp esi, dword [ebx + 0x84]
jbe 0x53d57a
mov eax, 1
mov dword [ebx + 0x64], eax
cmp dword [ebx + 0x88], eax
jg 0x545577
cmp dword [esp + 0x3c], 0
jne 0x5386c0
cmp esi, edx
je 0x541c63
mov ebp, dword [esp + 0x170]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
lea esp, [esp]
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add ecx, 1
push ecx
push edx
push eax
push ebp
push ebx
push edi
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
sub esi, 1
cmp esi, dword [esp + 0x34]
jne 0x53d5a0
jmp 0x541c63
xor eax, eax
mov ah, byte [edx + 1]
mov dword [esp + 0x34], 1
add edx, 3
mov al, byte [edx - 1]
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], eax
mov ebx, eax
jmp 0x53d6ab
xor ecx, ecx
mov ch, byte [edx + 1]
mov dword [esp + 0x2c], ebp
mov ebx, ebp
mov cl, byte [edx + 2]
mov dword [esp + 0x18], ecx
xor ecx, ecx
cmp al, 0x5c
sete cl
add edx, 3
mov dword [esp + 0x34], ecx
jmp 0x53d6ab
mov dword [esp + 0x3c], 1
mov dword [esp + 0x2c], ebp
add edx, 1
mov ebx, ebp
jmp 0x53d6a3
mov eax, 1
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], eax
add edx, eax
mov ebx, eax
jmp 0x53d6a3
mov eax, 1
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x18], eax
add edx, eax
mov ebx, ebp
jmp 0x53d6ab
xor eax, eax
mov ah, byte [edx + 1]
mov dword [esp + 0x3c], 1
mov dword [esp + 0x2c], ebp
add edx, 3
mov ebx, ebp
mov al, byte [edx - 1]
mov dword [esp + 0x18], eax
jmp 0x53d6ab
lea eax, [ebx - 0x55]
movsx ebx, byte [eax + 0x573628]
mov ecx, eax
movsx eax, byte [eax + 0x573634]
and ecx, 1
add edx, 1
cmp eax, ebp
mov dword [esp + 0x34], ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x18], eax
jne 0x53d6ab
mov dword [esp + 0x18], closesocket
movzx edi, byte [edx]
add edx, 1
cmp edi, 0x10
mov dword [esp + 0x38], edi
mov dword [esp + 0x14], edx
je 0x53d6cc
cmp edi, 0xf
je 0x53d6cc
mov ebp, dword [esp + 0x44]
or eax, 0xffffffff
jmp 0x53d6ef
movzx eax, byte [edx]
xor ecx, ecx
cmp edi, 0xf
sete cl
add edx, 1
add edx, 1
mov dword [esp + 0x14], edx
mov ebp, ecx
movzx ecx, byte [edx - 1]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ecx
test ebx, ebx
mov dword [esp + 0x4c], eax
jle 0x53f8f7
test eax, eax
jl 0x53e5d3
cmp eax, 0xa
ja case.default.0x53ad0f
jmp dword [eax*4 + 0x54585c]
test ebp, ebp
jne case.0x545420.14
lea ecx, [ebp + 1]
cmp ebx, ecx
jl 0x53f8f7
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
mov ebp, dword [esp + 0x20]
cmp esi, edx
jae 0x5438f2
movzx eax, byte [esi]
add esi, 1
test ebp, ebp
je 0x53d771
cmp eax, 0xc0
jb 0x53d771
test al, 0x20
jne 0x53d753
add esi, 1
jmp 0x53d771
test al, 0x10
jne 0x53d75c
add esi, 2
jmp 0x53d771
test al, 8
jne 0x53d765
add esi, 3
jmp 0x53d771
test al, 4
jne 0x53d76e
add esi, 4
jmp 0x53d771
add esi, 5
add ecx, 1
cmp ecx, ebx
jle 0x53d731
jmp 0x53d907
mov edi, 1
cmp ebx, edi
jl 0x53f8f7
mov edx, dword [esp + 0x10]
mov ebp, dword [edx + 0x78]
mov ebx, dword [esp + 0x20]
cmp esi, ebp
jae 0x543874
movzx ecx, byte [esi]
add esi, 1
test ebx, ebx
je 0x53d89c
cmp ecx, 0xc0
jb 0x53d89c
test cl, 0x20
jne 0x53d7d2
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 1
jmp 0x53d89c
test cl, 0x10
jne 0x53d7f9
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x53d89c
test cl, 8
jne 0x53d82c
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 7
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 3
jmp 0x53d89c
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and eax, 0x3f
and edx, 0x3f
test cl, 4
jne 0x53d868
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 4
jmp 0x53d89c
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x53d8be
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx eax, byte [eax*8 + 0x5742d9]
cmp eax, 9
je 0x53d8e3
cmp eax, 5
je 0x53d8e3
cmp eax, 8
je 0x53d8e3
xor eax, eax
jmp 0x53d8e8
mov eax, 1
cmp eax, dword [esp + 0x44]
je case.0x545420.14
add edi, 1
cmp edi, dword [esp + 0x2c]
jle 0x53d795
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x18]
cmp ebx, ebp
je 0x5386c0
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x4c]
jne 0x54391e
test eax, eax
mov dword [esp + 0x34], esi
jl 0x540879
cmp eax, 0xa
ja case.default.0x53ad0f
jmp dword [eax*4 + 0x545888]
mov edi, 1
cmp ebx, edi
jl 0x53f8f7
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + 0x78]
mov ebx, dword [esp + 0x20]
cmp esi, ebp
jae 0x543874
movzx ecx, byte [esi]
add esi, 1
test ebx, ebx
je 0x53da5d
cmp ecx, 0xc0
jb 0x53da5d
test cl, 0x20
jne 0x53d993
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x53da5d
test cl, 0x10
jne 0x53d9ba
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 2
jmp 0x53da5d
test cl, 8
jne 0x53d9ed
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x53da5d
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x53da29
and ecx, 3
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x53da5d
and ecx, 1
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x575958]
shl eax, 7
and ecx, 0x8000007f
jns 0x53da7f
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx ecx, word [eax*2 + 0x577b58]
movzx edx, byte [ecx*8 + 0x5742d9]
mov ecx, dword [esp + 0x48]
xor eax, eax
cmp dword [edx*4 + 0x573818], ecx
sete al
cmp eax, dword [esp + 0x44]
je case.0x545420.14
add edi, 1
cmp edi, dword [esp + 0x2c]
jle 0x53d956
jmp 0x53d8ff
mov edi, 1
cmp ebx, edi
jl 0x53f8f7
mov edx, dword [esp + 0x10]
mov ebp, dword [edx + 0x78]
mov ebx, dword [esp + 0x20]
cmp esi, ebp
jae 0x543874
movzx ecx, byte [esi]
add esi, 1
test ebx, ebx
je 0x53dbdc
cmp ecx, 0xc0
jb 0x53dbdc
test cl, 0x20
jne 0x53db12
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 1
jmp 0x53dbdc
test cl, 0x10
jne 0x53db39
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x53dbdc
test cl, 8
jne 0x53db6c
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 7
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 3
jmp 0x53dbdc
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and eax, 0x3f
and edx, 0x3f
test cl, 4
jne 0x53dba8
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 4
jmp 0x53dbdc
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x53dbfe
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx ecx, byte [eax*8 + 0x5742d9]
xor edx, edx
cmp ecx, dword [esp + 0x48]
sete dl
cmp edx, dword [esp + 0x44]
je case.0x545420.14
add edi, 1
cmp edi, dword [esp + 0x2c]
jle 0x53dad5
jmp 0x53d8ff
mov edi, 1
cmp ebx, edi
jl 0x53f8f7
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
mov ebx, dword [esp + 0x20]
lea ecx, [ecx]
cmp esi, ebp
jae 0x543874
movzx ecx, byte [esi]
add esi, 1
test ebx, ebx
je 0x53dd57
cmp ecx, 0xc0
jb 0x53dd57
test cl, 0x20
jne 0x53dc8d
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x53dd57
test cl, 0x10
jne 0x53dcb4
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 2
jmp 0x53dd57
test cl, 8
jne 0x53dce7
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x53dd57
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x53dd23
and ecx, 3
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x53dd57
and ecx, 1
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x575958]
shl eax, 7
and ecx, 0x8000007f
jns 0x53dd79
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx ecx, word [eax*2 + 0x577b58]
movzx edx, byte [ecx*8 + 0x5742d8]
xor eax, eax
cmp edx, dword [esp + 0x48]
sete al
cmp eax, dword [esp + 0x44]
je case.0x545420.14
add edi, 1
cmp edi, dword [esp + 0x2c]
jle 0x53dc50
jmp 0x53d8ff
mov edi, 1
cmp ebx, edi
jl 0x53f8f7
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + 0x78]
mov ebx, dword [esp + 0x20]
cmp esi, ebp
jae 0x543874
movzx ecx, byte [esi]
add esi, 1
test ebx, ebx
je 0x53decf
cmp ecx, 0xc0
jb 0x53decf
test cl, 0x20
jne 0x53de05
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x53decf
test cl, 0x10
jne 0x53de2c
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 2
jmp 0x53decf
test cl, 8
jne 0x53de5f
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x53decf
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x53de9b
and ecx, 3
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x53decf
and ecx, 1
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x575958]
shl eax, 7
and ecx, 0x8000007f
jns 0x53def1
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx ecx, word [eax*2 + 0x577b58]
movzx edx, byte [ecx*8 + 0x5742d9]
mov eax, dword [edx*4 + 0x573818]
cmp eax, 1
je 0x53df18
cmp eax, 3
je 0x53df18
xor eax, eax
jmp 0x53df1d
mov eax, 1
cmp eax, dword [esp + 0x44]
je case.0x545420.14
add edi, 1
cmp edi, dword [esp + 0x2c]
jle 0x53ddc8
jmp 0x53d8ff
mov edi, 1
cmp ebx, edi
jl 0x53f8f7
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
lea ebp, [edi + 5]
cmp esi, ebx
jae 0x543874
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x53e05a
cmp ecx, 0xc0
jb 0x53e05a
test cl, 0x20
jne 0x53df90
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x53e05a
test cl, 0x10
jne 0x53dfb7
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 2
jmp 0x53e05a
test cl, 8
jne 0x53dfea
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x53e05a
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x53e026
and ecx, 3
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x53e05a
and ecx, 1
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 5
cmp ecx, 0x180e
ja 0x53e09d
je case.0x53e0bd.8192
cmp ecx, 0x85
ja 0x53e089
je case.0x53e0bd.8192
cmp ecx, 9
jb case.0x53e0bd.8203
cmp ecx, 0xd
jbe case.0x53e0bd.8192
cmp ecx, 0x20
jmp 0x53e0d2
cmp ecx, 0xa0
je case.0x53e0bd.8192
cmp ecx, 0x1680
jmp 0x53e0d2
cmp ecx, 0x202f
ja 0x53e0c4
je case.0x53e0bd.8192
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x53e0bd.8203
movzx eax, byte [eax + 0x5458bc]
jmp dword [eax*4 + 0x5458b4]
cmp ecx, 0x205f
je case.0x53e0bd.8192
cmp ecx, 0x3000
je case.0x53e0bd.8192
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x53e0f6
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx ecx, byte [eax*8 + 0x5742d9]
xor edx, edx
cmp dword [ecx*4 + 0x573818], ebp
sete dl
cmp edx, dword [esp + 0x44]
je case.0x545420.14
jmp 0x53e12b
cmp dword [esp + 0x44], 0
jne case.0x545420.14
add edi, 1
cmp edi, dword [esp + 0x2c]
jle 0x53df50
jmp 0x53d8ff
mov edi, 1
cmp ebx, edi
jl 0x53f8f7
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
mov ebx, dword [esp + 0x20]
cmp esi, ebp
jae 0x543874
movzx ecx, byte [esi]
add esi, 1
test ebx, ebx
je 0x53e25c
cmp ecx, 0xc0
jb 0x53e25c
test cl, 0x20
jne 0x53e192
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x53e25c
test cl, 0x10
jne 0x53e1b9
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 2
jmp 0x53e25c
test cl, 8
jne 0x53e1ec
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x53e25c
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x53e228
and ecx, 3
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x53e25c
and ecx, 1
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x575958]
mov edx, ecx
shl eax, 7
and edx, 0x8000007f
jns 0x53e280
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x577b58]
movzx edx, byte [eax*8 + 0x5742d9]
mov eax, dword [edx*4 + 0x573818]
cmp eax, 1
je 0x53e2ac
cmp eax, 3
je 0x53e2ac
cmp ecx, 0x5f
je 0x53e2ac
xor eax, eax
jmp 0x53e2b1
mov eax, 1
cmp eax, dword [esp + 0x44]
je case.0x545420.14
add edi, 1
cmp edi, dword [esp + 0x2c]
jle 0x53e155
jmp 0x53d8ff
mov edi, 1
cmp ebx, edi
jl 0x53f8f7
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
mov ebx, dword [esp + 0x20]
cmp esi, ebp
jae 0x543874
movzx eax, byte [esi]
add esi, 1
test ebx, ebx
je 0x53e3e7
cmp eax, 0xc0
jb 0x53e3e7
test al, 0x20
jne 0x53e320
movzx ecx, byte [esi]
and eax, 0x1f
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 1
jmp 0x53e3e7
test al, 0x10
jne 0x53e346
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
and eax, 0xf
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 2
jmp 0x53e3e7
test al, 8
jne 0x53e378
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
and eax, 7
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 3
jmp 0x53e3e7
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0x3f
and edx, 0x3f
test al, 4
jne 0x53e3b3
and eax, 3
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
or eax, edx
movzx edx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 4
jmp 0x53e3e7
and eax, 1
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
or eax, edx
movzx edx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 4]
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 5
mov edx, dword [esp + 0x48]
mov ecx, dword [edx*4 + 0x574198]
cmp eax, ecx
lea edx, [edx*4 + 0x574198]
jb 0x53e40d
lea ecx, [ecx]
add edx, 4
cmp eax, ecx
je 0x53e41a
mov ecx, dword [edx]
cmp eax, ecx
jae 0x53e400
cmp dword [esp + 0x44], 0
je case.0x545420.14
jmp 0x53e425
cmp dword [esp + 0x44], 0
jne case.0x545420.14
add edi, 1
cmp edi, dword [esp + 0x2c]
jle 0x53e2e5
jmp 0x53d8ff
mov ecx, 1
cmp ebx, ecx
jl 0x53f8f7
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
jmp 0x53e450
cmp esi, edx
jae 0x5438f2
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x53e58e
cmp eax, 0xc0
jb 0x53e58e
test al, 0x20
jne 0x53e496
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 1
jmp 0x53e58a
test al, 0x10
jne 0x53e4c4
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 0xf
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 2
jmp 0x53e58a
test al, 8
jne 0x53e4fe
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 7
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 3
jmp 0x53e58a
test al, 4
jne 0x53e541
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 3
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 4
jmp 0x53e58a
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 1
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 4]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 5
mov edi, dword [esp + 0x10]
cmp eax, 0x24
je 0x53e5b6
cmp eax, 0x40
je 0x53e5b6
cmp eax, 0x60
je 0x53e5b6
cmp eax, 0xa0
jb 0x53e5ab
cmp eax, 0xd7ff
jbe 0x53e5b6
cmp eax, 0xe000
jae 0x53e5b6
xor eax, eax
jmp 0x53e5bb
mov eax, 1
cmp eax, ebp
je case.0x545420.14
add ecx, 1
cmp ecx, ebx
jle 0x53e450
jmp 0x53d907
cmp edi, 0x16
jne 0x53e8d3
cmp ebx, 1
mov dword [esp + 0x30], 1
jl 0x53f8f7
lea ecx, [ecx]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
cmp esi, edi
mov dword [esp + 0x24], edi
jae 0x543878
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x53e705
cmp ecx, 0xc0
jb 0x53e705
test cl, 0x20
jne 0x53e63b
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x53e705
test cl, 0x10
jne 0x53e662
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 2
jmp 0x53e705
test cl, 8
jne 0x53e695
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x53e705
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x53e6d1
and ecx, 3
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x53e705
and ecx, 1
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x575958]
shl eax, 7
and ecx, 0x8000007f
jns 0x53e727
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
cmp esi, edi
movzx ecx, word [eax*2 + 0x577b58]
movzx ebp, byte [ecx*8 + 0x5742da]
jae 0x53e88a
mov ebx, dword [esp + 0x20]
test ebx, ebx
movzx ecx, byte [esi]
mov edi, 1
je 0x53e838
cmp ecx, 0xc0
jb 0x53e838
test cl, 0x20
jne 0x53e77d
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x53e836
test cl, 0x10
jne 0x53e7a7
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or ecx, eax
mov edi, 3
jmp 0x53e838
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x53e7cd
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x53e828
and eax, 0x3f
test cl, 4
jne 0x53e803
and ecx, 3
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and ecx, 0x3f
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov edi, 5
jmp 0x53e838
and ecx, edi
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [esi + 5]
mov edi, 6
shl edx, 6
and eax, 0x3f
or edx, eax
shl edx, 6
and ecx, 0x3f
or ecx, edx
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x53e85a
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx ecx, byte [eax*8 + 0x5742da]
mov edx, 1
shl edx, cl
test dword [ebp*4 + 0x5737a4], edx
je 0x53e88a
add esi, edi
cmp esi, dword [esp + 0x24]
mov ebp, ecx
jb 0x53e745
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je 0x53e8b9
cmp esi, dword [esp + 0x24]
jb 0x53e8b9
cmp esi, dword [eax + 0x84]
jbe 0x53e8b9
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jg 0x545577
mov eax, dword [esp + 0x30]
add eax, 1
cmp eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
jle 0x53e5f0
jmp 0x53d8ff
cmp dword [esp + 0x20], 0
lea eax, [edi - 6]
je 0x53f502
cmp eax, 0xf
ja case.default.0x53ad0f
jmp dword [eax*4 + 0x5458e8]
mov ebp, 1
cmp dword [esp + 0x2c], ebp
jl 0x53d8ff
mov ebx, dword [esp + 0x10]
mov ecx, ebp
cmp esi, dword [ebx + 0x78]
jae 0x5438a4
mov eax, dword [ebx + 0x18]
test eax, eax
lea edi, [ebx + 0x1c]
je 0x53e937
mov ecx, dword [esp + 0x20]
mov edx, dword [ebx + 0x78]
push ecx
push edi
push edx
push eax
push esi
call fcn.00546dc0
test eax, eax
jne case.0x545420.14
lea ecx, [eax + 1]
jmp 0x53e95b
mov eax, dword [ebx + 0x78]
sub eax, dword [edi]
cmp esi, eax
ja 0x53e95b
mov dl, byte [esi]
cmp dl, byte [ebx + 0x34]
jne 0x53e95b
cmp dword [edi], ecx
je case.0x545420.14
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.0x545420.14
cmp dword [ebx + 0x88], 0
je 0x53e98d
lea edx, [esi + 1]
cmp edx, dword [ebx + 0x78]
jb 0x53e98d
cmp dword [ebx + 0x18], 0
jne 0x53e98d
cmp dword [edi], 2
jne 0x53e98d
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x53e98d
mov dword [ebx + 0x64], ecx
cmp dword [ebx + 0x88], ecx
jg 0x545577
mov eax, dword [ebx + 0x78]
add esi, ecx
cmp esi, eax
jae 0x53e9a6
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x53e9a6
add esi, ecx
cmp esi, eax
jb 0x53e996
add ebp, ecx
cmp ebp, dword [esp + 0x2c]
jle 0x53e906
mov edi, ebx
jmp 0x53d903
mov ecx, 1
cmp ebx, ecx
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x78]
lea ecx, [ecx]
cmp esi, eax
jae 0x5438f2
add esi, 1
cmp esi, eax
jae 0x53e9f1
nop
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x53e9f1
add esi, 1
cmp esi, eax
jb 0x53e9e0
add ecx, 1
cmp ecx, ebx
jle 0x53e9d0
jmp 0x53d907
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x78]
sub eax, ebx
cmp esi, eax
ja case.0x545420.14
add esi, ebx
jmp 0x53d907
mov ecx, 1
cmp ebx, ecx
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
lea esp, [esp]
cmp esi, edx
jae 0x5438f2
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53eb5f
test al, 0x20
jne 0x53ea6b
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 1
jmp 0x53eb5f
test al, 0x10
jne 0x53ea99
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 0xf
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 2
jmp 0x53eb5f
test al, 8
jne 0x53ead3
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 7
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 3
jmp 0x53eb5f
test al, 4
jne 0x53eb16
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 3
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 4
jmp 0x53eb5f
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 1
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 4]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 5
cmp eax, 0xd
ja 0x53eb84
je 0x53eb76
cmp eax, 0xa
je 0x53ebab
jbe case.0x545420.14
cmp eax, 0xc
jmp 0x53eb9b
cmp esi, edx
jae 0x53ebab
cmp byte [esi], 0xa
jne 0x53ebab
add esi, 1
jmp 0x53ebab
cmp eax, 0x85
je 0x53eba1
cmp eax, 0x2027
jbe case.0x545420.14
cmp eax, 0x2029
ja case.0x545420.14
cmp dword [edi + 0x68], 0
jne case.0x545420.14
add ecx, 1
cmp ecx, ebx
jle 0x53ea30
jmp 0x53d907
mov ecx, 1
cmp ebx, ecx
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
nop
cmp esi, edx
jae 0x5438f2
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53ecff
test al, 0x20
jne 0x53ec0b
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 1
jmp 0x53ecff
test al, 0x10
jne 0x53ec39
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 0xf
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 2
jmp 0x53ecff
test al, 8
jne 0x53ec73
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 7
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 3
jmp 0x53ecff
test al, 4
jne 0x53ecb6
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 3
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 4
jmp 0x53ecff
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 1
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 4]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 5
cmp eax, 0x180e
ja 0x53ed2e
je case.0x545420.14
cmp eax, 0xa0
ja 0x53ed27
je case.0x545420.14
cmp eax, 9
je case.0x545420.14
cmp eax, 0x20
jmp 0x53ed59
cmp eax, 0x1680
jmp 0x53ed59
cmp eax, 0x205f
ja 0x53ed54
je case.0x545420.14
cmp eax, 0x2000
jb 0x53ed5f
cmp eax, 0x200a
jbe case.0x545420.14
cmp eax, 0x202f
jmp 0x53ed59
cmp eax, 0x3000
je case.0x545420.14
add ecx, 1
cmp ecx, ebx
jle 0x53ebd0
jmp 0x53d907
mov ecx, 1
cmp ebx, ecx
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x5438f2
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53eeb2
test al, 0x20
jne 0x53edbe
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 1
jmp 0x53eeb2
test al, 0x10
jne 0x53edec
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 0xf
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 2
jmp 0x53eeb2
test al, 8
jne 0x53ee26
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 7
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 3
jmp 0x53eeb2
test al, 4
jne 0x53ee69
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 3
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 4
jmp 0x53eeb2
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 1
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 4]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 5
cmp eax, 0x180e
ja 0x53eed5
je 0x53ef02
cmp eax, 0xa0
ja 0x53eece
je 0x53ef02
cmp eax, 9
je 0x53ef02
cmp eax, 0x20
jmp 0x53eefc
cmp eax, 0x1680
jmp 0x53eefc
cmp eax, 0x205f
ja 0x53eef7
je 0x53ef02
cmp eax, 0x2000
jb case.0x545420.14
cmp eax, 0x200a
jbe 0x53ef02
cmp eax, 0x202f
jmp 0x53eefc
cmp eax, 0x3000
jne case.0x545420.14
add ecx, 1
cmp ecx, ebx
jle 0x53ed83
jmp 0x53d907
mov ecx, 1
cmp ebx, ecx
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x5438f2
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53f055
test al, 0x20
jne 0x53ef61
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 1
jmp 0x53f055
test al, 0x10
jne 0x53ef8f
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 0xf
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 2
jmp 0x53f055
test al, 8
jne 0x53efc9
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 7
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 3
jmp 0x53f055
test al, 4
jne 0x53f00c
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 3
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 4
jmp 0x53f055
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 1
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 4]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 5
cmp eax, 0x85
ja 0x53f06c
je case.0x545420.14
cmp eax, 0xa
jb 0x53f07e
cmp eax, 0xd
jmp 0x53f078
cmp eax, 0x2028
jb 0x53f07e
cmp eax, 0x2029
jbe case.0x545420.14
add ecx, 1
cmp ecx, ebx
jle 0x53ef26
jmp 0x53d907
mov ecx, 1
cmp ebx, ecx
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x5438f2
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53f1d1
test al, 0x20
jne 0x53f0dd
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 1
jmp 0x53f1d1
test al, 0x10
jne 0x53f10b
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 0xf
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 2
jmp 0x53f1d1
test al, 8
jne 0x53f145
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 7
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 3
jmp 0x53f1d1
test al, 4
jne 0x53f188
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 3
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 4
jmp 0x53f1d1
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 1
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 4]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 5
cmp eax, 0x85
ja 0x53f1e8
je 0x53f1fe
cmp eax, 0xa
jb case.0x545420.14
cmp eax, 0xd
jmp 0x53f1f8
cmp eax, 0x2028
jb case.0x545420.14
cmp eax, 0x2029
ja case.0x545420.14
add ecx, 1
cmp ecx, ebx
jle 0x53f0a2
jmp 0x53d907
mov ecx, 1
cmp ebx, ecx
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x5438f2
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53f351
test al, 0x20
jne 0x53f25d
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 1
jmp 0x53f351
test al, 0x10
jne 0x53f28b
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 0xf
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 2
jmp 0x53f351
test al, 8
jne 0x53f2c5
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 7
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 3
jmp 0x53f351
test al, 4
jne 0x53f308
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 3
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 4
jmp 0x53f351
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi]
and eax, 1
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
and ecx, 0x3f
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 4]
and ecx, 0x3f
shl eax, 6
or eax, ecx
mov ecx, dword [esp + 0x24]
add esi, 5
cmp eax, 0x80
jae 0x53f365
mov ebp, dword [edi + 0x40]
test byte [eax + ebp], 4
jne case.0x545420.14
add ecx, 1
cmp ecx, ebx
jle 0x53f222
jmp 0x53d907
mov ecx, 1
cmp ebx, ecx
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
lea esp, [esp]
cmp esi, edx
jae 0x5438f2
movzx eax, byte [esi]
cmp eax, 0x80
jae case.0x545420.14
mov ebp, dword [edi + 0x40]
test byte [eax + ebp], 4
je case.0x545420.14
add ecx, 1
add esi, 1
cmp ecx, ebx
jle 0x53f390
jmp 0x53d907
mov edx, 1
cmp ebx, edx
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x5438f2
movzx eax, byte [esi]
cmp eax, 0x80
jae 0x53f3f5
mov ebp, dword [edi + 0x40]
test byte [eax + ebp], 1
jne case.0x545420.14
add esi, 1
cmp esi, ecx
jae 0x53f40f
lea esp, [esp]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x53f40f
add esi, 1
cmp esi, ecx
jb 0x53f400
add edx, 1
cmp edx, ebx
jle 0x53f3d6
jmp 0x53d907
mov ecx, 1
cmp ebx, ecx
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
nop
cmp esi, edx
jae 0x5438f2
movzx eax, byte [esi]
cmp eax, 0x80
jae case.0x545420.14
mov ebp, dword [edi + 0x40]
test byte [eax + ebp], 1
je case.0x545420.14
add ecx, 1
add esi, 1
cmp ecx, ebx
jle 0x53f430
jmp 0x53d907
mov edx, 1
cmp ebx, edx
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x5438f2
movzx eax, byte [esi]
cmp eax, 0x80
jae 0x53f495
mov ebp, dword [edi + 0x40]
test byte [eax + ebp], 0x10
jne case.0x545420.14
add esi, 1
cmp esi, ecx
jae 0x53f4af
lea esp, [esp]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x53f4af
add esi, 1
cmp esi, ecx
jb 0x53f4a0
add edx, 1
cmp edx, ebx
jle 0x53f476
jmp 0x53d907
mov ecx, 1
cmp ebx, ecx
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
nop
cmp esi, edx
jae 0x5438f2
movzx eax, byte [esi]
cmp eax, 0x80
jae case.0x545420.14
mov ebp, dword [edi + 0x40]
test byte [eax + ebp], 0x10
je case.0x545420.14
add ecx, 1
add esi, 1
cmp ecx, ebx
jle 0x53f4d0
jmp 0x53d907
cmp eax, 0xf
ja case.default.0x53ad0f
jmp dword [eax*4 + 0x545928]
mov ebp, 1
cmp dword [esp + 0x2c], ebp
jl 0x53d8ff
mov ecx, dword [esp + 0x10]
lea ebx, [esi + 1]
mov edx, ebp
lea ebx, [ebx]
cmp esi, dword [ecx + 0x78]
jae 0x5438cb
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x53f566
mov ecx, dword [esp + 0x10]
push 0
lea edi, [ecx + 0x1c]
mov ecx, dword [ecx + 0x78]
push edi
push ecx
push eax
push esi
call fcn.00546dc0
test eax, eax
jne case.0x545420.14
mov ecx, dword [esp + 0x10]
lea edx, [eax + 1]
jmp 0x53f58d
mov eax, dword [ecx + 0x78]
sub eax, dword [ecx + 0x1c]
lea edi, [ecx + 0x1c]
cmp esi, eax
ja 0x53f58d
mov al, byte [esi]
cmp al, byte [ecx + 0x34]
jne 0x53f58d
cmp dword [edi], edx
je case.0x545420.14
mov al, byte [ebx]
cmp al, byte [ecx + 0x35]
je case.0x545420.14
cmp dword [ecx + 0x88], 0
je 0x53f5bc
cmp ebx, dword [ecx + 0x78]
jb 0x53f5bc
cmp dword [ecx + 0x18], 0
jne 0x53f5bc
cmp dword [edi], 2
jne 0x53f5bc
mov al, byte [esi]
cmp al, byte [ecx + 0x34]
jne 0x53f5bc
mov dword [ecx + 0x64], edx
cmp dword [ecx + 0x88], edx
jg 0x545577
add ebp, edx
add esi, edx
add ebx, edx
cmp ebp, dword [esp + 0x2c]
jle 0x53f530
jmp 0x53d8ff
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
sub ecx, ebx
cmp esi, ecx
ja 0x5438f2
add esi, ebx
jmp 0x53d907
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
sub edx, ebx
cmp esi, edx
ja 0x5438f2
add esi, ebx
jmp 0x53d907
mov ecx, 1
cmp ebx, ecx
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x5438f2
movzx eax, byte [esi]
sub eax, 0xa
add esi, 1
cmp eax, 0x7b
ja case.0x545420.14
movzx eax, byte [eax + 0x545978]
jmp dword [eax*4 + 0x545968]
cmp esi, edx
jae case.0x53f636.10
cmp byte [esi], 0xa
jne case.0x53f636.10
add esi, 1
jmp case.0x53f636.10
cmp dword [edi + 0x68], 0
jne case.0x545420.14
add ecx, 1
cmp ecx, ebx
jle 0x53f615
jmp 0x53d907
mov ecx, 1
cmp ebx, ecx
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x5438f2
movzx eax, byte [esi]
add esi, 1
cmp eax, 9
je case.0x545420.14
cmp eax, 0x20
je case.0x545420.14
cmp eax, 0xa0
je case.0x545420.14
add ecx, 1
cmp ecx, ebx
jle 0x53f675
jmp 0x53d907
mov ecx, 1
cmp ebx, ecx
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x5438f2
movzx eax, byte [esi]
add esi, 1
cmp eax, 9
je 0x53f6e3
cmp eax, 0x20
je 0x53f6e3
cmp eax, 0xa0
jne case.0x545420.14
add ecx, 1
cmp ecx, ebx
jle 0x53f6c0
jmp 0x53d907
mov ecx, 1
cmp ebx, ecx
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x5438f2
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xa
jl 0x53f72a
cmp eax, 0xd
jle case.0x545420.14
cmp eax, 0x85
je case.0x545420.14
add ecx, 1
cmp ecx, ebx
jle 0x53f703
jmp 0x53d907
mov ecx, 1
cmp ebx, ecx
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
lea ebx, [ebx]
cmp esi, edx
jae 0x5438f2
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xa
jl case.0x545420.14
cmp eax, 0xd
jle 0x53f777
cmp eax, 0x85
jne case.0x545420.14
add ecx, 1
cmp ecx, ebx
jle 0x53f750
jmp 0x53d907
mov eax, 1
cmp ebx, eax
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x5438f2
movzx edx, byte [esi]
mov ebp, dword [edi + 0x40]
test byte [edx + ebp], 4
jne case.0x545420.14
add eax, 1
add esi, 1
cmp eax, ebx
jle 0x53f797
jmp 0x53d907
mov eax, 1
cmp ebx, eax
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x5438f2
movzx edx, byte [esi]
mov ebp, dword [edi + 0x40]
test byte [edx + ebp], 4
je case.0x545420.14
add eax, 1
add esi, 1
cmp eax, ebx
jle 0x53f7d2
jmp 0x53d907
mov eax, 1
cmp ebx, eax
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
lea ecx, [ecx]
cmp esi, ecx
jae 0x5438f2
movzx edx, byte [esi]
mov ebp, dword [edi + 0x40]
test byte [edx + ebp], 1
jne case.0x545420.14
add eax, 1
add esi, 1
cmp eax, ebx
jle 0x53f810
jmp 0x53d907
mov eax, 1
cmp ebx, eax
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
jmp 0x53f850
cmp esi, ecx
jae 0x5438f2
movzx edx, byte [esi]
mov ebp, dword [edi + 0x40]
test byte [edx + ebp], 1
je case.0x545420.14
add eax, 1
add esi, 1
cmp eax, ebx
jle 0x53f850
jmp 0x53d907
mov eax, 1
cmp ebx, eax
jl 0x53d8ff
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
jmp 0x53f890
cmp esi, ecx
jae 0x5438f2
movzx edx, byte [esi]
mov ebp, dword [edi + 0x40]
test byte [edx + ebp], 0x10
jne case.0x545420.14
add eax, 1
add esi, 1
cmp eax, ebx
jle 0x53f890
jmp 0x53d907
mov edi, dword [esp + 0x10]
mov eax, 1
cmp ebx, eax
jl 0x53d907
mov ecx, dword [edi + 0x78]
jmp 0x53f8d0
cmp esi, ecx
jae 0x5438f2
movzx edx, byte [esi]
mov ebp, dword [edi + 0x40]
test byte [edx + ebp], 0x10
je case.0x545420.14
add eax, 1
add esi, 1
cmp eax, ebx
jle 0x53f8d0
jmp 0x53d907
mov edi, dword [esp + 0x10]
jmp 0x53d907
cmp ebx, ebp
mov edx, ebx
jge 0x5407f8
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
cmp esi, edi
mov ecx, 1
jae 0x5407cb
cmp dword [esp + 0x20], 0
movzx eax, byte [esi]
je 0x53f95d
cmp eax, 0xc0
jb 0x53f95d
test al, 0x20
jne 0x53f93a
mov ecx, 2
jmp 0x53f95d
test al, 0x10
jne 0x53f945
mov ecx, 3
jmp 0x53f95d
test al, 8
jne 0x53f950
mov ecx, 4
jmp 0x53f95d
and al, 4
neg al
sbb eax, eax
neg eax
add eax, 5
mov ecx, eax
cmp dword [esp + 0x44], 0
jne 0x5407f8
add edx, 1
add esi, ecx
cmp edx, dword [esp + 0x18]
jl 0x53f911
jmp 0x5407f8
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x5407f8
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
lea ecx, [ecx]
cmp esi, ebx
mov edi, 1
jae 0x53faf8
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
je 0x53fa8e
cmp ecx, 0xc0
jb 0x53fa8e
test cl, 0x20
jne 0x53f9d3
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x53fa8c
test cl, 0x10
jne 0x53f9fd
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or ecx, eax
mov edi, 3
jmp 0x53fa8e
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x53fa23
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x53fa7e
and eax, 0x3f
test cl, 4
jne 0x53fa59
and ecx, 3
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and ecx, 0x3f
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov edi, 5
jmp 0x53fa8e
and ecx, edi
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [esi + 5]
mov edi, 6
shl edx, 6
and eax, 0x3f
or edx, eax
shl edx, 6
and ecx, 0x3f
or ecx, edx
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x53fab0
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx eax, byte [eax*8 + 0x5742d9]
cmp eax, 9
je 0x53fad5
cmp eax, 5
je 0x53fad5
cmp eax, 8
je 0x53fad5
xor eax, eax
jmp 0x53fada
mov eax, 1
cmp eax, dword [esp + 0x44]
je 0x5407f8
add ebp, 1
add esi, edi
cmp ebp, dword [esp + 0x18]
jl 0x53f990
jmp 0x5407f8
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x88], 0
je 0x5407f8
mov edx, ecx
cmp esi, dword [edx + 0x84]
jbe 0x5407f8
mov ecx, edi
jmp 0x5407e7
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x5407f8
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
mov edi, 1
jae 0x53faf8
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
je 0x53fc2d
cmp ecx, 0xc0
jb 0x53fc2d
test cl, 0x20
jne 0x53fb72
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x53fc2b
test cl, 0x10
jne 0x53fb9c
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or ecx, eax
mov edi, 3
jmp 0x53fc2d
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x53fbc2
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x53fc1d
and eax, 0x3f
test cl, 4
jne 0x53fbf8
and ecx, 3
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and ecx, 0x3f
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov edi, 5
jmp 0x53fc2d
and ecx, edi
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [esi + 5]
mov edi, 6
shl edx, 6
and eax, 0x3f
or edx, eax
shl edx, 6
and ecx, 0x3f
or ecx, edx
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x53fc4f
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx ecx, byte [eax*8 + 0x5742d9]
mov eax, dword [esp + 0x48]
xor edx, edx
cmp dword [ecx*4 + 0x573818], eax
sete dl
cmp edx, dword [esp + 0x44]
je 0x5407f8
add ebp, 1
add esi, edi
cmp ebp, dword [esp + 0x18]
jl 0x53fb33
jmp 0x5407f8
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x5407f8
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
jmp 0x53fcb0
cmp esi, ebx
mov edi, 1
jae 0x53fe09
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
je 0x53fdae
cmp ecx, 0xc0
jb 0x53fdae
test cl, 0x20
jne 0x53fcf3
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x53fdac
test cl, 0x10
jne 0x53fd1d
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or ecx, eax
mov edi, 3
jmp 0x53fdae
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x53fd43
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x53fd9e
and eax, 0x3f
test cl, 4
jne 0x53fd79
and ecx, 3
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and ecx, 0x3f
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov edi, 5
jmp 0x53fdae
and ecx, edi
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [esi + 5]
mov edi, 6
shl edx, 6
and eax, 0x3f
or edx, eax
shl edx, 6
and ecx, 0x3f
or ecx, edx
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x53fdd0
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx ecx, byte [eax*8 + 0x5742d9]
xor edx, edx
cmp ecx, dword [esp + 0x48]
sete dl
cmp edx, dword [esp + 0x44]
je 0x5407f8
add ebp, 1
add esi, edi
cmp ebp, dword [esp + 0x18]
jl 0x53fcb0
jmp 0x5407f8
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je 0x5407f8
mov ecx, eax
cmp esi, dword [ecx + 0x84]
jbe 0x5407f8
mov ecx, edi
jmp 0x5407e9
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x5407f8
mov edx, dword [esp + 0x10]
mov ebx, dword [edx + 0x78]
cmp esi, ebx
mov edi, 1
jae 0x53fe09
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
je 0x53ff37
cmp ecx, 0xc0
jb 0x53ff37
test cl, 0x20
jne 0x53fe85
movzx eax, byte [esi + 1]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov edi, 2
jmp 0x53ff37
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 0x10
jne 0x53feb1
and ecx, 0xf
shl ecx, 6
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov edi, 3
jmp 0x53ff37
test cl, 8
jne 0x53fecc
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x53ff27
and eax, 0x3f
test cl, 4
jne 0x53ff02
and ecx, 3
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and ecx, 0x3f
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov edi, 5
jmp 0x53ff37
and ecx, edi
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [esi + 5]
mov edi, 6
shl edx, 6
and eax, 0x3f
or edx, eax
shl edx, 6
and ecx, 0x3f
or ecx, edx
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x53ff59
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx ecx, byte [eax*8 + 0x5742d8]
xor edx, edx
cmp ecx, dword [esp + 0x48]
sete dl
cmp edx, dword [esp + 0x44]
je 0x5407f8
add ebp, 1
add esi, edi
cmp ebp, dword [esp + 0x18]
jl 0x53fe44
jmp 0x5407f8
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x5407f8
mov edx, dword [esp + 0x10]
mov ebx, dword [edx + 0x78]
jmp 0x53ffb0
cmp esi, ebx
mov edi, 1
jae 0x540113
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
je 0x5400a7
cmp ecx, 0xc0
jb 0x5400a7
test cl, 0x20
jne 0x53fff5
movzx eax, byte [esi + 1]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov edi, 2
jmp 0x5400a7
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 0x10
jne 0x540021
and ecx, 0xf
shl ecx, 6
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov edi, 3
jmp 0x5400a7
test cl, 8
jne 0x54003c
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x540097
and eax, 0x3f
test cl, 4
jne 0x540072
and ecx, 3
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and ecx, 0x3f
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov edi, 5
jmp 0x5400a7
and ecx, edi
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [esi + 5]
mov edi, 6
shl edx, 6
and eax, 0x3f
or edx, eax
shl edx, 6
and ecx, 0x3f
or ecx, edx
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x5400c9
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx ecx, byte [eax*8 + 0x5742d9]
mov eax, dword [ecx*4 + 0x573818]
cmp eax, 1
je 0x5400f0
cmp eax, 3
je 0x5400f0
xor eax, eax
jmp 0x5400f5
mov eax, 1
cmp eax, dword [esp + 0x44]
je 0x5407f8
add ebp, 1
add esi, edi
cmp ebp, dword [esp + 0x18]
jl 0x53ffb0
jmp 0x5407f8
mov edx, dword [esp + 0x10]
cmp dword [edx + 0x88], 0
je 0x5407f8
mov eax, edx
cmp esi, dword [eax + 0x84]
jbe 0x5407f8
mov ecx, edi
jmp 0x5407e9
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x5407f8
mov ecx, dword [esp + 0x10]
mov ebx, dword [ecx + 0x78]
mov edi, edi
cmp esi, ebx
mov edi, 1
jae 0x53faf8
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
je 0x54024e
cmp ecx, 0xc0
jb 0x54024e
test cl, 0x20
jne 0x540193
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x54024c
test cl, 0x10
jne 0x5401bd
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or ecx, eax
mov edi, 3
jmp 0x54024e
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x5401e3
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x54023e
and eax, 0x3f
test cl, 4
jne 0x540219
and ecx, 3
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and ecx, 0x3f
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov edi, 5
jmp 0x54024e
and ecx, edi
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [esi + 5]
mov edi, 6
shl edx, 6
and eax, 0x3f
or edx, eax
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp ecx, 0x180e
ja 0x540291
je case.0x5402b1.8192
cmp ecx, 0x85
ja 0x54027d
je case.0x5402b1.8192
cmp ecx, 9
jb case.0x5402b1.8203
cmp ecx, 0xd
jbe case.0x5402b1.8192
cmp ecx, 0x20
jmp 0x5402ca
cmp ecx, 0xa0
je case.0x5402b1.8192
cmp ecx, 0x1680
jmp 0x5402ca
cmp ecx, 0x202f
ja 0x5402b8
je case.0x5402b1.8192
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x5402b1.8203
movzx edx, byte [eax + 0x5459fc]
jmp dword [edx*4 + 0x5459f4]
cmp ecx, 0x205f
je case.0x5402b1.8192
cmp ecx, 0x3000
je case.0x5402b1.8192
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x575958]
shl eax, 7
and ecx, 0x8000007f
jns 0x5402ee
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx ecx, word [eax*2 + 0x577b58]
movzx edx, byte [ecx*8 + 0x5742d9]
xor eax, eax
cmp dword [edx*4 + 0x573818], 6
sete al
cmp eax, dword [esp + 0x44]
je 0x5407f8
jmp 0x540324
cmp dword [esp + 0x44], 0
jne 0x5407f8
add ebp, 1
add esi, edi
cmp ebp, dword [esp + 0x18]
jl 0x540150
jmp 0x5407f8
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x5407f8
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
lea ecx, [ecx]
cmp esi, ebx
mov edi, 1
jae 0x53faf8
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
je 0x54044e
cmp ecx, 0xc0
jb 0x54044e
test cl, 0x20
jne 0x540393
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x54044c
test cl, 0x10
jne 0x5403bd
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or ecx, eax
mov edi, 3
jmp 0x54044e
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x5403e3
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x54043e
and eax, 0x3f
test cl, 4
jne 0x540419
and ecx, 3
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and ecx, 0x3f
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov edi, 5
jmp 0x54044e
and ecx, edi
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [esi + 5]
mov edi, 6
shl edx, 6
and eax, 0x3f
or edx, eax
shl edx, 6
and ecx, 0x3f
or ecx, edx
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
mov eax, ecx
shl edx, 7
and eax, 0x8000007f
jns 0x540471
dec eax
or eax, 0xffffff80
inc eax
add edx, eax
movzx edx, word [edx*2 + 0x577b58]
movzx eax, byte [edx*8 + 0x5742d9]
mov eax, dword [eax*4 + 0x573818]
cmp eax, 1
je 0x54049d
cmp eax, 3
je 0x54049d
cmp ecx, 0x5f
je 0x54049d
xor eax, eax
jmp 0x5404a2
mov eax, 1
cmp eax, dword [esp + 0x44]
je 0x5407f8
add ebp, 1
add esi, edi
cmp ebp, dword [esp + 0x18]
jl 0x540350
jmp 0x5407f8
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x5407f8
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
jmp 0x5404e0
cmp esi, ebx
mov edx, 1
jae 0x54063b
cmp dword [esp + 0x20], 0
movzx eax, byte [esi]
je 0x5405ec
cmp eax, 0xc0
jb 0x5405ec
test al, 0x20
jne 0x540521
movzx ecx, byte [esi + 1]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, 2
jmp 0x5405ea
test al, 0x10
jne 0x54054a
movzx edx, byte [esi + 1]
and eax, 0xf
and edx, 0x3f
shl eax, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or eax, edx
mov edx, 3
jmp 0x5405ec
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 8
jne 0x540577
movzx edx, byte [esi + 2]
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 3]
and edx, 0x3f
shl ecx, 6
or ecx, edx
mov edx, 4
jmp 0x5405e4
test al, 4
jne 0x5405b0
movzx edx, byte [esi + 2]
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
and edx, 0x3f
shl ecx, 6
or ecx, edx
mov eax, ecx
mov edx, 5
jmp 0x5405ec
and eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 5]
and edx, 0x3f
shl ecx, 6
or ecx, edx
mov edx, 6
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov edi, dword [esp + 0x48]
mov ecx, dword [edi*4 + 0x574198]
cmp eax, ecx
lea edi, [edi*4 + 0x574198]
jb 0x54060f
add edi, 4
cmp eax, ecx
je 0x54061c
mov ecx, dword [edi]
cmp eax, ecx
jae 0x540602
cmp dword [esp + 0x44], 0
je 0x5407f8
jmp 0x540627
cmp dword [esp + 0x44], 0
jne 0x5407f8
add ebp, 1
add esi, edx
cmp ebp, dword [esp + 0x18]
jl 0x5404e0
jmp 0x5407f8
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je 0x5407f8
cmp esi, dword [eax + 0x84]
jbe 0x5407f8
mov dword [eax + 0x64], edx
cmp dword [eax + 0x88], edx
jmp 0x5407f2
cmp ebx, ebp
mov edx, ebx
jge 0x5407f8
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x78]
jmp 0x540680
cmp esi, edi
mov ecx, 1
jae 0x5407cb
cmp dword [esp + 0x20], 0
movzx eax, byte [esi]
je 0x540787
cmp eax, 0xc0
jb 0x540787
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x5406c3
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x540787
test al, 0x10
jne 0x5406e5
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 3
jmp 0x540787
test al, 8
jne 0x540713
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 4
jmp 0x540787
test al, 4
jne 0x54074a
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 5
jmp 0x540787
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 6
cmp eax, 0x24
je 0x5407af
cmp eax, 0x40
je 0x5407af
cmp eax, 0x60
je 0x5407af
cmp eax, 0xa0
jb 0x5407a4
cmp eax, 0xd7ff
jbe 0x5407af
cmp eax, 0xe000
jae 0x5407af
xor eax, eax
jmp 0x5407b4
mov eax, 1
cmp eax, dword [esp + 0x44]
je 0x5407f8
add edx, 1
add esi, ecx
cmp edx, dword [esp + 0x18]
jl 0x540680
jmp 0x5407f8
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x88], 0
je 0x5407f8
mov edx, ecx
cmp esi, dword [edx + 0x84]
jbe 0x5407f8
mov ecx, 1
mov eax, edx
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jg 0x545577
cmp dword [esp + 0x3c], 0
jne 0x5386c0
cmp esi, dword [esp + 0x34]
jbe 0x541c63
mov ebp, dword [esp + 0x170]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
lea esp, [esp]
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add ecx, 1
push ecx
push edx
push eax
push ebp
push ebx
push edi
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
sub esi, 1
cmp dword [esp + 0x20], eax
je 0x54086e
mov cl, byte [esi]
and cl, 0xc0
cmp cl, 0x80
jne 0x54086e
lea esp, [esp]
mov dl, byte [esi - 1]
sub esi, 1
and dl, 0xc0
cmp dl, 0x80
je 0x540860
cmp esi, dword [esp + 0x34]
ja 0x540820
jmp 0x541c63
mov eax, dword [esp + 0x38]
cmp eax, 0x16
jne 0x540c08
cmp ebx, ebp
mov dword [esp + 0x30], ebx
jge 0x540b9d
lea edx, [eax - 0x15]
mov eax, dword [esp + 0x10]
lea esp, [esp]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x540b7d
movzx ecx, byte [esi]
add esi, edx
cmp dword [esp + 0x20], 0
je 0x5409b1
cmp ecx, 0xc0
jb 0x5409b1
test cl, 0x20
jne 0x5408e1
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, edx
jmp 0x5409b1
test cl, 0x10
jne 0x540908
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x5409b1
test cl, 8
jne 0x54093b
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 7
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 3
jmp 0x5409b1
movzx eax, byte [esi]
and eax, 0x3f
test cl, 4
jne 0x540977
movzx edx, byte [esi + 1]
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 4
jmp 0x5409b1
and ecx, edx
movzx edx, byte [esi + 1]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x5409d3
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
cmp esi, ebx
movzx eax, word [edx*2 + 0x577b58]
movzx ebp, byte [eax*8 + 0x5742da]
jae 0x540b33
lea ecx, [ecx]
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
mov edi, 1
je 0x540ae3
cmp ecx, 0xc0
jb 0x540ae3
test cl, 0x20
jne 0x540a2b
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x540ae1
test cl, 0x10
jne 0x540a55
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or ecx, eax
mov edi, 3
jmp 0x540ae3
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x540a78
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x540ad3
and eax, 0x3f
test cl, 4
jne 0x540aae
and ecx, 3
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and ecx, 0x3f
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov edi, 5
jmp 0x540ae3
and ecx, edi
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [esi + 5]
mov edi, 6
shl edx, 6
and eax, 0x3f
or edx, eax
shl edx, 6
and ecx, 0x3f
or ecx, edx
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x540b05
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx ecx, byte [eax*8 + 0x5742da]
mov edx, 1
shl edx, cl
test dword [ebp*4 + 0x5737a4], edx
je 0x540b33
add esi, edi
cmp esi, ebx
mov ebp, ecx
jb 0x5409f0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je 0x540b62
cmp esi, ebx
jb 0x540b62
cmp esi, dword [eax + 0x84]
jbe 0x540b62
mov edx, 1
mov dword [eax + 0x64], edx
cmp dword [eax + 0x88], edx
jg 0x545577
jmp 0x540b67
mov edx, 1
mov ecx, dword [esp + 0x30]
add ecx, edx
cmp ecx, dword [esp + 0x18]
mov dword [esp + 0x30], ecx
jl 0x5408a0
jmp 0x540b9d
cmp dword [eax + 0x88], 0
je 0x540b9d
cmp esi, dword [eax + 0x84]
jbe 0x540b9d
mov dword [eax + 0x64], edx
cmp dword [eax + 0x88], edx
jg 0x545577
cmp dword [esp + 0x3c], 0
jne 0x5386c0
cmp esi, dword [esp + 0x34]
jbe 0x541c63
mov ebp, dword [esp + 0x20]
jmp 0x540bc0
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x20]
push eax
push ecx
push edx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
sub esi, 1
test ebp, ebp
jne 0x542203
movzx ecx, byte [esi]
jmp 0x5422ec
add eax, 0xfffffffa
cmp dword [esp + 0x20], 0
je 0x541ab3
cmp eax, 0xf
ja case.default.0x53ad0f
jmp dword [eax*4 + 0x545a28]
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x541a1e
mov ebx, dword [esp + 0x10]
mov ecx, 1
lea ecx, [ecx]
cmp esi, dword [ebx + 0x78]
jae 0x540cf1
mov eax, dword [ebx + 0x18]
test eax, eax
lea edi, [ebx + 0x1c]
je 0x540c71
mov ecx, dword [esp + 0x20]
mov edx, dword [ebx + 0x78]
push ecx
push edi
push edx
push eax
push esi
call fcn.00546dc0
test eax, eax
jne 0x541a1e
lea ecx, [eax + 1]
jmp 0x540c95
mov eax, dword [ebx + 0x78]
sub eax, dword [edi]
cmp esi, eax
ja 0x540c95
mov dl, byte [esi]
cmp dl, byte [ebx + 0x34]
jne 0x540c95
cmp dword [edi], ecx
je 0x541a1e
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je 0x541a1e
cmp dword [ebx + 0x88], 0
je 0x540cc7
lea edx, [esi + 1]
cmp edx, dword [ebx + 0x78]
jb 0x540cc7
cmp dword [ebx + 0x18], 0
jne 0x540cc7
cmp dword [edi], 2
jne 0x540cc7
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x540cc7
mov dword [ebx + 0x64], ecx
cmp dword [ebx + 0x88], ecx
jg 0x545577
mov eax, dword [ebx + 0x78]
add esi, ecx
cmp esi, eax
jae 0x540ce0
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x540ce0
add esi, ecx
cmp esi, eax
jb 0x540cd0
add ebp, ecx
cmp ebp, dword [esp + 0x18]
jl 0x540c40
jmp 0x541a1e
cmp dword [ebx + 0x88], 0
je 0x541a1e
cmp esi, dword [ebx + 0x84]
jbe 0x541a1e
mov dword [ebx + 0x64], ecx
cmp dword [ebx + 0x88], ecx
jmp 0x541a18
cmp ebp, 0x7fffffff
jge 0x540d7d
cmp ebx, ebp
mov ecx, ebx
jge 0x541a1e
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 0x78]
mov edi, dword [esp + 0x18]
cmp esi, eax
jae 0x540d5d
add esi, 1
cmp esi, eax
jae 0x540d51
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x540d51
add esi, 1
cmp esi, eax
jb 0x540d40
add ecx, 1
cmp ecx, edi
jl 0x540d35
jmp 0x541a1e
cmp dword [ebp + 0x88], 0
je 0x541a1e
mov eax, ebp
cmp esi, dword [eax + 0x84]
jbe 0x541a1e
jmp 0x541a0a
mov esi, dword [edi + 0x78]
cmp dword [edi + 0x88], 0
je 0x541a1e
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x84]
jbe 0x541a1e
mov eax, ecx
jmp 0x541a0a
mov edx, dword [edi + 0x78]
sub ebp, ebx
mov eax, ebp
sub edx, esi
cmp eax, edx
jbe 0x540dd6
cmp dword [edi + 0x88], 0
mov esi, dword [edi + 0x78]
je 0x541a1e
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x84]
jbe 0x541a1e
jmp 0x541a0a
add esi, eax
jmp 0x541a1e
cmp ebx, dword [esp + 0x18]
mov edi, ebx
jge 0x541a1e
mov ebp, dword [esp + 0x10]
mov edx, dword [ebp + 0x78]
jmp 0x540df6
mov ebp, dword [esp + 0x10]
cmp esi, edx
mov ecx, 1
jae 0x540f52
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x540ef2
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x540e2e
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x540ef2
test al, 0x10
jne 0x540e50
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 3
jmp 0x540ef2
test al, 8
jne 0x540e7e
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 4
jmp 0x540ef2
test al, 4
jne 0x540eb5
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 5
jmp 0x540ef2
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 6
cmp eax, 0xd
jne 0x540f0c
add esi, 1
cmp esi, edx
jae 0x541a1e
cmp byte [esi], 0xa
jne 0x540f40
add esi, 1
jmp 0x540f40
cmp eax, 0xa
je 0x540f3e
cmp dword [ebp + 0x68], 0
jne 0x541a1e
cmp eax, 0xb
je 0x540f3e
cmp eax, 0xc
je 0x540f3e
cmp eax, 0x85
je 0x540f3e
cmp eax, 0x2028
je 0x540f3e
cmp eax, 0x2029
jne 0x541a1e
add esi, ecx
add edi, 1
cmp edi, dword [esp + 0x18]
jl 0x540df2
jmp 0x541a1e
cmp dword [ebp + 0x88], 0
jmp 0x540d87
cmp ebx, dword [esp + 0x18]
mov edi, ebx
jge 0x541a1e
mov edx, dword [esp + 0x10]
mov ebp, dword [edx + 0x78]
mov edx, dword [esp + 0x38]
jmp 0x540f80
cmp esi, ebp
mov ecx, 1
jae 0x5419f1
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x54107c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x540fb8
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x54107c
test al, 0x10
jne 0x540fda
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 3
jmp 0x54107c
test al, 8
jne 0x541008
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 4
jmp 0x54107c
test al, 4
jne 0x54103f
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 5
jmp 0x54107c
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 6
cmp eax, 0x180e
ja 0x54109f
je 0x5410c8
cmp eax, 0xa0
ja 0x541098
je 0x5410c8
cmp eax, 9
je 0x5410c8
cmp eax, 0x20
jmp 0x5410c2
cmp eax, 0x1680
jmp 0x5410c2
cmp eax, 0x205f
ja 0x5410bd
je 0x5410c8
cmp eax, 0x2000
jb 0x5410c4
cmp eax, 0x200a
jbe 0x5410c8
cmp eax, 0x202f
jmp 0x5410c2
cmp eax, 0x3000
je 0x5410c8
xor eax, eax
jmp 0x5410cd
mov eax, 1
xor ebx, ebx
cmp edx, 0x12
sete bl
cmp eax, ebx
je 0x541a1e
add edi, 1
add esi, ecx
cmp edi, dword [esp + 0x18]
jl 0x540f80
jmp 0x541a1e
cmp ebx, dword [esp + 0x18]
mov edi, ebx
jge 0x541a1e
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
mov edx, dword [esp + 0x18]
jmp 0x541110
cmp esi, ebp
mov ecx, 1
jae 0x54125a
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x54120c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x541148
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x54120c
test al, 0x10
jne 0x54116a
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 3
jmp 0x54120c
test al, 8
jne 0x541198
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 4
jmp 0x54120c
test al, 4
jne 0x5411cf
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 5
jmp 0x54120c
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 6
cmp eax, 0x85
ja 0x541245
je 0x541253
cmp eax, 0xa
jb 0x54121f
cmp eax, 0xd
jbe 0x541253
xor eax, eax
xor ebx, ebx
cmp dword [esp + 0x38], 0x14
sete bl
cmp eax, ebx
je 0x541a1e
add edi, 1
add esi, ecx
cmp edi, edx
jl 0x541110
jmp 0x541a1e
cmp eax, 0x2028
jb 0x54121f
cmp eax, 0x2029
ja 0x54121f
mov eax, 1
jmp 0x541221
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je 0x541a1e
cmp esi, dword [eax + 0x84]
jbe 0x541a1e
jmp 0x541a0f
cmp ebx, ebp
mov edx, ebx
jge 0x541a1e
mov ebp, dword [esp + 0x10]
mov edi, dword [ebp + 0x78]
lea ecx, [ecx]
cmp esi, edi
mov ecx, 1
jae 0x540f52
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x54138c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x5412c8
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x54138c
test al, 0x10
jne 0x5412ea
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 3
jmp 0x54138c
test al, 8
jne 0x541318
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 4
jmp 0x54138c
test al, 4
jne 0x54134f
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 5
jmp 0x54138c
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 6
cmp eax, 0x100
jae 0x5413a4
mov ebx, dword [ebp + 0x40]
test byte [eax + ebx], 4
jne 0x541a1e
mov ebp, dword [esp + 0x10]
add edx, 1
add esi, ecx
cmp edx, dword [esp + 0x18]
jl 0x541290
jmp 0x541a1e
cmp ebx, ebp
mov edx, ebx
jge 0x541a1e
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
lea esp, [esp]
cmp esi, edi
mov ecx, 1
jae 0x5419f1
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x5414cc
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x541408
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x5414cc
test al, 0x10
jne 0x54142a
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 3
jmp 0x5414cc
test al, 8
jne 0x541458
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 4
jmp 0x5414cc
test al, 4
jne 0x54148f
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 5
jmp 0x5414cc
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 6
cmp eax, 0x100
jae 0x541a1e
mov ebx, dword [esp + 0x10]
mov ebx, dword [ebx + 0x40]
test byte [eax + ebx], 4
je 0x541a1e
add edx, 1
add esi, ecx
cmp edx, dword [esp + 0x18]
jl 0x5413d0
jmp 0x541a1e
cmp ebx, ebp
mov edx, ebx
jge 0x541a1e
mov ebp, dword [esp + 0x10]
mov edi, dword [ebp + 0x78]
lea ecx, [ecx]
cmp esi, edi
mov ecx, 1
jae 0x540f52
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x54160c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x541548
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x54160c
test al, 0x10
jne 0x54156a
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 3
jmp 0x54160c
test al, 8
jne 0x541598
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 4
jmp 0x54160c
test al, 4
jne 0x5415cf
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 5
jmp 0x54160c
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 6
cmp eax, 0x100
jae 0x541624
mov ebx, dword [ebp + 0x40]
test byte [eax + ebx], 1
jne 0x541a1e
mov ebp, dword [esp + 0x10]
add edx, 1
add esi, ecx
cmp edx, dword [esp + 0x18]
jl 0x541510
jmp 0x541a1e
cmp ebx, ebp
mov edx, ebx
jge 0x541a1e
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
lea esp, [esp]
cmp esi, edi
mov ecx, 1
jae 0x5419f1
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x54174c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x541688
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x54174c
test al, 0x10
jne 0x5416aa
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 3
jmp 0x54174c
test al, 8
jne 0x5416d8
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 4
jmp 0x54174c
test al, 4
jne 0x54170f
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 5
jmp 0x54174c
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 6
cmp eax, 0x100
jae 0x541a1e
mov ebx, dword [esp + 0x10]
mov ebx, dword [ebx + 0x40]
test byte [eax + ebx], 1
je 0x541a1e
add edx, 1
add esi, ecx
cmp edx, dword [esp + 0x18]
jl 0x541650
jmp 0x541a1e
cmp ebx, ebp
mov edx, ebx
jge 0x541a1e
mov ebp, dword [esp + 0x10]
mov edi, dword [ebp + 0x78]
lea ecx, [ecx]
cmp esi, edi
mov ecx, 1
jae 0x540f52
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x54188c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x5417c8
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x54188c
test al, 0x10
jne 0x5417ea
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 3
jmp 0x54188c
test al, 8
jne 0x541818
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 4
jmp 0x54188c
test al, 4
jne 0x54184f
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 5
jmp 0x54188c
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 6
cmp eax, 0x100
jae 0x5418a4
mov ebx, dword [ebp + 0x40]
test byte [eax + ebx], 0x10
jne 0x541a1e
mov ebp, dword [esp + 0x10]
add edx, 1
add esi, ecx
cmp edx, dword [esp + 0x18]
jl 0x541790
jmp 0x541a1e
cmp ebx, ebp
mov edx, ebx
jge 0x541a1e
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
lea esp, [esp]
cmp esi, edi
mov ecx, 1
jae 0x5419f1
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x5419cc
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x541908
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x5419cc
test al, 0x10
jne 0x54192a
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 3
jmp 0x5419cc
test al, 8
jne 0x541958
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 4
jmp 0x5419cc
test al, 4
jne 0x54198f
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 5
jmp 0x5419cc
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or eax, ecx
mov ecx, 6
cmp eax, 0x100
jae 0x541a1e
mov ebx, dword [esp + 0x10]
mov ebx, dword [ebx + 0x40]
test byte [eax + ebx], 0x10
je 0x541a1e
add edx, 1
add esi, ecx
cmp edx, dword [esp + 0x18]
jl 0x5418d0
jmp 0x541a1e
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x88], 0
je 0x541a1e
mov edx, ecx
cmp esi, dword [edx + 0x84]
jbe 0x541a1e
mov eax, edx
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jg 0x545577
cmp dword [esp + 0x3c], 0
jne 0x5386c0
cmp esi, dword [esp + 0x34]
jbe 0x541c63
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
jmp 0x541a40
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x20]
push eax
push ecx
push edx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
mov al, byte [esi - 1]
sub esi, 1
and al, 0xc0
cmp al, 0x80
jne 0x541a8f
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
je 0x541a81
cmp ebx, 0x11
jne 0x541aaa
cmp esi, edi
jbe 0x541c63
cmp byte [esi], 0xa
jne 0x541aaa
cmp byte [esi - 1], 0xd
jne 0x541aaa
add esi, 0xffffffff
cmp esi, edi
ja 0x541a40
jmp 0x541c63
cmp eax, 0xf
ja case.default.0x53ad0f
jmp dword [eax*4 + 0x545a68]
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x541beb
lea ebx, [esi + 1]
jmp 0x541ae0
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x541b89
mov eax, dword [ecx + 0x18]
test eax, eax
lea edi, [ecx + 0x1c]
je 0x541b13
mov ecx, dword [ecx + 0x78]
push 0
push edi
push ecx
push eax
push esi
call fcn.00546dc0
test eax, eax
jne 0x541beb
mov ecx, dword [esp + 0x10]
jmp 0x541b3d
mov edx, dword [ecx + 0x78]
sub edx, dword [edi]
cmp esi, edx
ja 0x541b3d
mov al, byte [esi]
cmp al, byte [ecx + 0x34]
jne 0x541b3d
cmp dword [edi], 1
je 0x541beb
mov cl, byte [ebx]
mov edx, dword [esp + 0x10]
cmp cl, byte [edx + 0x35]
je 0x541beb
mov ecx, edx
cmp dword [ecx + 0x88], 0
je 0x541b71
cmp ebx, dword [ecx + 0x78]
jb 0x541b71
cmp dword [ecx + 0x18], 0
jne 0x541b71
cmp dword [edi], 2
jne 0x541b71
mov al, byte [esi]
cmp al, byte [ecx + 0x34]
jne 0x541b71
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x88], eax
jg 0x545577
add ebp, 1
add esi, 1
add ebx, 1
cmp ebp, dword [esp + 0x18]
jl 0x541ae0
jmp 0x541beb
cmp dword [ecx + 0x88], 0
je 0x541beb
cmp esi, dword [ecx + 0x84]
jbe 0x541beb
mov eax, dword [esp + 0x10]
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jmp 0x541be5
mov edx, dword [edi + 0x78]
sub ebp, ebx
mov eax, ebp
sub edx, esi
cmp eax, edx
jbe 0x541c80
mov esi, dword [edi + 0x78]
cmp dword [edi + 0x88], 0
je 0x541beb
cmp esi, dword [edi + 0x84]
jbe 0x541beb
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x88], eax
jg 0x545577
cmp dword [esp + 0x3c], 0
jne 0x5386c0
cmp esi, dword [esp + 0x34]
je 0x541c63
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
jmp 0x541c10
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x20]
push edx
push eax
push ecx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
sub esi, 1
cmp ebx, 0x11
jne 0x541c5f
cmp esi, edi
jbe 0x541c61
cmp byte [esi], 0xa
jne 0x541c5f
cmp byte [esi - 1], 0xd
jne 0x541c5f
add esi, 0xffffffff
cmp esi, edi
jne 0x541c10
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
cmp ecx, dword [eax + 4]
mov edx, dword [eax + 0x4c]
mov dword [esp + 0x20], edx
jae 0x542488
xor edx, edx
jmp 0x538684
add esi, eax
jmp 0x541beb
cmp ebx, ebp
mov ecx, ebx
jge 0x541beb
mov edx, dword [edi + 0x78]
mov ebx, 1
lea esp, [esp]
cmp esi, edx
jae 0x541cee
movzx eax, byte [esi]
cmp eax, 0xd
jne 0x541cbd
add esi, ebx
cmp esi, edx
jae 0x541beb
cmp byte [esi], 0xa
jne 0x541ce3
jmp 0x541ce1
cmp eax, 0xa
je 0x541ce1
cmp dword [edi + 0x68], 0
jne 0x541beb
cmp eax, 0xb
je 0x541ce1
cmp eax, 0xc
je 0x541ce1
cmp eax, 0x85
jne 0x541beb
add esi, ebx
add ecx, ebx
cmp ecx, ebp
jl 0x541ca0
jmp 0x541beb
cmp dword [edi + 0x88], 0
je 0x541beb
cmp esi, dword [edi + 0x84]
jbe 0x541beb
mov dword [edi + 0x64], ebx
cmp dword [edi + 0x88], ebx
jmp 0x541be5
cmp ebx, ebp
mov ecx, ebx
jge 0x541beb
mov edx, dword [edi + 0x78]
mov ebx, 1
cmp esi, edx
jae 0x541cee
mov al, byte [esi]
cmp al, 9
je 0x541beb
cmp al, 0x20
je 0x541beb
cmp al, 0xa0
je 0x541beb
add ecx, ebx
add esi, ebx
cmp ecx, ebp
jl 0x541d27
jmp 0x541beb
cmp ebx, ebp
mov ecx, ebx
jge 0x541beb
mov edx, dword [edi + 0x78]
mov ebx, 1
cmp esi, edx
jae 0x541cee
mov al, byte [esi]
cmp al, 9
je 0x541d7a
cmp al, 0x20
je 0x541d7a
cmp al, 0xa0
jne 0x541beb
add ecx, ebx
add esi, ebx
cmp ecx, ebp
jl 0x541d64
jmp 0x541beb
cmp ebx, ebp
mov ecx, ebx
jge 0x541beb
mov edx, dword [edi + 0x78]
mov ebx, 1
lea esp, [esp]
cmp esi, edx
jae 0x541cee
mov al, byte [esi]
cmp al, 0xa
jb 0x541dbe
cmp al, 0xd
jbe 0x541beb
cmp al, 0x85
je 0x541beb
add ecx, ebx
add esi, ebx
cmp ecx, ebp
jl 0x541da0
jmp 0x541beb
cmp ebx, ebp
mov ecx, ebx
jge 0x541beb
mov edx, dword [edi + 0x78]
mov ebx, 1
lea ecx, [ecx]
cmp esi, edx
jae 0x541cee
mov al, byte [esi]
cmp al, 0xa
jb 0x541beb
cmp al, 0xd
jbe 0x541dfe
cmp al, 0x85
jne 0x541beb
add ecx, ebx
add esi, ebx
cmp ecx, ebp
jl 0x541de0
jmp 0x541beb
cmp ebx, ebp
mov eax, ebx
jge 0x541beb
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x541bc6
movzx edx, byte [esi]
mov ebx, dword [edi + 0x40]
test byte [edx + ebx], 4
jne 0x541beb
add eax, 1
add esi, 1
cmp eax, ebp
jl 0x541e18
jmp 0x541beb
cmp ebx, ebp
mov eax, ebx
jge 0x541beb
mov ecx, dword [edi + 0x78]
lea esp, [esp]
cmp esi, ecx
jae 0x541bc6
movzx edx, byte [esi]
mov ebx, dword [edi + 0x40]
test byte [edx + ebx], 4
je 0x541beb
add eax, 1
add esi, 1
cmp eax, ebp
jl 0x541e50
jmp 0x541beb
cmp ebx, ebp
mov eax, ebx
jge 0x541beb
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x541bc6
movzx edx, byte [esi]
mov ebx, dword [edi + 0x40]
test byte [edx + ebx], 1
jne 0x541beb
add eax, 1
add esi, 1
cmp eax, ebp
jl 0x541e84
jmp 0x541beb
cmp ebx, ebp
mov eax, ebx
jge 0x541beb
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x541bc6
movzx edx, byte [esi]
mov ebx, dword [edi + 0x40]
test byte [edx + ebx], 1
je 0x541beb
add eax, 1
add esi, 1
cmp eax, ebp
jl 0x541eb8
jmp 0x541beb
cmp ebx, ebp
mov eax, ebx
jge 0x541beb
mov ecx, dword [edi + 0x78]
lea esp, [esp]
cmp esi, ecx
jae 0x541bc6
movzx edx, byte [esi]
mov ebx, dword [edi + 0x40]
test byte [edx + ebx], 0x10
jne 0x541beb
add eax, 1
add esi, 1
cmp eax, ebp
jl 0x541ef0
jmp 0x541beb
cmp ebx, ebp
mov eax, ebx
jge 0x541beb
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x541bc6
movzx edx, byte [esi]
mov ebx, dword [edi + 0x40]
test byte [edx + ebx], 0x10
je 0x541beb
add eax, 1
add esi, 1
cmp eax, ebp
jl 0x541f24
jmp 0x541beb
mov ecx, dword [esp + 0x17c]
add ecx, 1
cmp byte [edx], 0x7a
push ecx
push ebx
push edi
push eax
push ebp
jne 0x541f82
mov edx, dword [esp + 0x28]
add edx, 3
push edx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], eax
jmp 0x541c63
mov edx, dword [esp + 0x54]
push edx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
add dword [esp + 0x14], 3
jmp 0x541c63
mov edi, dword [esp + 0x10]
xor ecx, ecx
mov ch, byte [edx + 3]
mov cl, byte [edx + 4]
lea ebp, [ecx + ecx]
cmp ebp, dword [edi + 0x14]
mov dword [esp + 0x38], ecx
jge 0x54208b
mov eax, dword [edi + 0xc]
mov edx, dword [eax + ebp*4]
mov dword [esp + 0x24], edx
mov edx, dword [eax + ebp*4 + 4]
mov dword [esp + 0x50], edx
mov edx, dword [edi + 0x10]
sub edx, ecx
mov ecx, dword [eax + edx*4]
lea eax, [eax + edx*4]
mov edx, dword [edi + 0x90]
mov dword [esp + 0x3c], edx
mov edx, esi
sub edx, dword [edi + 0x74]
mov dword [esp + 0x2c], ecx
mov ecx, dword [edi + 0xac]
mov dword [esp + 0x30], ecx
mov dword [eax], edx
jmp 0x542000
cmp dword [esp + 0x40], 0x88
jb 0x542014
mov dword [edi + 0x98], 2
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x170]
add eax, 1
push eax
mov eax, dword [esp + 0x2c]
push ecx
movzx ecx, byte [ebx]
push edi
push edx
movzx edx, byte [ecx + 0x573640]
push eax
add edx, ebx
push edx
push esi
call fcn.005385c0
cmp eax, 0xfffffc1b
je 0x5427fc
cmp eax, 0xfffffc20
jne 0x5427c9
xor ecx, ecx
mov ch, byte [ebx + 1]
mov cl, byte [ebx + 2]
add ecx, ebx
cmp dword [edi + 0x7c], ecx
jae 0x54558a
cmp byte [ebx], 0x77
je 0x542080
cmp byte [ecx], 0x77
jne 0x54558a
xor eax, eax
jmp 0x5427d1
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
cmp eax, 0x88
jae 0x5420c6
cmp eax, 0x81
je 0x5420c6
cmp dword [edi + 0x6c], 0
jne 0x5420d0
xor eax, eax
mov ah, byte [edx + 1]
mov al, byte [edx + 2]
cmp byte [eax + edx], 0x77
je 0x5420d0
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x573640]
add edx, ecx
mov dword [esp + 0x14], edx
jmp 0x541c63
mov dword [edi + 0x98], 2
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x170]
mov ebp, dword [edi + 0xac]
mov ebx, dword [edi + 0x90]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push edi
push eax
mov eax, dword [esp + 0x24]
movzx edx, byte [eax]
push ecx
movzx ecx, byte [edx + 0x573640]
add ecx, eax
push ecx
push esi
call fcn.005385c0
cmp eax, 0xfffffc20
jne 0x54213f
mov ecx, dword [esp + 0x14]
xor edx, edx
mov dh, byte [ecx + 1]
mov dl, byte [ecx + 2]
add edx, ecx
cmp dword [edi + 0x7c], edx
jae 0x54558a
cmp byte [ecx], 0x77
je 0x542147
cmp byte [edx], 0x77
jne 0x54558a
jmp 0x542147
test eax, eax
jne 0x542827
mov eax, dword [esp + 0x14]
xor edx, edx
mov dh, byte [eax + 1]
mov dl, byte [eax + 2]
mov dword [edi + 0xac], ebp
add eax, edx
cmp byte [eax], 0x77
mov dword [esp + 0x14], eax
jne case.0x545420.14
mov dword [edi + 0x90], ebx
mov edx, eax
jmp 0x54208b
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
add edx, 1
cmp byte [ecx], 0x7a
push edx
push eax
push ebp
push ebx
push edi
jne 0x5421c6
mov ecx, dword [esp + 0x28]
add ecx, 3
push ecx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
mov ecx, dword [esp + 0x40]
mov al, byte [ecx]
cmp al, 0x81
je 0x542989
cmp al, 0x88
jae 0x5429c3
mov dword [esp + 0x14], ecx
jmp 0x541c63
mov ecx, dword [esp + 0x54]
push ecx
push esi
call fcn.005385c0
cmp eax, 0xfffffc1b
jne 0x5421e4
mov edx, dword [ebp + 0xb4]
cmp edx, dword [esp + 0x40]
jmp 0x5421e6
test eax, eax
jne 0x54558a
mov eax, dword [esp + 0x40]
cmp byte [eax], 0x81
je 0x5429e6
add dword [esp + 0x14], 3
jmp 0x541c63
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x54221e
jmp 0x542210
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
je 0x542210
movzx ecx, byte [esi]
cmp ecx, 0xc0
jb 0x5422ec
test cl, 0x20
jne 0x542244
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
jmp 0x5422ea
test cl, 0x10
jne 0x542269
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or ecx, eax
jmp 0x5422ec
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x54228a
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
jmp 0x5422dc
and eax, 0x3f
test cl, 4
jne 0x5422bb
and ecx, 3
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and ecx, 0x3f
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
jmp 0x5422ec
and ecx, 1
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
shl edx, 6
and ecx, 0x3f
or ecx, edx
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x54230e
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx ebx, byte [eax*8 + 0x5742da]
cmp esi, dword [esp + 0x34]
jbe 0x541c63
mov ebp, dword [esp + 0x20]
test ebp, ebp
lea edi, [esi - 1]
jne 0x54233d
movzx ecx, byte [edi]
jmp 0x54241c
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x542355
mov dl, byte [edi - 1]
sub edi, 1
and dl, 0xc0
cmp dl, 0x80
je 0x542347
movzx ecx, byte [edi]
cmp ecx, 0xc0
jb 0x54241c
test cl, 0x20
jne 0x54237d
movzx eax, byte [edi + 1]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
jmp 0x54241c
movzx edx, byte [edi + 1]
movzx eax, byte [edi + 2]
and edx, 0x3f
test cl, 0x10
jne 0x5423a4
and ecx, 0xf
shl ecx, 6
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
jmp 0x54241c
test cl, 8
jne 0x5423ba
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [edi + 3]
jmp 0x54240c
and eax, 0x3f
test cl, 4
jne 0x5423eb
and ecx, 3
shl ecx, 6
or edx, ecx
movzx ecx, byte [edi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
shl edx, 6
and ecx, 0x3f
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
jmp 0x54241c
and ecx, 1
shl ecx, 6
or edx, ecx
movzx ecx, byte [edi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [edi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
shl edx, 6
and ecx, 0x3f
or ecx, edx
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x54243e
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx eax, byte [eax*8 + 0x5742da]
mov edx, 1
mov ecx, ebx
shl edx, cl
test dword [eax*4 + 0x5737a4], edx
je 0x54246b
mov esi, edi
mov ebx, eax
jmp 0x542320
cmp esi, dword [esp + 0x34]
ja 0x540bc0
jmp 0x541c63
sub ecx, 1
je case.0x545420.14
jmp 0x54558a
add dword [eax], 1
mov eax, 0xfffffff8
jmp 0x54558a
mov eax, 0xffffffeb
jmp 0x54558a
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
lea edi, [eax + 2]
mov dword [ebx + 0xb0], edi
mov dword [ebx + 0xac], 0
mov ecx, dword [esp + 0x17c]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x174]
push edx
mov edx, dword [esp + 0x30]
push ebx
push ecx
movzx ecx, byte [eax]
push edx
movzx edx, byte [ecx + 0x573640]
movzx ecx, byte [eax + 1]
add edx, eax
add ecx, edx
push ecx
push esi
call fcn.005385c0
cmp eax, 1
je 0x5424fd
cmp eax, 0xfffffc19
jne 0x542511
cmp dword [ebx + 0xac], 0
jne 0x542511
mov dword [ebx + 0xac], edi
jmp 0x54558a
cmp eax, 0xfffffc1f
jne 0x54558a
mov edx, edi
mov edi, dword [ebx + 0x7c]
mov cl, byte [edx]
cmp cl, byte [edi]
jne 0x542538
test cl, cl
je 0x542546
mov cl, byte [edx + 1]
add edx, 1
add edi, 1
cmp cl, byte [edi]
je 0x542527
movzx edi, byte [edi]
movzx ecx, byte [edx]
sub ecx, edi
jne 0x54558a
mov dword [ebx + 0x7c], esi
mov eax, 0xfffffc1e
jmp 0x54558a
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
mov eax, dword [esp + 0x30]
push ecx
push edx
push eax
mov eax, dword [esp + 0x28]
movzx ecx, byte [eax]
movzx edx, byte [ecx + 0x573640]
add edx, eax
push edx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
mov eax, 0xfffffc1c
jmp 0x54558a
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push ecx
mov ecx, dword [esp + 0x30]
push edx
push eax
mov eax, dword [esp + 0x24]
movzx edx, byte [eax]
push ecx
movzx ecx, byte [edx + 0x573640]
add ecx, eax
push ecx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
mov eax, 0xfffffc1d
jmp 0x54558a
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
lea edi, [eax + 2]
mov dword [ebx + 0xb0], edi
mov dword [ebx + 0xac], 0
mov edx, dword [esp + 0x17c]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push ecx
mov ecx, dword [esp + 0x30]
push ebx
push edx
movzx edx, byte [eax]
push ecx
movzx ecx, byte [edx + 0x573640]
movzx edx, byte [eax + 1]
add ecx, eax
add edx, ecx
push edx
push esi
call fcn.005385c0
cmp eax, 1
je 0x542647
cmp eax, 0xfffffc19
jne 0x542656
cmp dword [ebx + 0xac], 0
jne 0x542656
mov dword [ebx + 0xac], edi
test eax, eax
jne 0x54558a
mov eax, 0xfffffc1d
jmp 0x54558a
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x170]
add eax, 1
push eax
mov eax, dword [esp + 0x2c]
push ecx
push edi
push edx
push eax
mov eax, dword [esp + 0x28]
movzx ecx, byte [eax]
movzx edx, byte [ecx + 0x573640]
add edx, eax
push edx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
mov dword [edi + 0x7c], esi
mov eax, 0xfffffc1e
jmp 0x54558a
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x170]
add eax, 1
push eax
mov eax, dword [esp + 0x2c]
push ecx
movzx ecx, byte [ebx]
push edi
push edx
movzx edx, byte [ecx + 0x573640]
push eax
movzx eax, byte [ebx + 1]
add edx, ebx
add eax, edx
push eax
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
add ebx, 2
mov dword [edi + 0x7c], ebx
mov eax, 0xfffffc1f
jmp 0x54558a
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x170]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x2c]
push edx
movzx edx, byte [edi]
push ebx
push eax
movzx eax, byte [edx + 0x573640]
push ecx
add eax, edi
push eax
push esi
call fcn.005385c0
jmp 0x5427b4
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x170]
lea ebp, [edi + 2]
mov dword [ebx + 0xb0], ebp
mov dword [ebx + 0xac], 0
mov ecx, dword [esp + 0x17c]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x2c]
push edx
movzx edx, byte [edi]
push ebx
push eax
movzx eax, byte [edx + 0x573640]
push ecx
movzx ecx, byte [edi + 1]
add eax, edi
add ecx, eax
push ecx
push esi
call fcn.005385c0
cmp eax, 1
je 0x5427a5
cmp eax, 0xfffffc19
jne 0x5427b4
cmp dword [ebx + 0xac], 0
jne 0x5427b4
mov dword [ebx + 0xac], ebp
test eax, eax
jne 0x54558a
mov dword [ebx + 0x7c], edi
mov eax, 0xfffffc20
jmp 0x54558a
test eax, eax
jne 0x54558a
mov ecx, dword [esp + 0x3c]
mov dword [edi + 0x90], ecx
mov ecx, dword [esp + 0x30]
xor edx, edx
mov dh, byte [ebx + 1]
mov dl, byte [ebx + 2]
mov dword [edi + 0xac], ecx
add ebx, edx
cmp byte [ebx], 0x77
mov dword [esp + 0x14], ebx
je 0x542000
mov edx, dword [edi + 0xc]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x2c]
mov dword [edx + ebp*4], ecx
mov edx, dword [edi + 0xc]
mov ecx, dword [esp + 0x50]
mov dword [edx + ebp*4 + 4], ecx
mov edx, dword [edi + 0x10]
sub edx, dword [esp + 0x38]
mov ecx, dword [edi + 0xc]
mov dword [ecx + edx*4], esi
jmp 0x54558a
cmp eax, 0xfffffc1b
jne 0x54558a
mov ecx, dword [esp + 0x14]
mov dl, byte [ecx]
cmp dl, 0x81
je 0x54285b
cmp dl, 0x77
jne 0x542851
xor edx, edx
mov dh, byte [ecx + 1]
mov dl, byte [ecx + 2]
add ecx, edx
cmp byte [ecx], 0x77
je 0x542842
xor edx, edx
mov dh, byte [ecx + 1]
mov dl, byte [ecx + 2]
sub ecx, edx
cmp dword [edi + 0xb4], ecx
jne 0x54558a
xor eax, eax
jmp 0x54558a
mov ecx, dword [esp + 0x28]
cmp esi, ecx
jne 0x5428a8
cmp ebx, 0x9f
je 0x5428a8
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xa4], ebp
jne 0x5428ac
cmp dword [eax + 0x5c], ebp
jne 0x5428a1
cmp dword [eax + 0x60], ebp
je 0x5428ac
mov edx, dword [eax + 0x94]
add edx, dword [eax + 0x74]
cmp ecx, edx
jne 0x5428ac
xor eax, eax
jmp 0x54558a
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x170]
mov dword [eax + 0x80], esi
mov dword [eax + 0x8c], edx
mov dword [eax + 0x7c], ecx
mov eax, ebx
neg eax
sbb eax, eax
and eax, 0xfffffc18
add eax, 1
jmp 0x54558a
mov eax, 0xffffffe6
jmp 0x54558a
mov eax, 0xfffffffa
jmp 0x54558a
mov eax, dword [esp + 0x5c]
lea edx, [esp + 0xdc]
cmp eax, edx
je 0x5428ff
push eax
call dword [0x596f10]
mov eax, edi
jmp 0x54558a
mov eax, dword [esp + 0x54]
mov dword [ebp + 0xa4], eax
mov eax, dword [esp + 0x5c]
lea ecx, [esp + 0xdc]
cmp eax, ecx
je 0x542926
push eax
call dword [0x596f10]
xor eax, eax
jmp 0x54558a
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x170]
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x80], esi
mov dword [eax + 0x8c], edx
mov dword [eax + 0x7c], ecx
mov eax, 1
jmp 0x54558a
mov edx, dword [esp + 0x28]
mov dword [ebp + 0x80], esi
mov dword [ebp + 0x7c], edx
mov eax, 1
jmp 0x54558a
mov eax, dword [esp + 0x28]
mov dword [ebp + 0x7c], eax
mov dword [ebp + 0x80], esi
mov dword [ebp + 0x8c], ebx
mov eax, 0xfffffc1a
jmp 0x54558a
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
add ecx, 1
push ecx
push edx
push ebp
push ebx
push edi
push eax
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
mov ecx, dword [esp + 0x40]
mov dword [ebp + 0xb4], ecx
mov eax, 0xfffffc1b
jmp 0x54558a
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x40]
add edx, 1
push edx
push eax
push ebp
push ebx
push edi
push ecx
push esi
call fcn.005385c0
jmp 0x54558a
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
add edx, 1
push edx
push eax
push ebp
push ebx
push edi
add ecx, 3
push ecx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
mov edx, dword [esp + 0x40]
mov dword [ebp + 0xb4], edx
mov eax, 0xfffffc1b
jmp 0x54558a
mov eax, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
add eax, 1
push eax
mov eax, dword [esp + 0x2c]
push edx
push ebp
push ebx
push eax
push ecx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
mov dword [ebp + 0xb4], edi
mov eax, 0xfffffc1b
jmp 0x54558a
xor ebp, ebp
cmp dword [edi + 0x88], ebp
je case.0x545420.14
lea ecx, [esi + 1]
cmp ecx, dword [edi + 0x78]
jb case.0x545420.14
cmp dword [edi + 0x18], ebp
jne case.0x545420.14
cmp dword [edi + 0x1c], 2
jne case.0x545420.14
mov dl, byte [esi]
cmp dl, byte [edi + 0x34]
jne case.0x545420.14
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x88], eax
jmp 0x545571
cmp dword [edi + 0x88], 0
je case.0x545420.14
lea eax, [esi + 1]
cmp eax, dword [edi + 0x78]
jb case.0x545420.14
cmp dword [edi + 0x18], 0
jne case.0x545420.14
cmp dword [edi + 0x1c], 2
jne case.0x545420.14
mov cl, byte [esi]
cmp cl, byte [edi + 0x34]
jne case.0x545420.14
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x88], eax
jmp 0x545571
cmp dword [ecx + 0x88], ebp
jmp 0x5433f0
cmp dword [eax + 0x88], ebp
jmp 0x54387f
cmp eax, 0xfffffffe
mov eax, dword [esp + 0x10]
jne 0x543270
mov esi, dword [eax + 0x78]
jmp 0x543270
cmp ebp, eax
mov dword [esp + 0x34], esi
jge 0x542b83
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
push eax
push ecx
mov eax, edi
mov ecx, esi
mov edx, ebx
call fcn.00538280
test eax, eax
jl 0x542b4c
add ebp, 1
add esi, eax
cmp ebp, dword [esp + 0x18]
jl 0x542b26
jmp 0x542b7d
cmp eax, 0xfffffffe
jne 0x542b7d
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je 0x542b7d
mov edx, dword [eax + 0x78]
cmp edx, dword [eax + 0x84]
jbe 0x542b7d
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jg 0x545577
cmp esi, dword [esp + 0x34]
jb 0x542bc5
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x28]
jmp 0x542b90
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push ecx
push edx
push eax
push ebp
push ebx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
sub esi, edi
cmp esi, dword [esp + 0x34]
jae 0x542b90
xor eax, eax
jmp 0x54558a
cmp eax, 0xfffffffe
jne 0x542bd4
mov esi, dword [ebp + 0x78]
cmp dword [ebp + 0x88], 0
je case.0x545420.14
cmp esi, dword [ebp + 0x78]
jb case.0x545420.14
cmp esi, dword [ebp + 0x84]
jbe case.0x545420.14
mov eax, 1
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x88], eax
jmp 0x545571
cmp dword [esp + 0x20], 0
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
mov edi, edx
je 0x542dba
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x174]
push edx
push eax
push ecx
push ebx
push ebp
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
jmp 0x542c50
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x542d59
test al, 0x20
jne 0x542c92
movzx edx, byte [esi]
and eax, 0x1f
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 1
jmp 0x542d59
test al, 0x10
jne 0x542cb8
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
and eax, 0xf
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 2
jmp 0x542d59
test al, 8
jne 0x542cea
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
and eax, 7
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 3
jmp 0x542d59
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
and edx, 0x3f
and ecx, 0x3f
test al, 4
jne 0x542d25
and eax, 3
shl eax, 6
or eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 4
jmp 0x542d59
and eax, 1
shl eax, 6
or eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 4]
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 5
cmp eax, 0xff
jbe 0x542d67
cmp dword [esp + 0x40], 0x6e
jmp 0x542d7f
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x30]
shr eax, 3
mov al, byte [eax + ecx]
test al, dl
je case.0x545420.14
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x174]
push edx
push eax
push ecx
push ebx
push ebp
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x542c50
jmp 0x54558a
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
push ecx
push edx
push ebx
push ebp
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
jmp 0x542df0
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx eax, byte [esi]
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x30]
shr eax, 3
mov al, byte [eax + ecx]
add esi, 1
test al, dl
je case.0x545420.14
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x174]
push edx
push eax
push ecx
push ebx
push ebp
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x542df0
jmp 0x54558a
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
push ecx
push edx
push ebp
mov edi, ebx
mov ebx, dword [esp + 0x28]
push ebx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x542fa7
cmp eax, 0xc0
jb 0x542fa7
test al, 0x20
jne 0x542ee0
movzx ecx, byte [esi]
and eax, 0x1f
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 1
jmp 0x542fa7
test al, 0x10
jne 0x542f06
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
and eax, 0xf
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 2
jmp 0x542fa7
test al, 8
jne 0x542f38
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
and eax, 7
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 3
jmp 0x542fa7
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0x3f
and edx, 0x3f
test al, 4
jne 0x542f73
and eax, 3
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
or eax, edx
movzx edx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 4
jmp 0x542fa7
and eax, 1
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
or eax, edx
movzx edx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 4]
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 5
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
push edx
push ecx
push eax
call fcn.00547540
test eax, eax
je case.0x545420.14
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
push ecx
push edx
push ebp
push ebx
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x542e93
jmp 0x54558a
cmp dword [eax + 0x88], 0
je case.0x545420.14
cmp esi, dword [eax + 0x78]
jb case.0x545420.14
jmp 0x543018
cmp dword [eax + 0x88], ebp
je case.0x545420.14
cmp esi, dword [eax + 0x84]
jbe case.0x545420.14
mov dword [eax + 0x64], 1
cmp dword [eax + 0x88], 1
jmp 0x545571
cmp dword [edi + 0x88], ebp
jmp 0x5438f9
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x88], 0
je case.0x545420.14
cmp esi, dword [ecx + 0x78]
jb case.0x545420.14
cmp esi, dword [ecx + 0x84]
jbe case.0x545420.14
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x88], eax
jmp 0x545571
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x20]
push eax
push ecx
push edx
push esi
mov dword [esp + 0x4c], edi
call fcn.005385c0
test eax, eax
jne 0x54558a
jmp 0x5430c0
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x18]
jge case.0x545420.14
mov ecx, dword [esp + 0x10]
mov ebx, dword [ecx + 0x78]
mov edx, ebx
sub edx, ebp
cmp esi, edx
ja 0x54317e
cmp ebp, 4
mov ecx, dword [esp + 0x4c]
mov eax, ebp
mov edx, esi
jb 0x543104
mov edi, edi
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x54310c
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x5430f0
test eax, eax
je 0x543171
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x54315b
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x54316d
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x54315b
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x54316d
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x54315b
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x54316d
movzx edi, byte [edx]
movzx eax, byte [ecx]
sub edi, eax
je 0x54316d
test edi, edi
mov ebp, dword [esp + 0x38]
mov eax, 1
jg 0x543173
or eax, 0xffffffff
jmp 0x543173
mov ebp, dword [esp + 0x38]
xor eax, eax
test eax, eax
jne 0x54317e
add esi, ebp
jmp 0x54322d
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x54326c
sub ebx, eax
cmp esi, ebx
ja 0x54326c
cmp eax, 4
lea ecx, [esp + 0x154]
mov edx, esi
jb 0x5431b6
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x5431be
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x5431a2
test eax, eax
je 0x543223
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x543215
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x543223
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x543215
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x543223
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x543215
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x543223
movzx edi, byte [edx]
movzx ecx, byte [ecx]
sub edi, ecx
je 0x543223
test edi, edi
mov eax, 1
jg 0x543225
or eax, 0xffffffff
jmp 0x543225
xor eax, eax
test eax, eax
jne 0x54326c
add esi, dword [esp + 0x40]
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add dword [esp + 0x30], 1
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x20]
push edx
push eax
push ecx
push esi
call fcn.005385c0
test eax, eax
je 0x5430c0
jmp 0x54558a
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je case.0x545420.14
cmp esi, dword [eax + 0x78]
jb case.0x545420.14
cmp esi, dword [eax + 0x84]
jbe case.0x545420.14
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jmp 0x545571
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
mov eax, dword [esp + 0x30]
push ecx
push edx
push eax
push ebp
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
mov edi, edi
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx eax, byte [esi]
cmp ebx, eax
je 0x543308
cmp dword [esp + 0x38], eax
jne case.0x545420.14
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x174]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
push edx
push ebp
add esi, 1
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x5432e0
jmp 0x54558a
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push ecx
mov ecx, dword [esp + 0x30]
push edx
push eax
push ecx
push ebp
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
lea esp, [esp]
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx edx, byte [esi]
add esi, 1
cmp ebx, edx
jne case.0x545420.14
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push ecx
mov ecx, dword [esp + 0x30]
push edx
push eax
push ecx
push ebp
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x543380
jmp 0x54558a
cmp dword [edx + 0x88], ebp
jmp 0x545551
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x88], 0
je case.0x545420.14
cmp esi, dword [ecx + 0x84]
jbe case.0x545420.14
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x88], eax
jmp 0x545571
cmp dword [esp + 0x20], 0
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
je 0x5435a7
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
push ecx
push edx
push ebx
push ebp
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x54355e
test al, 0x20
jne 0x543497
movzx ecx, byte [esi]
and eax, 0x1f
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 1
jmp 0x54355e
test al, 0x10
jne 0x5434bd
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
and eax, 0xf
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 2
jmp 0x54355e
test al, 8
jne 0x5434ef
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
and eax, 7
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 3
jmp 0x54355e
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0x3f
and edx, 0x3f
test al, 4
jne 0x54352a
and eax, 3
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
or eax, edx
movzx edx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 4
jmp 0x54355e
and eax, 1
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
or eax, edx
movzx edx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 4]
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 5
cmp dword [esp + 0x30], eax
je case.0x545420.14
cmp dword [esp + 0x38], eax
je case.0x545420.14
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
push ecx
push edx
push ebx
push ebp
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x543455
jmp 0x54558a
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push ecx
push edx
push eax
push ebx
push ebp
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx eax, byte [esi]
cmp dword [esp + 0x30], eax
je case.0x545420.14
cmp dword [esp + 0x38], eax
je case.0x545420.14
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x174]
push edx
push eax
push ecx
push ebx
push ebp
add esi, 1
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x5435d4
jmp 0x54558a
cmp dword [ebx + 0x88], 0
je case.0x545420.14
cmp esi, dword [ebx + 0x84]
jbe case.0x545420.14
mov eax, 1
mov dword [ebx + 0x64], eax
cmp dword [ebx + 0x88], eax
jmp 0x545571
cmp dword [esp + 0x20], 0
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
je 0x5437ea
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
push ecx
push edx
push ebx
push ebp
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x5437ab
test al, 0x20
jne 0x5436e4
movzx ecx, byte [esi]
and eax, 0x1f
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 1
jmp 0x5437ab
test al, 0x10
jne 0x54370a
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
and eax, 0xf
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 2
jmp 0x5437ab
test al, 8
jne 0x54373c
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
and eax, 7
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 3
jmp 0x5437ab
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0x3f
and edx, 0x3f
test al, 4
jne 0x543777
and eax, 3
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
or eax, edx
movzx edx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 4
jmp 0x5437ab
and eax, 1
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
or eax, edx
movzx edx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 4]
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 5
cmp dword [esp + 0x30], eax
je case.0x545420.14
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
push ecx
push edx
push ebx
push ebp
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x5436a2
jmp 0x54558a
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push ecx
push edx
push eax
push ebx
push ebp
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
jmp 0x543820
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x30], ecx
je case.0x545420.14
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
push ecx
push edx
push ebx
push ebp
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x543820
jmp 0x54558a
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je case.0x545420.14
cmp esi, dword [eax + 0x84]
jbe case.0x545420.14
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jmp 0x545571
cmp dword [ebx + 0x88], 0
je case.0x545420.14
cmp esi, dword [ebx + 0x84]
jbe case.0x545420.14
mov dword [ebx + 0x64], ecx
cmp dword [ebx + 0x88], ecx
jmp 0x545571
cmp dword [ecx + 0x88], 0
je case.0x545420.14
cmp esi, dword [ecx + 0x84]
jbe case.0x545420.14
mov dword [ecx + 0x64], edx
cmp dword [ecx + 0x88], edx
jmp 0x545571
cmp dword [edi + 0x88], 0
je case.0x545420.14
cmp esi, dword [edi + 0x84]
jbe case.0x545420.14
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x88], eax
jmp 0x545571
test eax, eax
jl 0x544b03
cmp eax, 0xa
ja case.default.0x53ad0f
jmp dword [eax*4 + 0x545aa8]
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push ecx
push edx
push eax
push ebp
push ebx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
nop
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x5439c2
cmp eax, 0xc0
jb 0x5439c2
test al, 0x20
jne 0x5439a4
add esi, 1
jmp 0x5439c2
test al, 0x10
jne 0x5439ad
add esi, 2
jmp 0x5439c2
test al, 8
jne 0x5439b6
add esi, 3
jmp 0x5439c2
test al, 4
jne 0x5439bf
add esi, 4
jmp 0x5439c2
add esi, 5
cmp dword [esp + 0x44], 0
jne case.0x545420.14
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x174]
push edx
push eax
push ecx
push ebp
push ebx
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x543970
jmp 0x54558a
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
push ecx
push edx
push ebp
push ebx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
jmp 0x543a40
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x543b59
cmp ecx, 0xc0
jb 0x543b59
test cl, 0x20
jne 0x543a8f
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 1
jmp 0x543b59
test cl, 0x10
jne 0x543ab6
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x543b59
test cl, 8
jne 0x543ae9
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 7
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 3
jmp 0x543b59
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and eax, 0x3f
and edx, 0x3f
test cl, 4
jne 0x543b25
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 4
jmp 0x543b59
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x543b7b
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx eax, byte [eax*8 + 0x5742d9]
cmp eax, 9
je 0x543ba0
cmp eax, 5
je 0x543ba0
cmp eax, 8
je 0x543ba0
xor eax, eax
jmp 0x543ba5
mov eax, 1
cmp eax, dword [esp + 0x44]
je case.0x545420.14
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x174]
push edx
push eax
push ecx
push ebp
push ebx
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x543a40
jmp 0x54558a
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
push ecx
push edx
push ebp
push ebx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
lea ecx, [ecx]
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x543d39
cmp ecx, 0xc0
jb 0x543d39
test cl, 0x20
jne 0x543c6f
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 1
jmp 0x543d39
test cl, 0x10
jne 0x543c96
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x543d39
test cl, 8
jne 0x543cc9
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 7
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 3
jmp 0x543d39
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and eax, 0x3f
and edx, 0x3f
test cl, 4
jne 0x543d05
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 4
jmp 0x543d39
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x543d5b
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx ecx, byte [eax*8 + 0x5742d9]
mov eax, dword [esp + 0x48]
xor edx, edx
cmp dword [ecx*4 + 0x573818], eax
sete dl
cmp edx, dword [esp + 0x44]
je case.0x545420.14
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x174]
push edx
push eax
push ecx
push ebp
push ebx
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x543c20
jmp 0x54558a
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
push ecx
push edx
push ebp
push ebx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x543f0e
cmp ecx, 0xc0
jb 0x543f0e
test cl, 0x20
jne 0x543e44
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 1
jmp 0x543f0e
test cl, 0x10
jne 0x543e6b
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x543f0e
test cl, 8
jne 0x543e9e
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 7
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 3
jmp 0x543f0e
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and eax, 0x3f
and edx, 0x3f
test cl, 4
jne 0x543eda
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 4
jmp 0x543f0e
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x543f30
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx ecx, byte [eax*8 + 0x5742d9]
xor edx, edx
cmp ecx, dword [esp + 0x48]
sete dl
cmp edx, dword [esp + 0x44]
je case.0x545420.14
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push ecx
push edx
push eax
push ebp
push ebx
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x543df5
jmp 0x54558a
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x174]
push edx
push eax
push ecx
push ebp
push ebx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x5440dc
cmp ecx, 0xc0
jb 0x5440dc
test cl, 0x20
jne 0x544012
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x5440dc
test cl, 0x10
jne 0x544039
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 2
jmp 0x5440dc
test cl, 8
jne 0x54406c
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x5440dc
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x5440a8
and ecx, 3
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x5440dc
and ecx, 1
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x575958]
shl eax, 7
and ecx, 0x8000007f
jns 0x5440fe
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx ecx, word [eax*2 + 0x577b58]
movzx edx, byte [ecx*8 + 0x5742d8]
xor eax, eax
cmp edx, dword [esp + 0x48]
sete al
cmp eax, dword [esp + 0x44]
je case.0x545420.14
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x174]
push edx
push eax
push ecx
push ebp
push ebx
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x543fc3
jmp 0x54558a
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
push ecx
push edx
push ebp
push ebx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x5442aa
cmp ecx, 0xc0
jb 0x5442aa
test cl, 0x20
jne 0x5441e0
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 1
jmp 0x5442aa
test cl, 0x10
jne 0x544207
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 2
jmp 0x5442aa
test cl, 8
jne 0x54423a
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 7
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 3
jmp 0x5442aa
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and eax, 0x3f
and edx, 0x3f
test cl, 4
jne 0x544276
and ecx, 3
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 4
jmp 0x5442aa
and ecx, 1
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x5442cc
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx ecx, byte [eax*8 + 0x5742d9]
mov eax, dword [ecx*4 + 0x573818]
cmp eax, 1
je 0x5442f3
cmp eax, 3
je 0x5442f3
xor eax, eax
jmp 0x5442f8
mov eax, 1
cmp eax, dword [esp + 0x44]
je case.0x545420.14
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
push ecx
push edx
push ebp
push ebx
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x544191
jmp 0x54558a
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push ecx
push edx
push eax
push ebp
push ebx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x544489
cmp ecx, 0xc0
jb 0x544489
test cl, 0x20
jne 0x5443bf
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x544489
test cl, 0x10
jne 0x5443e6
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 2
jmp 0x544489
test cl, 8
jne 0x544419
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x544489
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x544455
and ecx, 3
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x544489
and ecx, 1
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 5
cmp ecx, 0x180e
ja 0x5444d3
je case.0x5444f3.8192
cmp ecx, 0x85
ja 0x5444bf
je case.0x5444f3.8192
cmp ecx, 9
jb case.0x5444f3.8203
cmp ecx, 0xd
jbe case.0x5444f3.8192
cmp ecx, 0x20
jmp 0x54450c
cmp ecx, 0xa0
je case.0x5444f3.8192
cmp ecx, 0x1680
jmp 0x54450c
cmp ecx, 0x202f
ja 0x5444fa
je case.0x5444f3.8192
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x5444f3.8203
movzx eax, byte [eax + 0x545adc]
jmp dword [eax*4 + 0x545ad4]
cmp ecx, 0x205f
je case.0x5444f3.8192
cmp ecx, 0x3000
je case.0x5444f3.8192
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x544534
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx ecx, byte [eax*8 + 0x5742d9]
xor edx, edx
cmp dword [ecx*4 + 0x573818], 6
sete dl
cmp edx, dword [esp + 0x44]
je case.0x545420.14
jmp 0x54456a
cmp dword [esp + 0x44], 0
jne case.0x545420.14
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push ecx
push edx
push eax
push ebp
push ebx
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x544370
jmp 0x54558a
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x174]
push edx
push eax
push ecx
push ebp
push ebx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
jmp 0x5445e0
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x5446f9
cmp ecx, 0xc0
jb 0x5446f9
test cl, 0x20
jne 0x54462f
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x5446f9
test cl, 0x10
jne 0x544656
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 2
jmp 0x5446f9
test cl, 8
jne 0x544689
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x5446f9
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x5446c5
and ecx, 3
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x5446f9
and ecx, 1
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x575958]
mov edx, ecx
shl eax, 7
and edx, 0x8000007f
jns 0x54471d
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x577b58]
movzx edx, byte [eax*8 + 0x5742d9]
mov eax, dword [edx*4 + 0x573818]
cmp eax, 1
je 0x544749
cmp eax, 3
je 0x544749
cmp ecx, 0x5f
je 0x544749
xor eax, eax
jmp 0x54474e
mov eax, 1
cmp eax, dword [esp + 0x44]
je case.0x545420.14
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push ecx
push edx
push eax
push ebp
push ebx
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x5445e0
jmp 0x54558a
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x174]
push edx
push eax
push ecx
push ebp
push ebx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x5448da
cmp eax, 0xc0
jb 0x5448da
test al, 0x20
jne 0x544813
movzx edx, byte [esi]
and eax, 0x1f
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 1
jmp 0x5448da
test al, 0x10
jne 0x544839
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
and eax, 0xf
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 2
jmp 0x5448da
test al, 8
jne 0x54486b
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
and eax, 7
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 3
jmp 0x5448da
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
and edx, 0x3f
and ecx, 0x3f
test al, 4
jne 0x5448a6
and eax, 3
shl eax, 6
or eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 4
jmp 0x5448da
and eax, 1
shl eax, 6
or eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 4]
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 5
mov edx, dword [esp + 0x48]
mov ecx, dword [edx*4 + 0x574198]
cmp eax, ecx
lea edx, [edx*4 + 0x574198]
jb 0x5448fd
add edx, 4
cmp eax, ecx
je 0x54490a
mov ecx, dword [edx]
cmp eax, ecx
jae 0x5448f0
cmp dword [esp + 0x44], 0
je case.0x545420.14
jmp 0x544915
cmp dword [esp + 0x44], 0
jne case.0x545420.14
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push ecx
push edx
push eax
push ebp
push ebx
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x5447c6
jmp 0x54558a
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x174]
push edx
push eax
push ecx
push ebp
push ebx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543878
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x544a97
cmp eax, 0xc0
jb 0x544a97
test al, 0x20
jne 0x5449d0
movzx edx, byte [esi]
and eax, 0x1f
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 1
jmp 0x544a97
test al, 0x10
jne 0x5449f6
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
and eax, 0xf
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 2
jmp 0x544a97
test al, 8
jne 0x544a28
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
and eax, 7
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 3
jmp 0x544a97
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
and edx, 0x3f
and ecx, 0x3f
test al, 4
jne 0x544a63
and eax, 3
shl eax, 6
or eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 4
jmp 0x544a97
and eax, 1
shl eax, 6
or eax, edx
movzx edx, byte [esi + 2]
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and edx, 0x3f
or eax, edx
movzx edx, byte [esi + 4]
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 5
cmp eax, 0x24
je 0x544abf
cmp eax, 0x40
je 0x544abf
cmp eax, 0x60
je 0x544abf
cmp eax, 0xa0
jb 0x544ab4
cmp eax, 0xd7ff
jbe 0x544abf
cmp eax, 0xe000
jae 0x544abf
xor eax, eax
jmp 0x544ac4
mov eax, 1
cmp eax, dword [esp + 0x44]
je case.0x545420.14
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push ecx
push edx
push eax
push ebp
push ebx
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x544983
jmp 0x54558a
cmp dword [esp + 0x38], 0x16
jne 0x544e57
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x170]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x1c]
push edi
push eax
push ecx
push edx
push esi
mov dword [esp + 0x4c], ebx
call fcn.005385c0
test eax, eax
jne 0x54558a
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
jge case.0x545420.14
mov ebp, dword [eax + 0x78]
cmp esi, ebp
jae 0x543878
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x544c62
cmp ecx, 0xc0
jb 0x544c62
test cl, 0x20
jne 0x544b98
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x544c62
test cl, 0x10
jne 0x544bbf
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 2
jmp 0x544c62
test cl, 8
jne 0x544bf2
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 7
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x544c62
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x544c2e
and ecx, 3
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x544c62
and ecx, 1
shl ecx, 6
or ecx, edx
movzx edx, byte [esi + 2]
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 5
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x575958]
shl eax, 7
and ecx, 0x8000007f
jns 0x544c84
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
cmp esi, ebp
movzx ecx, word [eax*2 + 0x577b58]
movzx ebx, byte [ecx*8 + 0x5742da]
jae 0x544de9
mov edi, edi
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
mov edi, 1
je 0x544d99
cmp ecx, 0xc0
jb 0x544d99
test cl, 0x20
jne 0x544cdb
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x544d97
test cl, 0x10
jne 0x544d05
movzx eax, byte [esi + 1]
and ecx, 0xf
shl ecx, 6
and eax, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or ecx, eax
mov edi, 3
jmp 0x544d99
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x544d2b
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x544d89
and eax, 0x3f
test cl, 4
jne 0x544d64
and ecx, 3
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and ecx, 0x3f
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
mov edi, 5
jmp 0x544d99
and ecx, edi
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and ecx, 0x3f
shl edx, 6
or edx, ecx
movzx ecx, byte [esi + 5]
mov edi, 6
shl edx, 6
and eax, 0x3f
or edx, eax
shl edx, 6
and ecx, 0x3f
or ecx, edx
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x575958]
shl edx, 7
and ecx, 0x8000007f
jns 0x544dbb
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x577b58]
movzx ecx, byte [eax*8 + 0x5742da]
mov edx, 1
shl edx, cl
test dword [ebx*4 + 0x5737a4], edx
je 0x544de9
add esi, edi
cmp esi, ebp
mov ebx, ecx
jb 0x544ca0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je 0x544e18
cmp esi, ebp
jb 0x544e18
cmp esi, dword [eax + 0x84]
jbe 0x544e18
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jg 0x545577
jmp 0x544e1d
mov ecx, 1
add dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x1c]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x17c]
push eax
push ecx
push edx
push esi
call fcn.005385c0
test eax, eax
je 0x544b43
jmp 0x54558a
cmp dword [esp + 0x20], 0
mov ebp, dword [esp + 0x28]
je 0x5452f9
mov ecx, dword [esp + 0x17c]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x170]
mov edi, dword [esp + 0x14]
add ecx, 1
push ecx
push edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x18]
push eax
push ebx
push ebp
push edi
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
nop
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x30], ecx
jge case.0x545420.14
mov edx, dword [esp + 0x10]
cmp esi, dword [edx + 0x78]
jae 0x54554a
cmp dword [esp + 0x38], 0xc
jne 0x544f1a
mov eax, dword [edx + 0x18]
test eax, eax
je 0x544ef3
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
push edx
lea edx, [ecx + 0x1c]
mov ecx, dword [ecx + 0x78]
push edx
push ecx
push eax
push esi
call fcn.00546dc0
test eax, eax
jne case.0x545420.14
mov edx, dword [esp + 0x10]
jmp 0x544f1a
mov eax, dword [edx + 0x78]
sub eax, dword [edx + 0x1c]
cmp esi, eax
ja 0x544f1a
mov cl, byte [esi]
cmp cl, byte [edx + 0x34]
jne 0x544f1a
cmp dword [edx + 0x1c], 1
je case.0x545420.14
mov al, byte [esi + 1]
cmp al, byte [edx + 0x35]
je case.0x545420.14
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x545004
movzx ecx, byte [esi]
and ecx, 0x3f
test al, 0x20
jne 0x544f45
and eax, 0x1f
shl eax, 6
or eax, ecx
add esi, 1
jmp 0x545004
test al, 0x10
jne 0x544f65
and eax, 0xf
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 2
jmp 0x545004
test al, 8
jne 0x544f91
and eax, 7
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 3
jmp 0x545004
test al, 4
jne 0x544fc9
and eax, 3
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 4
jmp 0x545004
and eax, 1
shl eax, 6
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 2]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 3]
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 4]
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 5
mov ecx, dword [esp + 0x38]
add ecx, 0xfffffffa
cmp ecx, 0xf
ja case.default.0x53ad0f
jmp dword [ecx*4 + 0x545b08]
cmp dword [edx + 0x88], 0
je case.0x545014.13
cmp esi, dword [edx + 0x78]
jb case.0x545014.13
cmp dword [edx + 0x18], 0
jne case.0x545014.13
cmp dword [edx + 0x1c], 2
jne case.0x545014.13
movzx ecx, byte [edx + 0x34]
cmp eax, ecx
jne case.0x545014.13
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x88], eax
jg 0x545577
jmp case.0x545014.13
cmp eax, 0xd
ja 0x54509f
je 0x545085
cmp eax, 0xa
je case.0x545014.13
jbe case.0x545420.14
cmp eax, 0xc
jmp 0x5450b6
cmp esi, dword [edx + 0x78]
jae case.0x545014.13
cmp byte [esi], 0xa
jne case.0x545014.13
add esi, 1
jmp case.0x545014.13
cmp eax, 0x85
je 0x5450bc
cmp eax, 0x2027
jbe case.0x545420.14
cmp eax, 0x2029
ja case.0x545420.14
cmp dword [edx + 0x68], 0
jne case.0x545420.14
jmp case.0x545014.13
cmp eax, 0x180e
ja 0x545100
je case.0x545420.14
cmp eax, 0xa0
ja 0x5450f6
je case.0x545420.14
cmp eax, 9
je case.0x545420.14
cmp eax, 0x20
jmp 0x5452c3
cmp eax, 0x1680
jmp 0x5452c3
cmp eax, 0x205f
ja 0x54512d
je case.0x545420.14
cmp eax, 0x2000
jb case.0x545014.13
cmp eax, 0x200a
jbe case.0x545420.14
cmp eax, 0x202f
jmp 0x5452c3
cmp eax, 0x3000
jmp 0x5452c3
cmp eax, 0x180e
ja 0x545178
je case.0x545014.13
cmp eax, 0xa0
ja 0x545168
je case.0x545014.13
cmp eax, 9
je case.0x545014.13
cmp eax, 0x20
jne case.0x545420.14
jmp case.0x545014.13
cmp eax, 0x1680
jne case.0x545420.14
jmp case.0x545014.13
cmp eax, 0x205f
ja 0x5451ab
je case.0x545014.13
cmp eax, 0x2000
jb case.0x545420.14
cmp eax, 0x200a
jbe case.0x545014.13
cmp eax, 0x202f
jne case.0x545420.14
jmp case.0x545014.13
cmp eax, 0x3000
jne case.0x545420.14
jmp case.0x545014.13
cmp eax, 0x85
ja 0x5451df
je case.0x545420.14
cmp eax, 0xa
jb case.0x545014.13
cmp eax, 0xd
jbe case.0x545420.14
jmp case.0x545014.13
cmp eax, 0x2028
jb case.0x545014.13
cmp eax, 0x2029
jbe case.0x545420.14
jmp case.0x545014.13
cmp eax, 0x85
ja 0x54521e
je case.0x545014.13
cmp eax, 0xa
jb case.0x545420.14
cmp eax, 0xd
ja case.0x545420.14
jmp case.0x545014.13
cmp eax, 0x2028
jb case.0x545420.14
cmp eax, 0x2029
ja case.0x545420.14
jmp case.0x545014.13
cmp eax, 0x100
jae case.0x545014.13
mov edx, dword [edx + 0x40]
test byte [eax + edx], 4
jne case.0x545420.14
jmp case.0x545014.13
cmp eax, 0x100
jae case.0x545420.14
mov ecx, dword [edx + 0x40]
test byte [eax + ecx], 4
jmp 0x5452c3
cmp eax, 0x100
jae case.0x545014.13
mov edx, dword [edx + 0x40]
test byte [eax + edx], 1
jne case.0x545420.14
jmp case.0x545014.13
cmp eax, 0x100
jae case.0x545420.14
mov ecx, dword [edx + 0x40]
test byte [eax + ecx], 1
jmp 0x5452c3
cmp eax, 0x100
jae case.0x545014.13
mov edx, dword [edx + 0x40]
test byte [eax + edx], 0x10
jne case.0x545420.14
jmp case.0x545014.13
cmp eax, 0x100
jae case.0x545420.14
mov ecx, dword [edx + 0x40]
test byte [eax + ecx], 0x10
je case.0x545420.14
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add dword [esp + 0x30], 1
add edx, 1
push edx
push eax
push ecx
push ebx
push ebp
push edi
push esi
call fcn.005385c0
test eax, eax
je 0x544ea0
jmp 0x54558a
mov edx, dword [esp + 0x17c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
add edx, 1
push edx
mov edx, dword [esp + 0x174]
push eax
push ecx
push edx
push ebp
push ebx
push esi
call fcn.005385c0
test eax, eax
jne 0x54558a
mov edi, edi
cmp edi, dword [esp + 0x18]
jge case.0x545420.14
mov edx, dword [esp + 0x10]
cmp esi, dword [edx + 0x78]
jae 0x54554a
cmp dword [esp + 0x38], 0xc
jne 0x5453a1
mov eax, dword [edx + 0x18]
test eax, eax
je 0x54537a
push 0
mov ecx, edx
lea edx, [ecx + 0x1c]
mov ecx, dword [ecx + 0x78]
push edx
push ecx
push eax
push esi
call fcn.00546dc0
test eax, eax
jne case.0x545420.14
mov edx, dword [esp + 0x10]
jmp 0x5453a1
mov eax, dword [edx + 0x78]
sub eax, dword [edx + 0x1c]
cmp esi, eax
ja 0x5453a1
mov cl, byte [esi]
cmp cl, byte [edx + 0x34]
jne 0x5453a1
cmp dword [edx + 0x1c], 1
je case.0x545420.14
mov al, byte [esi + 1]
cmp al, byte [edx + 0x35]
je case.0x545420.14
mov ecx, dword [esp + 0x38]
movzx eax, byte [esi]
add ecx, 0xfffffffa
add esi, 1
cmp ecx, 0xf
ja case.default.0x53ad0f
jmp dword [ecx*4 + 0x545b48]
cmp dword [edx + 0x88], 0
je case.0x5453b7.13
cmp esi, dword [edx + 0x78]
jb case.0x5453b7.13
cmp dword [edx + 0x18], 0
jne case.0x5453b7.13
cmp dword [edx + 0x1c], 2
jne case.0x5453b7.13
movzx ecx, byte [edx + 0x34]
cmp eax, ecx
jne case.0x5453b7.13
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x88], eax
jg 0x545577
jmp case.0x5453b7.13
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x545420.14
movzx eax, byte [eax + 0x545b98]
jmp dword [eax*4 + 0x545b88]
cmp esi, dword [edx + 0x78]
jae case.0x5453b7.13
cmp byte [esi], 0xa
jne case.0x5453b7.13
add esi, 1
jmp case.0x5453b7.13
cmp dword [edx + 0x68], 0
jne case.0x545420.14
jmp case.0x5453b7.13
cmp eax, 9
je case.0x545420.14
cmp eax, 0x20
je case.0x545420.14
cmp eax, 0xa0
jmp 0x545512
cmp eax, 9
je case.0x5453b7.13
cmp eax, 0x20
je case.0x5453b7.13
cmp eax, 0xa0
jne case.0x545420.14
jmp case.0x5453b7.13
cmp eax, 0xa
jb case.0x5453b7.13
cmp eax, 0xd
jbe case.0x545420.14
cmp eax, 0x85
jmp 0x545512
cmp eax, 0xa
jb case.0x545420.14
cmp eax, 0xd
jbe case.0x5453b7.13
cmp eax, 0x85
jne case.0x545420.14
jmp case.0x5453b7.13
mov ecx, dword [edx + 0x40]
test byte [eax + ecx], 4
jne case.0x545420.14
jmp case.0x5453b7.13
mov edx, dword [edx + 0x40]
test byte [eax + edx], 4
jmp 0x545512
mov ecx, dword [edx + 0x40]
test byte [eax + ecx], 1
jne case.0x545420.14
jmp case.0x5453b7.13
mov edx, dword [edx + 0x40]
test byte [eax + edx], 1
jmp 0x545512
mov ecx, dword [edx + 0x40]
test byte [eax + ecx], 0x10
jne case.0x545420.14
jmp case.0x5453b7.13
mov edx, dword [edx + 0x40]
test byte [eax + edx], 0x10
je case.0x545420.14
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, 1
push eax
mov eax, dword [esp + 0x174]
push ecx
push edx
push eax
push ebp
push ebx
push esi
add edi, 1
call fcn.005385c0
test eax, eax
je 0x545330
jmp 0x54558a
cmp dword [edx + 0x88], 0
je case.0x545420.14
cmp esi, dword [edx + 0x84]
jbe case.0x545420.14
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x88], eax
jle case.0x545420.14
mov eax, 0xfffffff4
jmp 0x54558a
mov eax, 0xfffffff2
jmp 0x54558a
mov eax, 0xfffffffb
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x150]
pop esi
xor ecx, esp
call fcn.00549750
add esp, 0x150
ret 0x1c