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

Disassembly:
sub esp, 0x150
mov eax, dword [0x597fb8]
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 0x538847
cmp dword [esp + 0x170], edx
lea eax, [esp + 0x170]
jne 0x538823
push 1
push edx
push edx
push edx
push edx
push edx
push eax
call fcn.005387a0
pop esi
mov ecx, dword [esp + 0x14c]
xor ecx, esp
call fcn.00549930
add esp, 0x150
ret 0x1c
sub eax, esi
cmp eax, edx
jle 0x54576d
neg eax
pop esi
mov ecx, dword [esp + 0x14c]
xor ecx, esp
call fcn.00549930
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 0x542668
add ecx, 1
mov dword [eax], ecx
mov ecx, dword [esp + 0x17c]
cmp ecx, dword [eax + 8]
jae 0x542675
cmp dword [eax + 0x98], 2
jne 0x5388a0
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.0x5388ca.98
movzx ecx, byte [ebx + 0x5458d4]
jmp dword [ecx*4 + 0x545788]
mov edi, dword [esp + 0x10]
add dword [edi + 0x28], 1
mov eax, dword [edi + 0x28]
cmp eax, dword [edi + 0x2c]
ja 0x542896
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5746b8]
movzx eax, byte [edx + 1]
add eax, edx
add eax, ecx
mov dword [esp + 0x14], eax
jmp 0x5388a0
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 0x538920
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.005387a0
cmp eax, 1
je 0x5389a2
cmp eax, 0xfffffc20
jne 0x538977
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 0x54576a
cmp byte [edx], 0x77
je 0x538983
cmp byte [ecx], 0x77
jne 0x54576a
jmp 0x538983
test eax, eax
jne 0x54576a
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 0x538920
jmp 0x5389ad
mov ebp, dword [edi + 0x7c]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x28], ebp
mov al, byte [edx]
cmp al, 0x82
je 0x5389c0
cmp al, 0x77
jne case.0x545600.14
jmp 0x5389c0
xor eax, eax
mov ah, byte [edx + 1]
mov al, byte [edx + 2]
add edx, eax
cmp byte [edx], 0x77
je 0x5389c0
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 0x5389f5
cmp esi, dword [esp + 0x3c]
jne 0x54212b
add edx, 3
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov dword [esp + 0x34], ebp
jmp 0x5394d4
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 0x538a54
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 + 0x5746b8]
push edi
push ebx
push ebp
add ecx, eax
push ecx
push esi
call fcn.005387a0
cmp eax, 0xfffffc1a
jne 0x5395d8
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 0x539634
mov esi, dword [edi + 0x80]
jmp 0x538a40
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 0x538bd4
mov ecx, dword [0x599370]
cmp ecx, ebp
mov ebp, dword [esp + 0x10]
je 0x538bc1
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 0x538b8e
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.0x545600.14
jl 0x54576a
mov edx, dword [esp + 0x14]
movzx eax, byte [0x57472e]
add edx, eax
sub dword [esp + 0x38], eax
mov dword [esp + 0x14], edx
jmp 0x538bd8
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.0x538bfa.146
movzx edx, byte [eax + 0x545990]
jmp dword [edx*4 + 0x545978]
cmp dword [ebp + 0xa4], 0
je case.0x538bfa.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 0x538d1a
mov edx, dword [ebp + 0xa4]
cmp eax, dword [edx + 4]
je 0x538d1a
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 0x538c50
cmp byte [ecx - 3], 0x77
jne 0x5388a0
cmp dword [esp + 0x40], 0x8c
jne 0x541e43
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.005387a0
jmp 0x54576a
cmp dword [ebp + 0xa4], 0
je case.0x538bfa.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.0x538bfa.145
mov ecx, dword [ebp + 0xa4]
mov ecx, dword [ecx + 4]
jmp 0x538cd0
movzx edx, byte [eax + 1]
mov dh, byte [eax]
xor ebx, ebx
sub edi, 1
cmp edx, ecx
sete bl
test ebx, ebx
jne 0x538d1f
add eax, dword [ebp + 0x24]
test edi, edi
jg 0x538cd0
jmp case.0x538bfa.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 0x538c32
mov edx, dword [ebp + 0xc]
cmp dword [edx + eax*4], 0
jl 0x538c32
mov ebx, 1
mov edx, dword [esp + 0x4c]
movzx eax, byte [edx + 0x5746b8]
jmp 0x538c38
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.0x538bfa.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 0x538d72
mov edi, dword [ebp + 0xc]
cmp dword [edi + ecx*4], 0
jge 0x538d1a
add eax, dword [ebp + 0x24]
test edx, edx
jg 0x538d54
jmp case.0x538bfa.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.005387a0
cmp eax, 1
jne 0x538e17
mov eax, dword [ebp + 0x8c]
cmp eax, dword [esp + 0x170]
jle 0x538dc9
mov dword [esp + 0x170], eax
cmp byte [edi], 0x92
mov ebx, 1
jne 0x538dd5
add edi, ebx
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x77
jne 0x538df3
xor ecx, ecx
mov ch, byte [edi + 1]
mov cl, byte [edi + 2]
add edi, ecx
cmp byte [edi], 0x77
je 0x538de4
mov edx, dword [esp + 0x4c]
movzx eax, byte [edx + 0x5746b8]
mov ecx, 3
sub ecx, eax
movzx eax, byte [edx + 0x5746b8]
add edi, ecx
mov dword [esp + 0x14], edi
jmp 0x538c38
test eax, eax
je case.0x538bfa.145
cmp eax, 0xfffffc20
jne 0x54576a
jmp case.0x538bfa.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 0x538e73
or eax, 0x10000
add ebx, 3
mov dword [ecx + 0x90], eax
mov dword [esp + 0x14], ebx
jmp 0x5388a0
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 0x538ebf
mov ecx, dword [ecx + 0xc]
lea edi, [ecx + eax*4]
lea ecx, [ecx + edx*4]
cmp edi, ecx
jae 0x538eb5
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 0x5388a0
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0xac]
mov eax, 1
cmp dword [edi + 0x98], eax
mov dword [esp + 0x30], ecx
jne 0x538ef2
mov dword [esp + 0x38], eax
mov dword [edi + 0x98], ebp
jmp 0x538ef6
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.005387a0
cmp eax, 1
je 0x538f74
cmp eax, 0xfffffc19
je 0x538f74
cmp eax, 0xfffffc20
mov edx, dword [esp + 0x30]
mov dword [edi + 0xac], edx
jne 0x538f5b
xor ecx, ecx
mov ch, byte [ebx + 1]
mov cl, byte [ebx + 2]
add ecx, ebx
cmp dword [edi + 0x7c], ecx
jae 0x54576a
cmp byte [ebx], 0x77
je 0x538f63
cmp byte [ecx], 0x77
jmp 0x538f5d
test eax, eax
jne 0x54576a
xor eax, eax
mov ah, byte [ebx + 1]
mov al, byte [ebx + 2]
add ebx, eax
cmp byte [ebx], 0x77
je 0x538f00
jmp 0x538f7b
mov ecx, dword [edi + 0x7c]
mov dword [esp + 0x28], ecx
cmp byte [ebx], 0x78
je case.0x545600.14
cmp dword [esp + 0x38], 0
jne 0x542b42
nop
xor edx, edx
mov dh, byte [ebx + 1]
mov dl, byte [ebx + 2]
add ebx, edx
cmp byte [ebx], 0x77
je 0x538f90
mov eax, dword [edi + 0x8c]
add ebx, 3
mov dword [esp + 0x14], ebx
mov dword [esp + 0x170], eax
jmp 0x5388a0
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0xac]
mov eax, 1
cmp dword [edi + 0x98], eax
mov dword [esp + 0x30], ecx
jne 0x538fdf
mov dword [esp + 0x38], eax
mov dword [edi + 0x98], ebp
jmp 0x538fe3
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.005387a0
cmp eax, 0xfffffc20
mov ecx, dword [esp + 0x30]
mov dword [edi + 0xac], ecx
jg 0x539040
jne 0x539064
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 0x539090
cmp byte [ecx], 0x77
je 0x53904b
cmp byte [eax], 0x77
jne 0x539085
jmp 0x53904b
mov ecx, eax
sub ecx, 0
jne 0x54265a
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 0x538ff0
jmp 0x5390a3
cmp eax, 0xfffffc19
je case.0x545600.14
cmp eax, 0xfffffc1b
jle 0x54576a
cmp eax, 0xfffffc1f
jg 0x54576a
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 0x539090
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x38], 0
jne 0x542b42
add dword [esp + 0x14], 3
jmp 0x5388a0
mov edi, dword [esp + 0x10]
xor eax, eax
cmp dword [esp + 0x20], ebp
mov ah, byte [edx + 1]
mov al, byte [edx + 2]
je 0x539104
cmp eax, ebp
jle 0x53910f
mov ebp, dword [edi + 0x74]
sub esi, 1
sub eax, 1
cmp esi, ebp
jb case.0x545600.14
mov cl, byte [esi]
and cl, 0xc0
cmp cl, 0x80
jne 0x5390fe
lea esp, [esp]
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
je 0x5390f0
test eax, eax
jg 0x5390d1
jmp 0x53910f
sub esi, eax
cmp esi, dword [edi + 0x74]
jb case.0x545600.14
cmp esi, dword [edi + 0x84]
jae 0x53911d
mov dword [edi + 0x84], esi
add edx, 3
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov ebx, dword [0x599370]
cmp ebx, ebp
mov edi, dword [esp + 0x14]
je 0x539212
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 0x5391e0
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.0x545600.14
jl 0x54576a
add edi, 6
mov dword [esp + 0x14], edi
jmp 0x5388a0
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 0x53923e
mov ch, byte [ebx + 3]
mov cl, byte [ebx + 4]
mov eax, dword [ebp + 0xa4]
test eax, eax
je 0x53925c
cmp ecx, dword [eax + 4]
jne 0x539256
cmp esi, dword [eax + 0x14]
je 0x542ab5
mov eax, dword [eax]
test eax, eax
jne 0x539248
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 0x5392a2
lea eax, [esp + 0xdc]
mov dword [esp + 0x5c], eax
jmp 0x5392bd
add ecx, ecx
add ecx, ecx
push ecx
call dword [0x597f0c]
test eax, eax
mov dword [esp + 0x5c], eax
je 0x542abf
mov ecx, dword [esp + 0x60]
lea edx, [ecx*4]
mov ecx, dword [ebp + 0xc]
push edx
push ecx
push eax
call fcn.00549cb0
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 0x5392ee
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 + 0x5746b8]
push edx
add ecx, ebx
push ecx
push esi
call fcn.005387a0
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.00549cb0
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 0x5393a1
cmp edi, 0xfffffc19
je 0x5393a1
cmp edi, 0xfffffc1c
jl 0x539373
cmp edi, 0xfffffc20
jle 0x542af0
test edi, edi
jne 0x542ac9
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 0x542ae6
mov eax, dword [esp + 0x38]
jmp 0x5392e0
mov eax, dword [esp + 0x5c]
lea ecx, [esp + 0xdc]
cmp eax, ecx
je 0x5393b7
push eax
call dword [0x597f10]
mov edx, dword [ebp + 0x7c]
mov esi, dword [ebp + 0x80]
mov dword [esp + 0x28], edx
jmp 0x5388a0
xor eax, eax
mov ah, byte [edx + 1]
mov al, byte [edx + 2]
add edx, eax
cmp byte [edx], 0x77
je case.0x5388ca.119
mov dword [esp + 0x14], edx
jmp 0x5388a0
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.005387a0
test eax, eax
jne 0x54576a
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x77
je 0x539420
add edi, 3
mov dword [esp + 0x14], edi
jmp 0x5388a0
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 0x539440
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.005387a0
test eax, eax
jne 0x54576a
mov dword [esp + 0x14], edi
jmp 0x5388a0
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 0x539490
add eax, 3
mov dword [esp + 0x14], eax
jmp 0x5388a0
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 0x5394d4
cmp eax, 0x8b
jne 0x538a0e
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 0x538a12
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 0x539556
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 + 0x5746b8]
push ebx
add edx, eax
push edx
push esi
call fcn.005387a0
cmp eax, 0xfffffc1a
jne 0x539673
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 0x539720
mov esi, dword [edi + 0x80]
jmp 0x539530
cmp eax, 0xfffffc20
jne 0x539606
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 0x54576a
cmp byte [edx], 0x77
je 0x539612
cmp byte [ecx], 0x77
jne 0x54576a
jmp 0x539612
test eax, eax
jne 0x54576a
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 0x539655
mov ecx, dword [esp + 0x3c]
mov dword [edi + 0x90], ecx
jmp 0x538a40
xor edx, edx
mov dh, byte [eax + 1]
mov dl, byte [eax + 2]
add eax, edx
cmp byte [eax], 0x77
je 0x539634
mov edx, eax
add edx, 3
mov dword [esp + 0x14], eax
mov dword [esp + 0x14], edx
jmp 0x5388a0
cmp dword [esp + 0x30], 0
jne 0x539667
cmp dword [esp + 0x34], 0
je case.0x545600.14
add edx, 3
mov dword [esp + 0x14], edx
jmp 0x5388a0
cmp eax, 0xfffffc20
jne 0x5396a1
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 0x54576a
cmp byte [edx], 0x77
je 0x5396ad
cmp byte [ecx], 0x77
jne 0x54576a
jmp 0x5396ad
test eax, eax
jne 0x54576a
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 0x539530
cmp dword [esp + 0x30], 0
jne 0x539700
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 0x539712
cmp dword [esp + 0x30], 0
je case.0x545600.14
add edx, 3
mov dword [esp + 0x14], edx
jmp 0x5388a0
xor edx, edx
mov dh, byte [eax + 1]
mov dl, byte [eax + 2]
add eax, edx
cmp byte [eax], 0x77
je 0x539720
mov dword [esp + 0x14], eax
mov edx, eax
jmp 0x539700
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 0x53975d
cmp al, 0x81
je 0x53975d
mov dword [esp + 0x3c], 0
jmp 0x53976e
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 0x53977a
cmp al, 0x80
jbe 0x542b0d
cmp al, 0x82
je 0x542b0d
cmp al, 0x85
je 0x539796
cmp al, 0x8a
je 0x539796
cmp al, 0x86
je 0x539796
cmp al, 0x8b
jne 0x53983c
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 0x5397c3
mov eax, dword [ebp + 0xa4]
cmp dword [eax + 4], ecx
je 0x542b35
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 0x5397ef
or eax, 0x10000
mov dword [ebp + 0x90], eax
jmp 0x539847
cmp edx, ebx
jle 0x539810
mov eax, dword [ebp + 0xc]
lea edi, [eax + ebx*4]
lea ecx, [eax + edx*4]
cmp edi, ecx
jae 0x539810
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 0x539847
lea ebx, [edx + 2]
mov dword [esp + 0x170], ebx
jmp 0x539847
mov ebx, dword [esp + 0x170]
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov al, byte [ecx]
cmp al, 0x7b
je 0x542b4c
cmp al, 0x78
je 0x539863
cmp esi, dword [esp + 0x3c]
jne 0x542355
mov edi, dword [esp + 0x40]
add ecx, 3
cmp byte [edi], 0x81
je 0x542c03
mov dword [esp + 0x14], ecx
jmp 0x5388a0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], ebp
je 0x539894
cmp esi, dword [eax + 0x74]
je case.0x545600.14
jmp 0x539894
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x74]
jne case.0x545600.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], ebp
je 0x5398bb
cmp esi, dword [eax + 0x74]
je case.0x545600.14
mov edx, dword [eax + 0x74]
cmp esi, edx
je 0x539931
cmp esi, dword [eax + 0x78]
je case.0x545600.14
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x539900
cmp esi, edx
jbe case.0x545600.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.00547160
test eax, eax
je case.0x545600.14
add dword [esp + 0x14], 1
jmp 0x5388a0
mov edx, dword [eax + 0x1c]
mov ecx, dword [eax + 0x74]
add ecx, edx
cmp esi, ecx
jb case.0x545600.14
mov ecx, esi
sub ecx, edx
mov dl, byte [ecx]
cmp dl, byte [eax + 0x34]
jne case.0x545600.14
cmp dword [eax + 0x1c], 1
je 0x539931
mov cl, byte [ecx + 1]
cmp cl, byte [eax + 0x35]
jne case.0x545600.14
add dword [esp + 0x14], 1
jmp 0x5388a0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x94]
add ecx, dword [eax + 0x74]
cmp esi, ecx
jne case.0x545600.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5388a0
add edx, 1
mov dword [esp + 0x28], esi
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov edi, dword [esp + 0x10]
cmp esi, dword [edi + 0x78]
jae 0x5399df
mov eax, dword [edi + 0x18]
cmp eax, ebp
je 0x5399a8
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.00546fa0
test eax, eax
je 0x542c39
mov edx, dword [esp + 0x14]
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov eax, dword [edi + 0x78]
sub eax, dword [edi + 0x1c]
cmp esi, eax
ja 0x542c39
mov cl, byte [esi]
cmp cl, byte [edi + 0x34]
jne 0x542c39
cmp dword [edi + 0x1c], 1
je 0x539a0c
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
jne 0x542c3b
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5388a0
cmp dword [edi + 0x48], ebp
jne case.0x545600.14
cmp dword [edi + 0x88], ebp
je 0x539a0c
cmp esi, dword [edi + 0x84]
jbe 0x539a0c
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x88], eax
jg 0x545757
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov edi, dword [esp + 0x10]
cmp dword [edi + 0x48], ebp
jne case.0x545600.14
cmp dword [edi + 0x58], ebp
je 0x539a3f
jmp 0x539a30
mov edi, dword [esp + 0x10]
cmp esi, dword [edi + 0x78]
jb case.0x545600.14
jmp 0x5399e8
mov edi, dword [esp + 0x10]
cmp esi, dword [edi + 0x78]
jae 0x539aa6
mov eax, dword [edi + 0x18]
cmp eax, ebp
lea ebp, [edi + 0x1c]
je 0x539a6d
mov ecx, dword [esp + 0x20]
mov edx, dword [edi + 0x78]
push ecx
push ebp
push edx
push eax
push esi
call fcn.00546fa0
test eax, eax
je 0x542c84
mov edx, dword [esp + 0x14]
jmp 0x539a98
mov eax, dword [edi + 0x78]
sub eax, dword [ebp]
cmp esi, eax
ja 0x542c84
mov cl, byte [esi]
cmp cl, byte [edi + 0x34]
jne 0x542c84
cmp dword [ebp], 1
je 0x539a98
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
jne 0x542c84
mov ecx, dword [edi + 0x78]
sub ecx, dword [ebp]
cmp esi, ecx
jne 0x542c84
cmp dword [edi + 0x88], 0
jmp 0x5399ee
cmp dword [esp + 0x20], ebp
je 0x539d90
mov ebp, dword [esp + 0x10]
cmp esi, dword [ebp + 0x74]
je 0x539c17
mov dl, byte [esi - 1]
lea eax, [esi - 1]
and dl, 0xc0
cmp dl, 0x80
jne 0x539ae5
mov cl, byte [eax - 1]
sub eax, 1
and cl, 0xc0
cmp cl, 0x80
je 0x539ad7
cmp eax, dword [ebp + 0x84]
jae 0x539af3
mov dword [ebp + 0x84], eax
movzx ecx, byte [eax]
cmp ecx, 0xc0
jb 0x539ba3
movzx edx, byte [eax + 1]
and edx, 0x3f
test cl, 0x20
jne 0x539b1b
and ecx, 0x1f
shl ecx, 6
or ecx, edx
jmp 0x539ba3
test cl, 0x10
jne 0x539b2f
movzx eax, byte [eax + 2]
and ecx, 0xf
shl ecx, 6
jmp 0x539b97
test cl, 8
jne 0x539b46
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [eax + 2]
movzx eax, byte [eax + 3]
jmp 0x539b91
test cl, 4
jne 0x539b69
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 0x539b91
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 0x539bff
cmp ecx, 0x5f
jne 0x539bb3
lea edi, [ecx - 0x5e]
jmp 0x539c19
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x539bd5
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx ecx, byte [eax*8 + 0x575351]
mov eax, dword [ecx*4 + 0x574890]
cmp eax, 1
je 0x539bf8
cmp eax, 3
jne 0x539c17
mov edi, 1
jmp 0x539c19
cmp ecx, 0x100
jae 0x539c17
mov edx, dword [ebp + 0x40]
test byte [ecx + edx], 0x10
je 0x539c17
mov edi, 1
jmp 0x539c19
xor edi, edi
cmp esi, dword [ebp + 0x78]
jb 0x539c4a
cmp dword [ebp + 0x88], 0
je 0x539c43
cmp esi, dword [ebp + 0x84]
jbe 0x539c43
mov eax, 1
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x88], eax
jg 0x545757
xor eax, eax
jmp 0x539ec6
movzx ecx, byte [esi]
cmp ecx, 0xc0
jb 0x539d0e
test cl, 0x20
jne 0x539c72
movzx eax, byte [esi + 1]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
jmp 0x539d0e
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 0x10
jne 0x539c99
and ecx, 0xf
shl ecx, 6
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
jmp 0x539d0e
test cl, 8
jne 0x539cac
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
jmp 0x539cfe
and eax, 0x3f
test cl, 4
jne 0x539cdd
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 0x539d0e
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 0x539d6d
cmp ecx, 0x5f
jne 0x539d21
lea eax, [ecx - 0x5e]
jmp 0x539ec6
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x539d43
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx ecx, byte [eax*8 + 0x575351]
mov eax, dword [ecx*4 + 0x574890]
cmp eax, 1
je 0x539d86
cmp eax, 3
je 0x539d86
xor eax, eax
jmp 0x539ec6
cmp ecx, 0x100
jae 0x539e4b
mov edx, dword [ebp + 0x40]
test byte [ecx + edx], 0x10
je 0x539e4b
mov eax, 1
jmp 0x539ec6
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x74]
jne 0x539da0
xor edi, edi
jmp 0x539e21
cmp esi, dword [ecx + 0x84]
ja 0x539db1
lea eax, [esi - 1]
mov dword [ecx + 0x84], eax
cmp dword [ecx + 0x54], 0
je 0x539e10
movzx edi, byte [esi - 1]
cmp edi, 0x5f
jne 0x539dc7
mov edi, 1
jmp 0x539e21
mov eax, edi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x5769d0]
shl edx, 7
and edi, 0x8000007f
jns 0x539de9
dec edi
or edi, 0xffffff80
inc edi
add edx, edi
movzx eax, word [edx*2 + 0x578bd0]
movzx edx, byte [eax*8 + 0x575351]
mov eax, dword [edx*4 + 0x574890]
cmp eax, 1
je 0x539dc0
cmp eax, 3
je 0x539dc0
xor edi, edi
jmp 0x539e21
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 0x539e52
cmp dword [ecx + 0x88], 0
je 0x539e4b
cmp esi, dword [ecx + 0x84]
jbe 0x539e4b
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x88], eax
jg 0x545757
xor eax, eax
jmp 0x539ec6
cmp dword [ecx + 0x54], 0
je 0x539eb6
movzx ecx, byte [esi]
cmp ecx, 0x5f
jne 0x539e65
lea eax, [ecx - 0x5e]
jmp 0x539ec6
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5769d0]
shl eax, 7
and ecx, 0x8000007f
jns 0x539e87
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx ecx, word [eax*2 + 0x578bd0]
movzx edx, byte [ecx*8 + 0x575351]
mov eax, dword [edx*4 + 0x574890]
cmp eax, 1
je 0x539d86
cmp eax, 3
je 0x539d86
xor eax, eax
jmp 0x539ec6
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 0x539ee3
xor ecx, ecx
cmp eax, edi
sete cl
mov eax, ecx
jmp 0x539eec
xor edx, edx
cmp eax, edi
setne dl
mov eax, edx
test eax, eax
je 0x5388a0
xor eax, eax
jmp 0x54576a
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x18]
cmp eax, ebp
je 0x539f2f
cmp esi, dword [edi + 0x78]
jae 0x539f56
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.00546fa0
test eax, eax
jne case.0x545600.14
mov edx, dword [esp + 0x14]
xor ebp, ebp
jmp 0x539f56
mov eax, dword [edi + 0x78]
sub eax, dword [edi + 0x1c]
cmp esi, eax
ja 0x539f56
mov cl, byte [esi]
cmp cl, byte [edi + 0x34]
jne 0x539f56
cmp dword [edi + 0x1c], 1
je case.0x545600.14
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
je case.0x545600.14
cmp dword [edi + 0x88], ebp
je 0x539f92
lea ecx, [esi + 1]
cmp ecx, dword [edi + 0x78]
jb 0x539f92
cmp dword [edi + 0x18], ebp
jne 0x539f92
cmp dword [edi + 0x1c], 2
jne 0x539f92
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x539f92
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x88], eax
jg 0x545757
jmp 0x539f92
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x78]
cmp esi, eax
jae 0x543217
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x539a0c
cmp esi, eax
jae 0x539a0c
mov cl, byte [esi]
and cl, 0xc0
cmp cl, 0x80
jne 0x539a0c
add esi, 1
cmp esi, eax
jb 0x539fb2
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x542cda
add esi, 1
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x542ccf
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53a0ed
cmp eax, 0xc0
jb 0x53a0ed
movzx ebx, byte [esi]
and ebx, 0x3f
test al, 0x20
jne 0x53a031
and eax, 0x1f
shl eax, 6
or eax, ebx
add esi, 1
jmp 0x53a0ed
test al, 0x10
jne 0x53a051
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 0x53a0ed
test al, 8
jne 0x53a07d
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 0x53a0ed
test al, 4
jne 0x53a0b2
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 0x53a0ed
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 0x539a0c
mov ecx, dword [ecx + 0x40]
test byte [eax + ecx], 4
jne case.0x545600.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x542ccf
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53a20f
cmp eax, 0xc0
jb 0x53a20f
movzx ebx, byte [esi]
and ebx, 0x3f
test al, 0x20
jne 0x53a153
and eax, 0x1f
shl eax, 6
or eax, ebx
add esi, 1
jmp 0x53a20f
test al, 0x10
jne 0x53a173
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 0x53a20f
test al, 8
jne 0x53a19f
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 0x53a20f
test al, 4
jne 0x53a1d4
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 0x53a20f
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.0x545600.14
mov ecx, dword [ecx + 0x40]
test byte [eax + ecx], 4
je case.0x545600.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x542ccf
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53a331
cmp eax, 0xc0
jb 0x53a331
movzx ebx, byte [esi]
and ebx, 0x3f
test al, 0x20
jne 0x53a275
and eax, 0x1f
shl eax, 6
or eax, ebx
add esi, 1
jmp 0x53a331
test al, 0x10
jne 0x53a295
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 0x53a331
test al, 8
jne 0x53a2c1
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 0x53a331
test al, 4
jne 0x53a2f6
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 0x53a331
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 0x539a0c
mov ecx, dword [ecx + 0x40]
test byte [eax + ecx], 1
jne case.0x545600.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x542ccf
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53a453
cmp eax, 0xc0
jb 0x53a453
movzx ebx, byte [esi]
and ebx, 0x3f
test al, 0x20
jne 0x53a397
and eax, 0x1f
shl eax, 6
or eax, ebx
add esi, 1
jmp 0x53a453
test al, 0x10
jne 0x53a3b7
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 0x53a453
test al, 8
jne 0x53a3e3
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 0x53a453
test al, 4
jne 0x53a418
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 0x53a453
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.0x545600.14
mov ecx, dword [ecx + 0x40]
test byte [eax + ecx], 1
je case.0x545600.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x542ccf
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53a575
cmp eax, 0xc0
jb 0x53a575
movzx ebx, byte [esi]
and ebx, 0x3f
test al, 0x20
jne 0x53a4b9
and eax, 0x1f
shl eax, 6
or eax, ebx
add esi, 1
jmp 0x53a575
test al, 0x10
jne 0x53a4d9
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 0x53a575
test al, 8
jne 0x53a505
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 0x53a575
test al, 4
jne 0x53a53a
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 0x53a575
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 0x539a0c
mov ecx, dword [ecx + 0x40]
test byte [eax + ecx], 0x10
jne case.0x545600.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x542ccf
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53a697
cmp eax, 0xc0
jb 0x53a697
movzx ebx, byte [esi]
and ebx, 0x3f
test al, 0x20
jne 0x53a5db
and eax, 0x1f
shl eax, 6
or eax, ebx
add esi, 1
jmp 0x53a697
test al, 0x10
jne 0x53a5fb
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 0x53a697
test al, 8
jne 0x53a627
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 0x53a697
test al, 4
jne 0x53a65c
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 0x53a697
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.0x545600.14
mov ecx, dword [ecx + 0x40]
test byte [eax + ecx], 0x10
je case.0x545600.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x78]
cmp esi, edi
jae 0x542ccf
movzx eax, byte [esi]
mov ebp, 1
add esi, ebp
cmp dword [esp + 0x20], 0
je 0x53a7be
cmp eax, 0xc0
jb 0x53a7be
movzx ebx, byte [esi]
and ebx, 0x3f
test al, 0x20
jne 0x53a703
and eax, 0x1f
shl eax, 6
or eax, ebx
add esi, ebp
jmp 0x53a7be
test al, 0x10
jne 0x53a723
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 0x53a7be
test al, 8
jne 0x53a74f
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 0x53a7be
test al, 4
jne 0x53a784
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 0x53a7be
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 0x53a816
je 0x53a7d5
cmp eax, 0xa
je 0x53a83d
jbe case.0x545600.14
cmp eax, 0xc
jmp 0x53a82d
cmp esi, edi
jb 0x53a804
cmp dword [ecx + 0x88], 0
je 0x53a83d
cmp esi, dword [ecx + 0x84]
jbe 0x53a83d
mov dword [ecx + 0x64], ebp
cmp dword [ecx + 0x88], ebp
jg 0x545757
add edx, ebp
mov dword [esp + 0x14], edx
jmp 0x5388a0
cmp byte [esi], 0xa
jne 0x53a83d
add esi, ebp
add edx, ebp
mov dword [esp + 0x14], edx
jmp 0x5388a0
cmp eax, 0x85
je 0x53a833
cmp eax, 0x2027
jbe case.0x545600.14
cmp eax, 0x2029
ja case.0x545600.14
cmp dword [ecx + 0x68], 0
jne case.0x545600.14
add edx, ebp
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x542cda
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53a946
cmp eax, 0xc0
jb 0x53a946
movzx ecx, byte [esi]
and ecx, 0x3f
test al, 0x20
jne 0x53a88a
and eax, 0x1f
shl eax, 6
or eax, ecx
add esi, 1
jmp 0x53a946
test al, 0x10
jne 0x53a8aa
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 0x53a946
test al, 8
jne 0x53a8d6
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 0x53a946
test al, 4
jne 0x53a90b
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 0x53a946
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 0x53a975
je case.0x545600.14
cmp eax, 0xa0
ja 0x53a96e
je case.0x545600.14
cmp eax, 9
je case.0x545600.14
cmp eax, 0x20
jmp 0x53a9a4
cmp eax, 0x1680
jmp 0x53a9a4
cmp eax, 0x205f
ja 0x53a99f
je case.0x545600.14
cmp eax, 0x2000
jb 0x539a0c
cmp eax, 0x200a
jbe case.0x545600.14
cmp eax, 0x202f
jmp 0x53a9a4
cmp eax, 0x3000
je case.0x545600.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x542cda
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53aab4
cmp eax, 0xc0
jb 0x53aab4
movzx ecx, byte [esi]
and ecx, 0x3f
test al, 0x20
jne 0x53a9f8
and eax, 0x1f
shl eax, 6
or eax, ecx
add esi, 1
jmp 0x53aab4
test al, 0x10
jne 0x53aa18
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 0x53aab4
test al, 8
jne 0x53aa44
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 0x53aab4
test al, 4
jne 0x53aa79
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 0x53aab4
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 0x53aae3
je 0x539a0c
cmp eax, 0xa0
ja 0x53aadc
je 0x539a0c
cmp eax, 9
je 0x539a0c
cmp eax, 0x20
jmp 0x53ab12
cmp eax, 0x1680
jmp 0x53ab12
cmp eax, 0x205f
ja 0x53ab0d
je 0x539a0c
cmp eax, 0x2000
jb case.0x545600.14
cmp eax, 0x200a
jbe 0x539a0c
cmp eax, 0x202f
jmp 0x53ab12
cmp eax, 0x3000
jne case.0x545600.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x542cda
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53ac22
cmp eax, 0xc0
jb 0x53ac22
movzx ecx, byte [esi]
and ecx, 0x3f
test al, 0x20
jne 0x53ab66
and eax, 0x1f
shl eax, 6
or eax, ecx
add esi, 1
jmp 0x53ac22
test al, 0x10
jne 0x53ab86
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 0x53ac22
test al, 8
jne 0x53abb2
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 0x53ac22
test al, 4
jne 0x53abe7
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 0x53ac22
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 0x53ac3d
je case.0x545600.14
cmp eax, 0xa
jb 0x539a0c
cmp eax, 0xd
jmp 0x53ac4d
cmp eax, 0x2028
jb 0x539a0c
cmp eax, 0x2029
jbe case.0x545600.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x542cda
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], ebp
je 0x53ad5d
cmp eax, 0xc0
jb 0x53ad5d
movzx ecx, byte [esi]
and ecx, 0x3f
test al, 0x20
jne 0x53aca1
and eax, 0x1f
shl eax, 6
or eax, ecx
add esi, 1
jmp 0x53ad5d
test al, 0x10
jne 0x53acc1
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 0x53ad5d
test al, 8
jne 0x53aced
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 0x53ad5d
test al, 4
jne 0x53ad22
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 0x53ad5d
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 0x53ad78
je 0x539a0c
cmp eax, 0xa
jb case.0x545600.14
cmp eax, 0xd
jmp 0x53ad88
cmp eax, 0x2028
jb case.0x545600.14
cmp eax, 0x2029
ja case.0x545600.14
add edx, 1
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x542cda
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x53aea9
cmp ecx, 0xc0
jb 0x53aea9
test cl, 0x20
jne 0x53addf
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x53aea9
test cl, 0x10
jne 0x53ae06
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 0x53aea9
test cl, 8
jne 0x53ae39
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 0x53aea9
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x53ae75
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 0x53aea9
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 + 0x5769d0]
mov edx, ecx
shl eax, 7
and edx, 0x8000007f
jns 0x53aecd
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 + 0x578bd0]
lea eax, [eax*8 + 0x575350]
ja case.default.0x53aeef
jmp dword [edx*4 + 0x5459a4]
cmp ebx, 0xf
jmp 0x53b101
mov al, byte [eax + 1]
cmp al, 9
je 0x53af1e
cmp al, 5
je 0x53af1e
cmp al, 8
je 0x53af1e
xor ecx, ecx
xor eax, eax
cmp ebx, 0xf
sete cl
cmp eax, ecx
jmp 0x53b101
xor ecx, ecx
cmp ebx, 0xf
sete cl
mov eax, 1
cmp eax, ecx
jmp 0x53b101
movzx edx, byte [eax + 1]
movzx eax, byte [edi + 2]
xor ecx, ecx
cmp eax, dword [edx*4 + 0x574890]
setne cl
xor edx, edx
cmp ebx, 0x10
sete dl
cmp ecx, edx
jmp 0x53b101
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 0x53b101
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 0x53b101
movzx ecx, byte [eax + 1]
mov eax, dword [ecx*4 + 0x574890]
cmp eax, 1
je 0x53b0f2
cmp eax, 3
je 0x53b0f2
xor eax, eax
jmp 0x53b0f7
cmp ecx, 0x180e
ja 0x53afef
je case.0x53aeef.0
cmp ecx, 0x85
ja 0x53afdb
je case.0x53aeef.0
cmp ecx, 9
jb case.0x53b00f.8203
cmp ecx, 0xd
jbe case.0x53aeef.0
cmp ecx, 0x20
jmp 0x53b028
cmp ecx, 0xa0
je case.0x53aeef.0
cmp ecx, 0x1680
jmp 0x53b028
cmp ecx, 0x202f
ja 0x53b016
je case.0x53aeef.0
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0x53b00f.8203
movzx ecx, byte [ecx + 0x5459d8]
jmp dword [ecx*4 + 0x5459d0]
cmp ecx, 0x205f
je case.0x53aeef.0
cmp ecx, 0x3000
je case.0x53aeef.0
movzx edx, byte [eax + 1]
xor eax, eax
cmp dword [edx*4 + 0x574890], 6
sete al
xor ecx, ecx
cmp ebx, 0xf
sete cl
cmp eax, ecx
jmp 0x53b101
movzx edx, byte [eax + 1]
mov eax, dword [edx*4 + 0x574890]
cmp eax, 1
je 0x53af1e
cmp eax, 3
je 0x53af1e
cmp ecx, 0x5f
je 0x53af1e
xor ecx, ecx
xor eax, eax
cmp ebx, 0xf
sete cl
cmp eax, ecx
jmp 0x53b101
movzx edx, byte [edi + 2]
mov eax, dword [edx*4 + 0x575210]
cmp ecx, eax
lea edx, [edx*4 + 0x575210]
jb 0x53b0ad
jmp 0x53b0a0
add edx, 4
cmp ecx, eax
je 0x53b0b2
mov eax, dword [edx]
cmp ecx, eax
jae 0x53b0a0
cmp ebx, 0x10
jmp 0x53b101
cmp ebx, 0x10
jne case.0x545600.14
add edi, 3
mov dword [esp + 0x14], edi
jmp 0x5388a0
cmp ecx, 0x24
je 0x53b0f2
cmp ecx, 0x40
je 0x53b0f2
cmp ecx, 0x60
je 0x53b0f2
cmp ecx, 0xa0
jb 0x53b0e6
cmp ecx, 0xd7ff
jbe 0x53b0f2
cmp ecx, 0xe000
jae 0x53b0f2
xor eax, eax
jmp 0x53b0f7
mov eax, 1
xor edx, edx
cmp ebx, 0xf
sete dl
cmp eax, edx
je case.0x545600.14
add edi, 3
mov dword [esp + 0x14], edi
jmp 0x5388a0
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + 0x78]
cmp esi, ebp
jae 0x5435c9
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x53b224
cmp ecx, 0xc0
jb 0x53b224
test cl, 0x20
jne 0x53b15a
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 1
jmp 0x53b224
test cl, 0x10
jne 0x53b181
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 0x53b224
test cl, 8
jne 0x53b1b4
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 0x53b224
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and eax, 0x3f
and edx, 0x3f
test cl, 4
jne 0x53b1f0
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 0x53b224
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x53b246
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
cmp esi, ebp
movzx eax, word [edx*2 + 0x578bd0]
movzx ebx, byte [eax*8 + 0x575352]
jae 0x53b3a3
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
mov edi, 1
je 0x53b353
cmp ecx, 0xc0
jb 0x53b353
test cl, 0x20
jne 0x53b29b
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x53b351
test cl, 0x10
jne 0x53b2c5
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 0x53b353
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x53b2e8
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x53b343
and eax, 0x3f
test cl, 4
jne 0x53b31e
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 0x53b353
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x53b375
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx ecx, byte [eax*8 + 0x575352]
mov edx, 1
shl edx, cl
test dword [ebx*4 + 0x57481c], edx
je 0x53b3a3
add esi, edi
cmp esi, ebp
mov ebx, ecx
jb 0x53b260
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je 0x53b3d9
cmp esi, ebp
jb 0x53b3d9
cmp esi, dword [eax + 0x84]
jbe 0x53b3d9
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jg 0x545757
add dword [esp + 0x14], ecx
jmp 0x5388a0
mov ecx, 1
add dword [esp + 0x14], ecx
jmp 0x5388a0
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 0x53b4b8
movzx ebx, byte [eax + 1]
mov bh, byte [eax]
sub ecx, 1
add ebx, ebx
cmp ebx, dword [esp + 0x170]
jge 0x53b44e
mov edx, dword [ebp + 0xc]
cmp dword [edx + ebx*4], 0
jge 0x53b45a
add eax, dword [ebp + 0x24]
test ecx, ecx
jg 0x53b431
jmp 0x53b4b8
mov eax, edx
mov edi, dword [eax + ebx*4 + 4]
sub edi, dword [eax + ebx*4]
lea eax, [eax + ebx*4]
jmp 0x53b4b8
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 0x53b4ac
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + ebx*4]
test ecx, ecx
lea eax, [edx + ebx*4]
jl 0x53b4ac
mov edi, dword [eax + 4]
sub edi, ecx
jmp 0x53b4b8
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.0x53b4d4
movzx edx, byte [edx + 0x545a0c]
jmp dword [edx*4 + 0x545a04]
movsx ebp, byte [eax + 0x57463e]
add dword [esp + 0x14], 1
add eax, 0xffffff9e
mov ecx, eax
movsx eax, byte [eax + 0x5746ac]
and ecx, 1
test eax, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], eax
jne 0x53b545
mov dword [esp + 0x18], closesocket
jmp 0x53b545
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 0x53b53e
mov dword [esp + 0x18], closesocket
add eax, 5
mov dword [esp + 0x14], eax
test edi, edi
je 0x5388a0
jge 0x53b557
test ebp, ebp
je 0x5388a0
cmp ebp, 1
mov dword [esp + 0x30], 1
jl 0x53b592
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.00538460
test eax, eax
jl 0x542ce5
add esi, eax
mov eax, dword [esp + 0x30]
add eax, 1
cmp eax, ebp
mov dword [esp + 0x30], eax
jle 0x53b564
mov eax, dword [esp + 0x18]
cmp ebp, eax
je 0x5388a0
cmp dword [esp + 0x34], 0
je 0x542cfa
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.005387a0
test eax, eax
jne 0x54576a
mov ebp, dword [esp + 0x10]
jmp 0x53b5f0
mov edx, dword [esp + 0x30]
cmp edx, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x38]
push eax
push ebp
mov eax, edi
mov ecx, esi
mov edx, ebx
call fcn.00538460
test eax, eax
jl 0x542dac
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.005387a0
test eax, eax
je 0x53b5f0
jmp 0x54576a
mov ecx, dword [esp + 0x38]
push ecx
push ebp
mov eax, edi
mov ecx, esi
mov edx, ebx
call fcn.00538460
test eax, eax
jl 0x542dac
add esi, eax
jmp 0x5388a0
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.0x53b69b
movzx edx, byte [edx + 0x545a1c]
jmp dword [edx*4 + 0x545a14]
lea eax, [ecx - 0x62]
add edi, 1
cmp eax, 8
mov dword [esp + 0x14], edi
jae 0x53b6bc
mov ecx, eax
and ecx, 1
mov dword [esp + 0x34], ecx
jmp 0x53b6c4
mov dword [esp + 0x3c], 1
movsx edx, byte [eax + 0x5746a0]
movsx eax, byte [eax + 0x5746ac]
test eax, eax
mov dword [esp + 0x18], eax
jne 0x53b72c
mov dword [esp + 0x18], closesocket
jmp 0x53b72c
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 0x53b71a
mov dword [esp + 0x18], closesocket
add edi, 5
mov dword [esp + 0x14], edi
jmp 0x53b72c
mov edx, 1
mov dword [esp + 0x18], edx
cmp dword [esp + 0x20], 0
mov edi, 1
je 0x53b87a
cmp edx, edi
jl 0x53b8b9
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
jmp 0x53b754
mov ebx, dword [esp + 0x40]
cmp esi, ebp
jae 0x5435c5
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53b843
movzx ecx, byte [esi]
and ecx, 0x3f
test al, 0x20
jne 0x53b787
and eax, 0x1f
shl eax, 6
or eax, ecx
add esi, 1
jmp 0x53b843
test al, 0x10
jne 0x53b7a7
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 0x53b843
test al, 8
jne 0x53b7d3
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 0x53b843
test al, 4
jne 0x53b808
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 0x53b843
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 0x53b84f
cmp ebx, 0x6e
jmp 0x53b867
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.0x545600.14
add edi, 1
cmp edi, edx
jle 0x53b750
jmp 0x53b8b9
cmp edx, 1
jl 0x53b8b9
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + 0x78]
cmp esi, ebp
jae 0x543a54
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.0x545600.14
add edi, 1
cmp edi, edx
jle 0x53b886
mov eax, dword [esp + 0x18]
cmp edx, eax
mov ecx, dword [esp + 0x10]
je 0x5388a0
cmp dword [esp + 0x34], 0
jne 0x542de9
cmp dword [esp + 0x20], 0
mov ebx, esi
mov dword [esp + 0x34], ebx
je 0x53bac5
cmp edx, eax
mov ebp, edx
jge 0x53ba35
mov edx, dword [ecx + 0x78]
cmp esi, edx
mov edi, 1
jae 0x53ba13
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x53b9d4
movzx ebx, byte [esi + 1]
and ebx, 0x3f
test al, 0x20
jne 0x53b928
and eax, 0x1f
shl eax, 6
mov edi, 2
jmp 0x53b9d2
test al, 0x10
jne 0x53b942
and eax, 0xf
shl eax, 6
or ebx, eax
movzx eax, byte [esi + 2]
mov edi, 3
jmp 0x53b9cc
test al, 8
jne 0x53b968
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 0x53b9cc
test al, 4
jne 0x53b997
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 0x53b9cc
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 0x53b9e4
cmp dword [esp + 0x40], 0x6e
je 0x53ba35
jmp 0x53ba02
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 0x53ba35
mov ecx, dword [esp + 0x10]
add ebp, 1
add esi, edi
cmp ebp, dword [esp + 0x18]
jl 0x53b8f2
jmp 0x53ba35
cmp dword [ecx + 0x88], 0
je 0x53ba35
cmp esi, dword [ecx + 0x84]
jbe 0x53ba35
mov eax, edi
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x88], eax
jg 0x545757
cmp dword [esp + 0x3c], 0
jne 0x5388a0
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.005387a0
test eax, eax
jne 0x54576a
mov edx, esi
sub esi, 1
cmp edx, dword [esp + 0x34]
je case.0x545600.14
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x53ba9e
lea esp, [esp]
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
je 0x53ba90
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.005387a0
test eax, eax
je 0x53ba75
jmp 0x54576a
cmp edx, eax
mov edi, edx
jge 0x53bb2c
mov ebp, dword [ecx + 0x78]
jmp 0x53bad8
mov ecx, dword [esp + 0x10]
cmp esi, ebp
jae 0x53bb07
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 0x53bb2c
add edi, 1
add esi, 1
cmp edi, dword [esp + 0x18]
jl 0x53bad4
jmp 0x53bb2c
cmp dword [ecx + 0x88], 0
je 0x53bb2c
cmp esi, dword [ecx + 0x84]
jbe 0x53bb2c
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x88], eax
jg 0x545757
cmp dword [esp + 0x3c], 0
jne 0x5388a0
cmp esi, ebx
jb case.0x545600.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.005387a0
test eax, eax
jne 0x54576a
sub esi, 1
cmp esi, dword [esp + 0x34]
jae 0x53bb50
xor eax, eax
jmp 0x54576a
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.0x53bbb8
movzx edx, byte [edx + 0x545a30]
jmp dword [edx*4 + 0x545a28]
lea eax, [ecx - 0x62]
add edi, 1
cmp eax, 8
mov dword [esp + 0x14], edi
jae 0x53bbd9
mov ecx, eax
and ecx, 1
mov dword [esp + 0x34], ecx
jmp 0x53bbe1
mov dword [esp + 0x3c], 1
movsx ebx, byte [eax + 0x5746a0]
movsx eax, byte [eax + 0x5746ac]
test eax, eax
mov dword [esp + 0x18], eax
jne 0x53bc49
mov dword [esp + 0x18], closesocket
jmp 0x53bc49
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 0x53bc37
mov dword [esp + 0x18], closesocket
add edi, 5
mov dword [esp + 0x14], edi
jmp 0x53bc49
mov ebx, 1
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x20]
mov edi, 1
cmp ebx, edi
jl 0x53bd86
lea ebx, [ebx]
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx eax, byte [esi]
add esi, 1
test ebp, ebp
je 0x53bd67
cmp eax, 0xc0
jb 0x53bd67
test al, 0x20
jne 0x53bca0
movzx ecx, byte [esi]
and eax, 0x1f
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 1
jmp 0x53bd67
test al, 0x10
jne 0x53bcc6
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 0x53bd67
test al, 8
jne 0x53bcf8
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 0x53bd67
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0x3f
and edx, 0x3f
test al, 4
jne 0x53bd33
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 0x53bd67
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.00547720
test eax, eax
je case.0x545600.14
add edi, 1
cmp edi, ebx
jle 0x53bc60
cmp ebx, dword [esp + 0x18]
je 0x5388a0
cmp dword [esp + 0x34], 0
jne 0x54303c
cmp ebx, dword [esp + 0x18]
mov dword [esp + 0x34], esi
jge 0x53bee9
lea esp, [esp]
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
mov edi, 1
jae 0x53bec9
test ebp, ebp
movzx eax, byte [esi]
je 0x53bea8
cmp eax, 0xc0
jb 0x53bea8
test al, 0x20
jne 0x53bdf3
movzx ecx, byte [esi + 1]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edi, 2
jmp 0x53bea6
test al, 0x10
jne 0x53be1c
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 0x53bea8
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
and ecx, 0x3f
test al, 8
jne 0x53be3e
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [esi + 3]
mov edi, 4
jmp 0x53be98
and edx, 0x3f
test al, 4
jne 0x53be73
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 0x53bea8
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.00547720
test eax, eax
je 0x53bee9
add ebx, 1
add esi, edi
cmp ebx, dword [esp + 0x18]
jl 0x53bdb0
jmp 0x53bee9
cmp dword [eax + 0x88], 0
je 0x53bee9
cmp esi, dword [eax + 0x84]
jbe 0x53bee9
mov dword [eax + 0x64], edi
cmp dword [eax + 0x88], edi
jg 0x545757
cmp dword [esp + 0x3c], 0
jne 0x5388a0
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.005387a0
test eax, eax
jne 0x54576a
lea esp, [esp]
mov eax, esi
sub esi, 1
cmp eax, dword [esp + 0x34]
je case.0x545600.14
cmp dword [esp + 0x20], 0
je 0x53bf5e
mov cl, byte [esi]
and cl, 0xc0
cmp cl, 0x80
jne 0x53bf5e
mov dl, byte [esi - 1]
sub esi, 1
and dl, 0xc0
cmp dl, 0x80
je 0x53bf50
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.005387a0
test eax, eax
je 0x53bf30
jmp 0x54576a
cmp dword [esp + 0x20], ebp
je 0x53c015
mov eax, dword [esp + 0x14]
mov ecx, 1
add eax, ecx
mov dword [esp + 0x14], eax
movzx eax, byte [eax]
cmp eax, 0xc0
jb 0x53bfd6
test al, 0x20
jne 0x53bfb3
mov ecx, 2
jmp 0x53bfd6
test al, 0x10
jne 0x53bfbe
mov ecx, 3
jmp 0x53bfd6
test al, 8
jne 0x53bfc9
mov ecx, 4
jmp 0x53bfd6
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 0x5431d4
test ecx, ecx
jle 0x5388a0
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.0x545600.14
test ecx, ecx
jg 0x53bff3
jmp 0x5388a0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x78]
sub ecx, esi
cmp ecx, 1
jl 0x5431ec
mov al, byte [esi]
add esi, 1
cmp byte [edx + 1], al
jne case.0x545600.14
add edx, 2
mov dword [esp + 0x14], edx
jmp 0x5388a0
mov edi, dword [esp + 0x10]
cmp esi, dword [edi + 0x78]
jae 0x543217
cmp dword [esp + 0x20], ebp
je 0x53c2c3
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 0x53c15c
movzx eax, byte [edx + 1]
and eax, 0x3f
test cl, 0x20
jne 0x53c095
and ecx, 0x1f
shl ecx, 6
or ecx, eax
mov eax, 2
jmp 0x53c15c
test cl, 0x10
jne 0x53c0b8
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 0x53c15c
test cl, 8
jne 0x53c0e7
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 0x53c15c
test cl, 4
jne 0x53c11f
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 0x53c15c
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 0x53c185
mov eax, dword [edi + 0x38]
movzx edi, byte [esi]
mov cl, byte [ecx + eax]
cmp cl, byte [edi + eax]
jne case.0x545600.14
add edx, 1
mov dword [esp + 0x14], edx
add esi, 1
jmp 0x5388a0
movzx ebx, byte [esi]
add esi, 1
cmp ebx, 0xc0
jb 0x53c271
movzx edx, byte [esi]
and edx, 0x3f
test bl, 0x20
jne 0x53c1b2
and ebx, 0x1f
shl ebx, 6
or ebx, edx
add esi, 1
jmp 0x53c271
test bl, 0x10
jne 0x53c1d3
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 0x53c271
test bl, 8
jne 0x53c200
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 0x53c271
test bl, 4
jne 0x53c236
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 0x53c271
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 0x5388a0
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5769d0]
mov edx, ecx
shl eax, 7
and edx, 0x8000007f
jns 0x53c2a1
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x578bd0]
mov edx, dword [eax*8 + 0x575354]
add edx, ecx
cmp ebx, edx
je 0x5388a0
xor eax, eax
jmp 0x54576a
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.0x545600.14
add esi, 1
add edx, 2
mov dword [esp + 0x14], edx
jmp 0x5388a0
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 0x53c3cd
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 0x53c32a
cmp al, 0x35
mov dword [esp + 0x34], ebp
jne 0x53c332
mov dword [esp + 0x34], 1
mov edi, dword [esp + 0x2c]
add edx, 3
mov dword [esp + 0x14], edx
jmp 0x53c3cd
xor edi, edi
add edx, 1
mov dword [esp + 0x3c], 1
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], edx
jmp 0x53c3c5
mov edi, 1
add edx, edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], edx
jmp 0x53c3c5
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 0x53c3cd
cmp ebx, 0x2e
sbb ecx, ecx
and ecx, 0xfffffff3
add ecx, 0x2e
mov eax, ebx
sub eax, ecx
movsx edi, byte [eax + 0x5746a0]
mov ecx, eax
movsx eax, byte [eax + 0x5746ac]
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 0x53c3cd
mov dword [esp + 0x18], closesocket
cmp dword [esp + 0x20], ebp
mov eax, dword [esp + 0x14]
movzx ebx, byte [eax]
je 0x53c90d
cmp ebx, 0xc0
mov ebp, 1
mov dword [esp + 0x38], ebp
mov dword [esp + 0x4c], eax
jb 0x53c4bb
test bl, 0x20
jne 0x53c415
movzx edx, byte [eax + 1]
and ebx, 0x1f
and edx, 0x3f
shl ebx, 6
or ebx, edx
mov ebp, 2
jmp 0x53c4b7
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
and ecx, 0x3f
test bl, 0x10
jne 0x53c437
and ebx, 0xf
shl ebx, 6
or ecx, ebx
mov ebp, 3
jmp 0x53c4ad
and edx, 0x3f
test bl, 8
jne 0x53c457
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, edx
movzx edx, byte [eax + 3]
mov ebp, 4
jmp 0x53c4ad
test bl, 4
jne 0x53c480
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 0x53c4ad
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 0x53c914
cmp dword [esp + 0x40], 0x2e
jb 0x53c520
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5769d0]
mov ecx, ebx
shl eax, 7
and ecx, 0x8000007f
jns 0x53c4f5
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx edx, word [eax*2 + 0x578bd0]
mov eax, dword [edx*8 + 0x575354]
add eax, ebx
cmp eax, ebx
je 0x53c520
lea ecx, [esp + 0x154]
push ecx
push eax
call fcn.00547350
mov dword [esp + 0x40], eax
jmp 0x53c528
mov dword [esp + 0x40], 0
cmp edi, 1
mov dword [esp + 0x30], 1
jl 0x53c6be
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 0x53c554
mov ecx, dword [esp + 0x50]
cmp esi, ecx
ja 0x53c5f6
cmp ebp, 4
mov ecx, dword [esp + 0x4c]
mov eax, ebp
mov edx, esi
jb 0x53c584
lea esp, [esp]
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x53c588
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x53c570
test eax, eax
je 0x53c5e5
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x53c5d7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c5e5
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x53c5d7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c5e5
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x53c5d7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c5e5
movzx edi, byte [edx]
movzx eax, byte [ecx]
sub edi, eax
je 0x53c5e5
test edi, edi
mov eax, 1
jg 0x53c5e7
or eax, 0xffffffff
jmp 0x53c5e7
xor eax, eax
test eax, eax
mov eax, dword [esp + 0x40]
jne 0x53c5f6
add esi, ebp
jmp 0x53c6a5
test eax, eax
jle 0x543222
mov ecx, dword [esp + 0x24]
sub ecx, eax
cmp esi, ecx
ja 0x543222
cmp eax, 4
lea ecx, [esp + 0x154]
mov edx, esi
jb 0x53c634
lea ebx, [ebx]
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x53c638
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x53c620
test eax, eax
je 0x53c695
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x53c687
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c695
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x53c687
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c695
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x53c687
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c695
movzx edi, byte [edx]
movzx edx, byte [ecx]
sub edi, edx
je 0x53c695
test edi, edi
mov eax, 1
jg 0x53c697
or eax, 0xffffffff
jmp 0x53c697
xor eax, eax
test eax, eax
jne 0x543222
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 0x53c550
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
cmp edi, eax
je 0x5388a0
cmp dword [esp + 0x34], 0
jne 0x54325b
cmp edi, eax
mov dword [esp + 0x34], esi
mov ebx, edi
jge 0x53c896
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x78]
mov dword [esp + 0x24], eax
sub eax, ebp
mov dword [esp + 0x50], eax
jmp 0x53c704
mov eax, dword [esp + 0x50]
cmp esi, eax
ja 0x53c7aa
cmp ebp, 4
mov ecx, dword [esp + 0x4c]
mov eax, ebp
mov edx, esi
jb 0x53c734
lea esp, [esp]
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x53c738
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x53c720
test eax, eax
je 0x53c79d
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x53c787
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c799
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x53c787
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c799
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x53c787
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c799
movzx edi, byte [edx]
movzx ecx, byte [ecx]
sub edi, ecx
je 0x53c799
test edi, edi
mov ebp, dword [esp + 0x38]
mov eax, 1
jg 0x53c79f
or eax, 0xffffffff
jmp 0x53c79f
mov ebp, dword [esp + 0x38]
xor eax, eax
test eax, eax
jne 0x53c7aa
add esi, ebp
jmp 0x53c859
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x53c868
mov edx, dword [esp + 0x24]
sub edx, eax
cmp esi, edx
ja 0x53c868
cmp eax, 4
lea ecx, [esp + 0x154]
mov edx, esi
jb 0x53c7e6
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x53c7ea
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x53c7d2
test eax, eax
je 0x53c84f
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x53c839
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c84b
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x53c839
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c84b
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x53c839
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x53c84b
movzx edi, byte [edx]
movzx eax, byte [ecx]
sub edi, eax
je 0x53c84b
test edi, edi
mov ebp, dword [esp + 0x38]
mov eax, 1
jg 0x53c851
or eax, 0xffffffff
jmp 0x53c851
mov ebp, dword [esp + 0x38]
xor eax, eax
test eax, eax
jne 0x53c868
add esi, dword [esp + 0x40]
add ebx, 1
cmp ebx, dword [esp + 0x18]
jl 0x53c700
jmp 0x53c896
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x88], 0
je 0x53c896
cmp esi, dword [ecx + 0x78]
jb 0x53c896
cmp esi, dword [ecx + 0x84]
jbe 0x53c896
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x88], eax
jg 0x545757
cmp dword [esp + 0x3c], 0
jne 0x5388a0
cmp esi, dword [esp + 0x34]
jbe 0x541e43
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.005387a0
test eax, eax
jne 0x54576a
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
jne 0x53c902
mov dl, byte [esi - 1]
sub esi, 1
and dl, 0xc0
cmp dl, 0x80
je 0x53c8f4
cmp esi, dword [esp + 0x34]
ja 0x53c8c0
jmp 0x541e43
add eax, 1
mov dword [esp + 0x14], eax
cmp dword [esp + 0x40], 0x2e
jb 0x53ca34
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 0x53c963
mov edx, dword [edi + 0x78]
lea esp, [esp]
cmp esi, edx
jae 0x543ad2
movzx eax, byte [esi]
cmp ebx, eax
je 0x53c957
cmp ebp, eax
jne case.0x545600.14
add ecx, 1
add esi, 1
cmp ecx, dword [esp + 0x2c]
jle 0x53c940
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x2c], edx
je 0x5388a0
cmp dword [esp + 0x34], 0
jne 0x543485
mov ecx, dword [esp + 0x2c]
cmp ecx, edx
mov dword [esp + 0x34], esi
jge 0x53c9d2
mov edx, dword [edi + 0x78]
jmp 0x53c990
cmp esi, edx
jae 0x53c9ad
movzx eax, byte [esi]
cmp ebx, eax
je 0x53c99f
cmp ebp, eax
jne 0x53c9d2
add ecx, 1
add esi, 1
cmp ecx, dword [esp + 0x18]
jl 0x53c990
jmp 0x53c9d2
cmp dword [edi + 0x88], 0
je 0x53c9d2
cmp esi, dword [edi + 0x84]
jbe 0x53c9d2
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x88], eax
jg 0x545757
cmp dword [esp + 0x3c], 0
jne 0x5388a0
cmp esi, dword [esp + 0x34]
je 0x541e43
mov ebp, dword [esp + 0x170]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
jmp 0x53ca00
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.005387a0
sub esi, 1
test eax, eax
jne 0x54576a
cmp esi, dword [esp + 0x34]
jne 0x53ca00
jmp 0x541e43
mov edx, dword [esp + 0x10]
mov eax, 1
cmp edi, eax
jl 0x53ca61
mov ecx, dword [edx + 0x78]
cmp esi, ecx
jae 0x54572a
movzx ebp, byte [esi]
add esi, 1
cmp ebx, ebp
jne case.0x545600.14
add eax, 1
cmp eax, edi
jle 0x53ca44
cmp edi, dword [esp + 0x18]
je 0x5388a0
cmp dword [esp + 0x34], 0
jne 0x543520
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x18]
mov edi, esi
mov dword [esp + 0x34], edi
jge 0x53cace
mov ecx, dword [edx + 0x78]
lea esp, [esp]
cmp esi, ecx
jae 0x53caa9
movzx ebp, byte [esi]
cmp ebx, ebp
jne 0x53cace
add eax, 1
add esi, 1
cmp eax, dword [esp + 0x18]
jl 0x53ca90
jmp 0x53cace
cmp dword [edx + 0x88], 0
je 0x53cace
cmp esi, dword [edx + 0x84]
jbe 0x53cace
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x88], eax
jg 0x545757
cmp dword [esp + 0x3c], 0
jne 0x5388a0
cmp esi, edi
je 0x541e43
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.005387a0
sub esi, 1
test eax, eax
jne 0x54576a
cmp esi, dword [esp + 0x34]
jne 0x53caf0
jmp 0x541e43
mov edx, dword [esp + 0x10]
cmp esi, dword [edx + 0x78]
jae 0x5435ba
cmp dword [esp + 0x20], ebp
je 0x53cd8e
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 0x53cc34
movzx ecx, byte [eax]
and ecx, 0x3f
test bl, 0x20
jne 0x53cb74
and ebx, 0x1f
shl ebx, 6
or ebx, ecx
add eax, 1
jmp 0x53cc30
test bl, 0x10
jne 0x53cb95
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 0x53cc30
test bl, 8
jne 0x53cbbf
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 0x53cc30
test bl, 4
jne 0x53cbf5
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 0x53cc30
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 0x53cd1d
movzx eax, byte [esi]
and eax, 0x3f
test cl, 0x20
jne 0x53cc61
and ecx, 0x1f
shl ecx, 6
or ecx, eax
add esi, 1
jmp 0x53cd1d
test cl, 0x10
jne 0x53cc82
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 0x53cd1d
test cl, 8
jne 0x53ccac
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 0x53cd1d
test cl, 4
jne 0x53cce2
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 0x53cd1d
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 0x53cd33
cmp ebx, ecx
jne 0x5388a0
xor eax, eax
jmp 0x54576a
cmp ebx, 0x7f
jbe 0x53cd70
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x5769d0]
mov eax, ebx
shl edx, 7
and eax, 0x8000007f
jns 0x53cd5b
dec eax
or eax, 0xffffff80
inc eax
add edx, eax
movzx edx, word [edx*2 + 0x578bd0]
mov eax, dword [edx*8 + 0x575354]
add eax, ebx
jmp 0x53cd77
mov eax, dword [edx + 0x3c]
movzx eax, byte [eax + ebx]
cmp ebx, ecx
je case.0x545600.14
cmp eax, ecx
jne 0x5388a0
xor eax, eax
jmp 0x54576a
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + 1]
movzx ecx, byte [esi]
add esi, 1
cmp eax, ecx
je case.0x545600.14
cmp ebx, 0x20
jne 0x53cdb8
mov edx, dword [edx + 0x3c]
movzx eax, byte [edx + eax]
cmp eax, ecx
je case.0x545600.14
add dword [esp + 0x14], 2
jmp 0x5388a0
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 0x53ce85
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 0x53cdf2
cmp al, 0x4f
mov dword [esp + 0x34], ebp
jne 0x53cdfa
mov dword [esp + 0x34], 1
add edx, 3
jmp 0x53ce85
xor edi, edi
mov dword [esp + 0x3c], 1
add edx, 1
jmp 0x53ce7d
mov edi, 1
mov dword [esp + 0x3c], edi
add edx, edi
jmp 0x53ce7d
mov eax, 1
xor edi, edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x18], eax
add edx, eax
jmp 0x53ce85
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 0x53ce85
cmp ebx, 0x48
sbb ecx, ecx
and ecx, 0xfffffff3
add ecx, 0x48
mov eax, ebx
sub eax, ecx
movsx edi, byte [eax + 0x5746a0]
mov ecx, eax
movsx eax, byte [eax + 0x5746ac]
and ecx, 1
add edx, 1
cmp eax, ebp
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], eax
jne 0x53ce85
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 0x53cf83
cmp ebx, 0xc0
jb 0x53cf83
test bl, 0x20
jne 0x53ceca
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 0x53cf7b
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x53cef1
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add edx, 2
jmp 0x53cf77
test bl, 8
jne 0x53cf14
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 0x53cf77
test bl, 4
jne 0x53cf43
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 0x53cf77
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 0x53d3d4
test ebp, ebp
je 0x53cfd0
cmp ebx, 0x7f
jbe 0x53cfd0
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x5769d0]
mov edx, ebx
shl ecx, 7
and edx, 0x8000007f
jns 0x53cfbb
dec edx
or edx, 0xffffff80
inc edx
add ecx, edx
movzx eax, word [ecx*2 + 0x578bd0]
mov eax, dword [eax*8 + 0x575354]
add eax, ebx
jmp 0x53cfdb
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x3c]
movzx eax, byte [edx + ebx]
test ebp, ebp
mov dword [esp + 0x38], eax
je 0x53d10b
mov ecx, 1
cmp edi, ecx
jl 0x53d147
mov edx, dword [esp + 0x10]
mov ebp, dword [edx + 0x78]
jmp 0x53d000
cmp esi, ebp
jae 0x543a54
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53d0ec
movzx edx, byte [esi]
and edx, 0x3f
test al, 0x20
jne 0x53d033
and eax, 0x1f
shl eax, 6
or eax, edx
add esi, 1
jmp 0x53d0ec
test al, 0x10
jne 0x53d053
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 0x53d0ec
test al, 8
jne 0x53d07c
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 0x53d0ec
test al, 4
jne 0x53d0b1
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 0x53d0ec
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.0x545600.14
cmp dword [esp + 0x38], eax
je case.0x545600.14
add ecx, 1
cmp ecx, edi
jle 0x53d000
jmp 0x53d147
mov edx, 1
cmp edi, edx
jl 0x53d147
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
jmp 0x53d120
cmp esi, ebp
jae 0x5435c5
movzx eax, byte [esi]
cmp ebx, eax
je case.0x545600.14
cmp dword [esp + 0x38], eax
je case.0x545600.14
add edx, 1
add esi, 1
cmp edx, edi
jle 0x53d120
mov edx, dword [esp + 0x18]
cmp edi, edx
je 0x5388a0
cmp dword [esp + 0x34], 0
jne 0x5435f5
cmp dword [esp + 0x20], 0
mov dword [esp + 0x34], esi
je 0x53d32b
cmp edi, edx
jge 0x53d2bb
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
mov edx, dword [esp + 0x38]
jmp 0x53d186
mov eax, dword [esp + 0x10]
cmp esi, ebp
mov ecx, 1
jae 0x53d29b
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x53d282
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x53d1be
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x53d282
test al, 0x10
jne 0x53d1e0
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 0x53d282
test al, 8
jne 0x53d20e
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 0x53d282
test al, 4
jne 0x53d245
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 0x53d282
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 0x53d2bb
cmp edx, eax
je 0x53d2bb
add edi, 1
add esi, ecx
cmp edi, dword [esp + 0x18]
jl 0x53d182
jmp 0x53d2bb
cmp dword [eax + 0x88], 0
je 0x53d2bb
cmp esi, dword [eax + 0x84]
jbe 0x53d2bb
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jg 0x545757
cmp dword [esp + 0x3c], 0
jne 0x5388a0
cmp esi, dword [esp + 0x34]
jbe 0x541e43
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.005387a0
test eax, eax
jne 0x54576a
mov al, byte [esi - 1]
sub esi, 1
and al, 0xc0
cmp al, 0x80
jne 0x53d320
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
je 0x53d312
cmp esi, dword [esp + 0x34]
ja 0x53d2e0
jmp 0x541e43
cmp edi, edx
mov ecx, edi
jge 0x53d37a
mov ebp, dword [esp + 0x10]
mov edi, dword [ebp + 0x78]
cmp esi, edi
jae 0x53d355
movzx eax, byte [esi]
cmp ebx, eax
je 0x53d37a
cmp dword [esp + 0x38], eax
je 0x53d37a
add ecx, 1
add esi, 1
cmp ecx, edx
jl 0x53d338
jmp 0x53d37a
cmp dword [ebp + 0x88], 0
je 0x53d37a
cmp esi, dword [ebp + 0x84]
jbe 0x53d37a
mov eax, 1
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x88], eax
jg 0x545757
cmp dword [esp + 0x3c], 0
jne 0x5388a0
cmp esi, dword [esp + 0x34]
je 0x541e43
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.005387a0
test eax, eax
jne 0x54576a
sub esi, 1
cmp esi, dword [esp + 0x34]
jne 0x53d3a0
jmp 0x541e43
test ebp, ebp
je 0x53d4f6
mov ecx, 1
cmp edi, ecx
jl 0x53d527
mov ebx, dword [esp + 0x10]
mov ebp, dword [ebx + 0x78]
cmp esi, ebp
jae 0x543816
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53d4df
movzx edx, byte [esi]
and edx, 0x3f
test al, 0x20
jne 0x53d423
and eax, 0x1f
shl eax, 6
or eax, edx
add esi, 1
jmp 0x53d4df
test al, 0x10
jne 0x53d443
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 0x53d4df
test al, 8
jne 0x53d46f
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 0x53d4df
test al, 4
jne 0x53d4a4
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 0x53d4df
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.0x545600.14
add ecx, 1
cmp ecx, edi
jle 0x53d3f0
jmp 0x53d52b
mov eax, 1
cmp edi, eax
jl 0x53d527
mov ebx, dword [esp + 0x10]
mov edx, dword [ebx + 0x78]
cmp esi, edx
jae 0x543816
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x30], ecx
je case.0x545600.14
add eax, 1
cmp eax, edi
jle 0x53d506
jmp 0x53d52b
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
cmp edi, ecx
je 0x5388a0
cmp dword [esp + 0x34], 0
jne 0x543842
cmp dword [esp + 0x20], 0
mov edx, esi
mov dword [esp + 0x34], edx
je 0x53d70b
cmp edi, ecx
jge 0x53d697
mov ebp, dword [ebx + 0x78]
jmp 0x53d564
mov ebx, dword [esp + 0x10]
cmp esi, ebp
mov ecx, 1
jae 0x53d677
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x53d660
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x53d59c
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x53d660
test al, 0x10
jne 0x53d5be
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 0x53d660
test al, 8
jne 0x53d5ec
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 0x53d660
test al, 4
jne 0x53d623
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 0x53d660
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 0x53d697
add edi, 1
add esi, ecx
cmp edi, dword [esp + 0x18]
jl 0x53d560
jmp 0x53d697
cmp dword [ebx + 0x88], 0
je 0x53d697
cmp esi, dword [ebx + 0x84]
jbe 0x53d697
mov dword [ebx + 0x64], ecx
cmp dword [ebx + 0x88], ecx
jg 0x545757
cmp dword [esp + 0x3c], 0
jne 0x5388a0
cmp esi, edx
jbe 0x541e43
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.005387a0
test eax, eax
jne 0x54576a
mov dl, byte [esi - 1]
sub esi, 1
and dl, 0xc0
cmp dl, 0x80
jne 0x53d700
mov al, byte [esi - 1]
sub esi, 1
and al, 0xc0
cmp al, 0x80
je 0x53d6f4
cmp esi, dword [esp + 0x34]
ja 0x53d6c0
jmp 0x541e43
cmp edi, ecx
mov eax, edi
jge 0x53d75a
mov ecx, dword [ebx + 0x78]
jmp 0x53d71a
mov ebx, dword [esp + 0x10]
cmp esi, ecx
jae 0x53d735
movzx edi, byte [esi]
cmp dword [esp + 0x30], edi
je 0x53d75a
add eax, 1
add esi, 1
cmp eax, dword [esp + 0x18]
jl 0x53d716
jmp 0x53d75a
cmp dword [ebx + 0x88], 0
je 0x53d75a
cmp esi, dword [ebx + 0x84]
jbe 0x53d75a
mov eax, 1
mov dword [ebx + 0x64], eax
cmp dword [ebx + 0x88], eax
jg 0x545757
cmp dword [esp + 0x3c], 0
jne 0x5388a0
cmp esi, edx
je 0x541e43
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.005387a0
test eax, eax
jne 0x54576a
sub esi, 1
cmp esi, dword [esp + 0x34]
jne 0x53d780
jmp 0x541e43
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 0x53d88b
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 0x53d88b
mov dword [esp + 0x3c], 1
mov dword [esp + 0x2c], ebp
add edx, 1
mov ebx, ebp
jmp 0x53d883
mov eax, 1
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], eax
add edx, eax
mov ebx, eax
jmp 0x53d883
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 0x53d88b
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 0x53d88b
lea eax, [ebx - 0x55]
movsx ebx, byte [eax + 0x5746a0]
mov ecx, eax
movsx eax, byte [eax + 0x5746ac]
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 0x53d88b
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 0x53d8ac
cmp edi, 0xf
je 0x53d8ac
mov ebp, dword [esp + 0x44]
or eax, 0xffffffff
jmp 0x53d8cf
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 0x53fad7
test eax, eax
jl 0x53e7b3
cmp eax, 0xa
ja case.default.0x53aeef
jmp dword [eax*4 + 0x545a3c]
test ebp, ebp
jne case.0x545600.14
lea ecx, [ebp + 1]
cmp ebx, ecx
jl 0x53fad7
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
mov ebp, dword [esp + 0x20]
cmp esi, edx
jae 0x543ad2
movzx eax, byte [esi]
add esi, 1
test ebp, ebp
je 0x53d951
cmp eax, 0xc0
jb 0x53d951
test al, 0x20
jne 0x53d933
add esi, 1
jmp 0x53d951
test al, 0x10
jne 0x53d93c
add esi, 2
jmp 0x53d951
test al, 8
jne 0x53d945
add esi, 3
jmp 0x53d951
test al, 4
jne 0x53d94e
add esi, 4
jmp 0x53d951
add esi, 5
add ecx, 1
cmp ecx, ebx
jle 0x53d911
jmp 0x53dae7
mov edi, 1
cmp ebx, edi
jl 0x53fad7
mov edx, dword [esp + 0x10]
mov ebp, dword [edx + 0x78]
mov ebx, dword [esp + 0x20]
cmp esi, ebp
jae 0x543a54
movzx ecx, byte [esi]
add esi, 1
test ebx, ebx
je 0x53da7c
cmp ecx, 0xc0
jb 0x53da7c
test cl, 0x20
jne 0x53d9b2
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 1
jmp 0x53da7c
test cl, 0x10
jne 0x53d9d9
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 0x53da7c
test cl, 8
jne 0x53da0c
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 0x53da7c
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and eax, 0x3f
and edx, 0x3f
test cl, 4
jne 0x53da48
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 0x53da7c
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x53da9e
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx eax, byte [eax*8 + 0x575351]
cmp eax, 9
je 0x53dac3
cmp eax, 5
je 0x53dac3
cmp eax, 8
je 0x53dac3
xor eax, eax
jmp 0x53dac8
mov eax, 1
cmp eax, dword [esp + 0x44]
je case.0x545600.14
add edi, 1
cmp edi, dword [esp + 0x2c]
jle 0x53d975
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x18]
cmp ebx, ebp
je 0x5388a0
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x4c]
jne 0x543afe
test eax, eax
mov dword [esp + 0x34], esi
jl 0x540a59
cmp eax, 0xa
ja case.default.0x53aeef
jmp dword [eax*4 + 0x545a68]
mov edi, 1
cmp ebx, edi
jl 0x53fad7
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + 0x78]
mov ebx, dword [esp + 0x20]
cmp esi, ebp
jae 0x543a54
movzx ecx, byte [esi]
add esi, 1
test ebx, ebx
je 0x53dc3d
cmp ecx, 0xc0
jb 0x53dc3d
test cl, 0x20
jne 0x53db73
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x53dc3d
test cl, 0x10
jne 0x53db9a
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 0x53dc3d
test cl, 8
jne 0x53dbcd
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 0x53dc3d
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x53dc09
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 0x53dc3d
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 + 0x5769d0]
shl eax, 7
and ecx, 0x8000007f
jns 0x53dc5f
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx ecx, word [eax*2 + 0x578bd0]
movzx edx, byte [ecx*8 + 0x575351]
mov ecx, dword [esp + 0x48]
xor eax, eax
cmp dword [edx*4 + 0x574890], ecx
sete al
cmp eax, dword [esp + 0x44]
je case.0x545600.14
add edi, 1
cmp edi, dword [esp + 0x2c]
jle 0x53db36
jmp 0x53dadf
mov edi, 1
cmp ebx, edi
jl 0x53fad7
mov edx, dword [esp + 0x10]
mov ebp, dword [edx + 0x78]
mov ebx, dword [esp + 0x20]
cmp esi, ebp
jae 0x543a54
movzx ecx, byte [esi]
add esi, 1
test ebx, ebx
je 0x53ddbc
cmp ecx, 0xc0
jb 0x53ddbc
test cl, 0x20
jne 0x53dcf2
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 1
jmp 0x53ddbc
test cl, 0x10
jne 0x53dd19
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 0x53ddbc
test cl, 8
jne 0x53dd4c
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 0x53ddbc
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and eax, 0x3f
and edx, 0x3f
test cl, 4
jne 0x53dd88
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 0x53ddbc
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x53ddde
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx ecx, byte [eax*8 + 0x575351]
xor edx, edx
cmp ecx, dword [esp + 0x48]
sete dl
cmp edx, dword [esp + 0x44]
je case.0x545600.14
add edi, 1
cmp edi, dword [esp + 0x2c]
jle 0x53dcb5
jmp 0x53dadf
mov edi, 1
cmp ebx, edi
jl 0x53fad7
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
mov ebx, dword [esp + 0x20]
lea ecx, [ecx]
cmp esi, ebp
jae 0x543a54
movzx ecx, byte [esi]
add esi, 1
test ebx, ebx
je 0x53df37
cmp ecx, 0xc0
jb 0x53df37
test cl, 0x20
jne 0x53de6d
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x53df37
test cl, 0x10
jne 0x53de94
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 0x53df37
test cl, 8
jne 0x53dec7
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 0x53df37
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x53df03
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 0x53df37
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 + 0x5769d0]
shl eax, 7
and ecx, 0x8000007f
jns 0x53df59
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx ecx, word [eax*2 + 0x578bd0]
movzx edx, byte [ecx*8 + 0x575350]
xor eax, eax
cmp edx, dword [esp + 0x48]
sete al
cmp eax, dword [esp + 0x44]
je case.0x545600.14
add edi, 1
cmp edi, dword [esp + 0x2c]
jle 0x53de30
jmp 0x53dadf
mov edi, 1
cmp ebx, edi
jl 0x53fad7
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx + 0x78]
mov ebx, dword [esp + 0x20]
cmp esi, ebp
jae 0x543a54
movzx ecx, byte [esi]
add esi, 1
test ebx, ebx
je 0x53e0af
cmp ecx, 0xc0
jb 0x53e0af
test cl, 0x20
jne 0x53dfe5
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x53e0af
test cl, 0x10
jne 0x53e00c
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 0x53e0af
test cl, 8
jne 0x53e03f
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 0x53e0af
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x53e07b
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 0x53e0af
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 + 0x5769d0]
shl eax, 7
and ecx, 0x8000007f
jns 0x53e0d1
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx ecx, word [eax*2 + 0x578bd0]
movzx edx, byte [ecx*8 + 0x575351]
mov eax, dword [edx*4 + 0x574890]
cmp eax, 1
je 0x53e0f8
cmp eax, 3
je 0x53e0f8
xor eax, eax
jmp 0x53e0fd
mov eax, 1
cmp eax, dword [esp + 0x44]
je case.0x545600.14
add edi, 1
cmp edi, dword [esp + 0x2c]
jle 0x53dfa8
jmp 0x53dadf
mov edi, 1
cmp ebx, edi
jl 0x53fad7
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
lea ebp, [edi + 5]
cmp esi, ebx
jae 0x543a54
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x53e23a
cmp ecx, 0xc0
jb 0x53e23a
test cl, 0x20
jne 0x53e170
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x53e23a
test cl, 0x10
jne 0x53e197
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 0x53e23a
test cl, 8
jne 0x53e1ca
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 0x53e23a
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x53e206
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 0x53e23a
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 0x53e27d
je case.0x53e29d.8192
cmp ecx, 0x85
ja 0x53e269
je case.0x53e29d.8192
cmp ecx, 9
jb case.0x53e29d.8203
cmp ecx, 0xd
jbe case.0x53e29d.8192
cmp ecx, 0x20
jmp 0x53e2b2
cmp ecx, 0xa0
je case.0x53e29d.8192
cmp ecx, 0x1680
jmp 0x53e2b2
cmp ecx, 0x202f
ja 0x53e2a4
je case.0x53e29d.8192
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x53e29d.8203
movzx eax, byte [eax + 0x545a9c]
jmp dword [eax*4 + 0x545a94]
cmp ecx, 0x205f
je case.0x53e29d.8192
cmp ecx, 0x3000
je case.0x53e29d.8192
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x53e2d6
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx ecx, byte [eax*8 + 0x575351]
xor edx, edx
cmp dword [ecx*4 + 0x574890], ebp
sete dl
cmp edx, dword [esp + 0x44]
je case.0x545600.14
jmp 0x53e30b
cmp dword [esp + 0x44], 0
jne case.0x545600.14
add edi, 1
cmp edi, dword [esp + 0x2c]
jle 0x53e130
jmp 0x53dadf
mov edi, 1
cmp ebx, edi
jl 0x53fad7
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
mov ebx, dword [esp + 0x20]
cmp esi, ebp
jae 0x543a54
movzx ecx, byte [esi]
add esi, 1
test ebx, ebx
je 0x53e43c
cmp ecx, 0xc0
jb 0x53e43c
test cl, 0x20
jne 0x53e372
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x53e43c
test cl, 0x10
jne 0x53e399
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 0x53e43c
test cl, 8
jne 0x53e3cc
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 0x53e43c
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x53e408
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 0x53e43c
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 + 0x5769d0]
mov edx, ecx
shl eax, 7
and edx, 0x8000007f
jns 0x53e460
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x578bd0]
movzx edx, byte [eax*8 + 0x575351]
mov eax, dword [edx*4 + 0x574890]
cmp eax, 1
je 0x53e48c
cmp eax, 3
je 0x53e48c
cmp ecx, 0x5f
je 0x53e48c
xor eax, eax
jmp 0x53e491
mov eax, 1
cmp eax, dword [esp + 0x44]
je case.0x545600.14
add edi, 1
cmp edi, dword [esp + 0x2c]
jle 0x53e335
jmp 0x53dadf
mov edi, 1
cmp ebx, edi
jl 0x53fad7
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
mov ebx, dword [esp + 0x20]
cmp esi, ebp
jae 0x543a54
movzx eax, byte [esi]
add esi, 1
test ebx, ebx
je 0x53e5c7
cmp eax, 0xc0
jb 0x53e5c7
test al, 0x20
jne 0x53e500
movzx ecx, byte [esi]
and eax, 0x1f
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 1
jmp 0x53e5c7
test al, 0x10
jne 0x53e526
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 0x53e5c7
test al, 8
jne 0x53e558
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 0x53e5c7
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0x3f
and edx, 0x3f
test al, 4
jne 0x53e593
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 0x53e5c7
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 + 0x575210]
cmp eax, ecx
lea edx, [edx*4 + 0x575210]
jb 0x53e5ed
lea ecx, [ecx]
add edx, 4
cmp eax, ecx
je 0x53e5fa
mov ecx, dword [edx]
cmp eax, ecx
jae 0x53e5e0
cmp dword [esp + 0x44], 0
je case.0x545600.14
jmp 0x53e605
cmp dword [esp + 0x44], 0
jne case.0x545600.14
add edi, 1
cmp edi, dword [esp + 0x2c]
jle 0x53e4c5
jmp 0x53dadf
mov ecx, 1
cmp ebx, ecx
jl 0x53fad7
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
jmp 0x53e630
cmp esi, edx
jae 0x543ad2
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x53e76e
cmp eax, 0xc0
jb 0x53e76e
test al, 0x20
jne 0x53e676
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 0x53e76a
test al, 0x10
jne 0x53e6a4
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 0x53e76a
test al, 8
jne 0x53e6de
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 0x53e76a
test al, 4
jne 0x53e721
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 0x53e76a
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 0x53e796
cmp eax, 0x40
je 0x53e796
cmp eax, 0x60
je 0x53e796
cmp eax, 0xa0
jb 0x53e78b
cmp eax, 0xd7ff
jbe 0x53e796
cmp eax, 0xe000
jae 0x53e796
xor eax, eax
jmp 0x53e79b
mov eax, 1
cmp eax, ebp
je case.0x545600.14
add ecx, 1
cmp ecx, ebx
jle 0x53e630
jmp 0x53dae7
cmp edi, 0x16
jne 0x53eab3
cmp ebx, 1
mov dword [esp + 0x30], 1
jl 0x53fad7
lea ecx, [ecx]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
cmp esi, edi
mov dword [esp + 0x24], edi
jae 0x543a58
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x53e8e5
cmp ecx, 0xc0
jb 0x53e8e5
test cl, 0x20
jne 0x53e81b
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x53e8e5
test cl, 0x10
jne 0x53e842
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 0x53e8e5
test cl, 8
jne 0x53e875
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 0x53e8e5
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x53e8b1
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 0x53e8e5
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 + 0x5769d0]
shl eax, 7
and ecx, 0x8000007f
jns 0x53e907
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
cmp esi, edi
movzx ecx, word [eax*2 + 0x578bd0]
movzx ebp, byte [ecx*8 + 0x575352]
jae 0x53ea6a
mov ebx, dword [esp + 0x20]
test ebx, ebx
movzx ecx, byte [esi]
mov edi, 1
je 0x53ea18
cmp ecx, 0xc0
jb 0x53ea18
test cl, 0x20
jne 0x53e95d
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x53ea16
test cl, 0x10
jne 0x53e987
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 0x53ea18
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x53e9ad
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x53ea08
and eax, 0x3f
test cl, 4
jne 0x53e9e3
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 0x53ea18
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x53ea3a
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx ecx, byte [eax*8 + 0x575352]
mov edx, 1
shl edx, cl
test dword [ebp*4 + 0x57481c], edx
je 0x53ea6a
add esi, edi
cmp esi, dword [esp + 0x24]
mov ebp, ecx
jb 0x53e925
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je 0x53ea99
cmp esi, dword [esp + 0x24]
jb 0x53ea99
cmp esi, dword [eax + 0x84]
jbe 0x53ea99
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jg 0x545757
mov eax, dword [esp + 0x30]
add eax, 1
cmp eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
jle 0x53e7d0
jmp 0x53dadf
cmp dword [esp + 0x20], 0
lea eax, [edi - 6]
je 0x53f6e2
cmp eax, 0xf
ja case.default.0x53aeef
jmp dword [eax*4 + 0x545ac8]
mov ebp, 1
cmp dword [esp + 0x2c], ebp
jl 0x53dadf
mov ebx, dword [esp + 0x10]
mov ecx, ebp
cmp esi, dword [ebx + 0x78]
jae 0x543a84
mov eax, dword [ebx + 0x18]
test eax, eax
lea edi, [ebx + 0x1c]
je 0x53eb17
mov ecx, dword [esp + 0x20]
mov edx, dword [ebx + 0x78]
push ecx
push edi
push edx
push eax
push esi
call fcn.00546fa0
test eax, eax
jne case.0x545600.14
lea ecx, [eax + 1]
jmp 0x53eb3b
mov eax, dword [ebx + 0x78]
sub eax, dword [edi]
cmp esi, eax
ja 0x53eb3b
mov dl, byte [esi]
cmp dl, byte [ebx + 0x34]
jne 0x53eb3b
cmp dword [edi], ecx
je case.0x545600.14
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je case.0x545600.14
cmp dword [ebx + 0x88], 0
je 0x53eb6d
lea edx, [esi + 1]
cmp edx, dword [ebx + 0x78]
jb 0x53eb6d
cmp dword [ebx + 0x18], 0
jne 0x53eb6d
cmp dword [edi], 2
jne 0x53eb6d
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x53eb6d
mov dword [ebx + 0x64], ecx
cmp dword [ebx + 0x88], ecx
jg 0x545757
mov eax, dword [ebx + 0x78]
add esi, ecx
cmp esi, eax
jae 0x53eb86
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x53eb86
add esi, ecx
cmp esi, eax
jb 0x53eb76
add ebp, ecx
cmp ebp, dword [esp + 0x2c]
jle 0x53eae6
mov edi, ebx
jmp 0x53dae3
mov ecx, 1
cmp ebx, ecx
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x78]
lea ecx, [ecx]
cmp esi, eax
jae 0x543ad2
add esi, 1
cmp esi, eax
jae 0x53ebd1
nop
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x53ebd1
add esi, 1
cmp esi, eax
jb 0x53ebc0
add ecx, 1
cmp ecx, ebx
jle 0x53ebb0
jmp 0x53dae7
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x78]
sub eax, ebx
cmp esi, eax
ja case.0x545600.14
add esi, ebx
jmp 0x53dae7
mov ecx, 1
cmp ebx, ecx
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
lea esp, [esp]
cmp esi, edx
jae 0x543ad2
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53ed3f
test al, 0x20
jne 0x53ec4b
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 0x53ed3f
test al, 0x10
jne 0x53ec79
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 0x53ed3f
test al, 8
jne 0x53ecb3
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 0x53ed3f
test al, 4
jne 0x53ecf6
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 0x53ed3f
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 0x53ed64
je 0x53ed56
cmp eax, 0xa
je 0x53ed8b
jbe case.0x545600.14
cmp eax, 0xc
jmp 0x53ed7b
cmp esi, edx
jae 0x53ed8b
cmp byte [esi], 0xa
jne 0x53ed8b
add esi, 1
jmp 0x53ed8b
cmp eax, 0x85
je 0x53ed81
cmp eax, 0x2027
jbe case.0x545600.14
cmp eax, 0x2029
ja case.0x545600.14
cmp dword [edi + 0x68], 0
jne case.0x545600.14
add ecx, 1
cmp ecx, ebx
jle 0x53ec10
jmp 0x53dae7
mov ecx, 1
cmp ebx, ecx
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
nop
cmp esi, edx
jae 0x543ad2
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53eedf
test al, 0x20
jne 0x53edeb
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 0x53eedf
test al, 0x10
jne 0x53ee19
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 0x53eedf
test al, 8
jne 0x53ee53
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 0x53eedf
test al, 4
jne 0x53ee96
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 0x53eedf
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 0x53ef0e
je case.0x545600.14
cmp eax, 0xa0
ja 0x53ef07
je case.0x545600.14
cmp eax, 9
je case.0x545600.14
cmp eax, 0x20
jmp 0x53ef39
cmp eax, 0x1680
jmp 0x53ef39
cmp eax, 0x205f
ja 0x53ef34
je case.0x545600.14
cmp eax, 0x2000
jb 0x53ef3f
cmp eax, 0x200a
jbe case.0x545600.14
cmp eax, 0x202f
jmp 0x53ef39
cmp eax, 0x3000
je case.0x545600.14
add ecx, 1
cmp ecx, ebx
jle 0x53edb0
jmp 0x53dae7
mov ecx, 1
cmp ebx, ecx
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x543ad2
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53f092
test al, 0x20
jne 0x53ef9e
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 0x53f092
test al, 0x10
jne 0x53efcc
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 0x53f092
test al, 8
jne 0x53f006
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 0x53f092
test al, 4
jne 0x53f049
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 0x53f092
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 0x53f0b5
je 0x53f0e2
cmp eax, 0xa0
ja 0x53f0ae
je 0x53f0e2
cmp eax, 9
je 0x53f0e2
cmp eax, 0x20
jmp 0x53f0dc
cmp eax, 0x1680
jmp 0x53f0dc
cmp eax, 0x205f
ja 0x53f0d7
je 0x53f0e2
cmp eax, 0x2000
jb case.0x545600.14
cmp eax, 0x200a
jbe 0x53f0e2
cmp eax, 0x202f
jmp 0x53f0dc
cmp eax, 0x3000
jne case.0x545600.14
add ecx, 1
cmp ecx, ebx
jle 0x53ef63
jmp 0x53dae7
mov ecx, 1
cmp ebx, ecx
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x543ad2
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53f235
test al, 0x20
jne 0x53f141
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 0x53f235
test al, 0x10
jne 0x53f16f
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 0x53f235
test al, 8
jne 0x53f1a9
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 0x53f235
test al, 4
jne 0x53f1ec
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 0x53f235
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 0x53f24c
je case.0x545600.14
cmp eax, 0xa
jb 0x53f25e
cmp eax, 0xd
jmp 0x53f258
cmp eax, 0x2028
jb 0x53f25e
cmp eax, 0x2029
jbe case.0x545600.14
add ecx, 1
cmp ecx, ebx
jle 0x53f106
jmp 0x53dae7
mov ecx, 1
cmp ebx, ecx
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x543ad2
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53f3b1
test al, 0x20
jne 0x53f2bd
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 0x53f3b1
test al, 0x10
jne 0x53f2eb
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 0x53f3b1
test al, 8
jne 0x53f325
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 0x53f3b1
test al, 4
jne 0x53f368
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 0x53f3b1
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 0x53f3c8
je 0x53f3de
cmp eax, 0xa
jb case.0x545600.14
cmp eax, 0xd
jmp 0x53f3d8
cmp eax, 0x2028
jb case.0x545600.14
cmp eax, 0x2029
ja case.0x545600.14
add ecx, 1
cmp ecx, ebx
jle 0x53f282
jmp 0x53dae7
mov ecx, 1
cmp ebx, ecx
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x543ad2
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x53f531
test al, 0x20
jne 0x53f43d
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 0x53f531
test al, 0x10
jne 0x53f46b
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 0x53f531
test al, 8
jne 0x53f4a5
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 0x53f531
test al, 4
jne 0x53f4e8
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 0x53f531
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 0x53f545
mov ebp, dword [edi + 0x40]
test byte [eax + ebp], 4
jne case.0x545600.14
add ecx, 1
cmp ecx, ebx
jle 0x53f402
jmp 0x53dae7
mov ecx, 1
cmp ebx, ecx
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
lea esp, [esp]
cmp esi, edx
jae 0x543ad2
movzx eax, byte [esi]
cmp eax, 0x80
jae case.0x545600.14
mov ebp, dword [edi + 0x40]
test byte [eax + ebp], 4
je case.0x545600.14
add ecx, 1
add esi, 1
cmp ecx, ebx
jle 0x53f570
jmp 0x53dae7
mov edx, 1
cmp ebx, edx
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x543ad2
movzx eax, byte [esi]
cmp eax, 0x80
jae 0x53f5d5
mov ebp, dword [edi + 0x40]
test byte [eax + ebp], 1
jne case.0x545600.14
add esi, 1
cmp esi, ecx
jae 0x53f5ef
lea esp, [esp]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x53f5ef
add esi, 1
cmp esi, ecx
jb 0x53f5e0
add edx, 1
cmp edx, ebx
jle 0x53f5b6
jmp 0x53dae7
mov ecx, 1
cmp ebx, ecx
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
nop
cmp esi, edx
jae 0x543ad2
movzx eax, byte [esi]
cmp eax, 0x80
jae case.0x545600.14
mov ebp, dword [edi + 0x40]
test byte [eax + ebp], 1
je case.0x545600.14
add ecx, 1
add esi, 1
cmp ecx, ebx
jle 0x53f610
jmp 0x53dae7
mov edx, 1
cmp ebx, edx
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x543ad2
movzx eax, byte [esi]
cmp eax, 0x80
jae 0x53f675
mov ebp, dword [edi + 0x40]
test byte [eax + ebp], 0x10
jne case.0x545600.14
add esi, 1
cmp esi, ecx
jae 0x53f68f
lea esp, [esp]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x53f68f
add esi, 1
cmp esi, ecx
jb 0x53f680
add edx, 1
cmp edx, ebx
jle 0x53f656
jmp 0x53dae7
mov ecx, 1
cmp ebx, ecx
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
nop
cmp esi, edx
jae 0x543ad2
movzx eax, byte [esi]
cmp eax, 0x80
jae case.0x545600.14
mov ebp, dword [edi + 0x40]
test byte [eax + ebp], 0x10
je case.0x545600.14
add ecx, 1
add esi, 1
cmp ecx, ebx
jle 0x53f6b0
jmp 0x53dae7
cmp eax, 0xf
ja case.default.0x53aeef
jmp dword [eax*4 + 0x545b08]
mov ebp, 1
cmp dword [esp + 0x2c], ebp
jl 0x53dadf
mov ecx, dword [esp + 0x10]
lea ebx, [esi + 1]
mov edx, ebp
lea ebx, [ebx]
cmp esi, dword [ecx + 0x78]
jae 0x543aab
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x53f746
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.00546fa0
test eax, eax
jne case.0x545600.14
mov ecx, dword [esp + 0x10]
lea edx, [eax + 1]
jmp 0x53f76d
mov eax, dword [ecx + 0x78]
sub eax, dword [ecx + 0x1c]
lea edi, [ecx + 0x1c]
cmp esi, eax
ja 0x53f76d
mov al, byte [esi]
cmp al, byte [ecx + 0x34]
jne 0x53f76d
cmp dword [edi], edx
je case.0x545600.14
mov al, byte [ebx]
cmp al, byte [ecx + 0x35]
je case.0x545600.14
cmp dword [ecx + 0x88], 0
je 0x53f79c
cmp ebx, dword [ecx + 0x78]
jb 0x53f79c
cmp dword [ecx + 0x18], 0
jne 0x53f79c
cmp dword [edi], 2
jne 0x53f79c
mov al, byte [esi]
cmp al, byte [ecx + 0x34]
jne 0x53f79c
mov dword [ecx + 0x64], edx
cmp dword [ecx + 0x88], edx
jg 0x545757
add ebp, edx
add esi, edx
add ebx, edx
cmp ebp, dword [esp + 0x2c]
jle 0x53f710
jmp 0x53dadf
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
sub ecx, ebx
cmp esi, ecx
ja 0x543ad2
add esi, ebx
jmp 0x53dae7
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
sub edx, ebx
cmp esi, edx
ja 0x543ad2
add esi, ebx
jmp 0x53dae7
mov ecx, 1
cmp ebx, ecx
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x543ad2
movzx eax, byte [esi]
sub eax, 0xa
add esi, 1
cmp eax, 0x7b
ja case.0x545600.14
movzx eax, byte [eax + 0x545b58]
jmp dword [eax*4 + 0x545b48]
cmp esi, edx
jae case.0x53f816.10
cmp byte [esi], 0xa
jne case.0x53f816.10
add esi, 1
jmp case.0x53f816.10
cmp dword [edi + 0x68], 0
jne case.0x545600.14
add ecx, 1
cmp ecx, ebx
jle 0x53f7f5
jmp 0x53dae7
mov ecx, 1
cmp ebx, ecx
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x543ad2
movzx eax, byte [esi]
add esi, 1
cmp eax, 9
je case.0x545600.14
cmp eax, 0x20
je case.0x545600.14
cmp eax, 0xa0
je case.0x545600.14
add ecx, 1
cmp ecx, ebx
jle 0x53f855
jmp 0x53dae7
mov ecx, 1
cmp ebx, ecx
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x543ad2
movzx eax, byte [esi]
add esi, 1
cmp eax, 9
je 0x53f8c3
cmp eax, 0x20
je 0x53f8c3
cmp eax, 0xa0
jne case.0x545600.14
add ecx, 1
cmp ecx, ebx
jle 0x53f8a0
jmp 0x53dae7
mov ecx, 1
cmp ebx, ecx
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x543ad2
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xa
jl 0x53f90a
cmp eax, 0xd
jle case.0x545600.14
cmp eax, 0x85
je case.0x545600.14
add ecx, 1
cmp ecx, ebx
jle 0x53f8e3
jmp 0x53dae7
mov ecx, 1
cmp ebx, ecx
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x78]
lea ebx, [ebx]
cmp esi, edx
jae 0x543ad2
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xa
jl case.0x545600.14
cmp eax, 0xd
jle 0x53f957
cmp eax, 0x85
jne case.0x545600.14
add ecx, 1
cmp ecx, ebx
jle 0x53f930
jmp 0x53dae7
mov eax, 1
cmp ebx, eax
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x543ad2
movzx edx, byte [esi]
mov ebp, dword [edi + 0x40]
test byte [edx + ebp], 4
jne case.0x545600.14
add eax, 1
add esi, 1
cmp eax, ebx
jle 0x53f977
jmp 0x53dae7
mov eax, 1
cmp ebx, eax
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x543ad2
movzx edx, byte [esi]
mov ebp, dword [edi + 0x40]
test byte [edx + ebp], 4
je case.0x545600.14
add eax, 1
add esi, 1
cmp eax, ebx
jle 0x53f9b2
jmp 0x53dae7
mov eax, 1
cmp ebx, eax
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
lea ecx, [ecx]
cmp esi, ecx
jae 0x543ad2
movzx edx, byte [esi]
mov ebp, dword [edi + 0x40]
test byte [edx + ebp], 1
jne case.0x545600.14
add eax, 1
add esi, 1
cmp eax, ebx
jle 0x53f9f0
jmp 0x53dae7
mov eax, 1
cmp ebx, eax
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
jmp 0x53fa30
cmp esi, ecx
jae 0x543ad2
movzx edx, byte [esi]
mov ebp, dword [edi + 0x40]
test byte [edx + ebp], 1
je case.0x545600.14
add eax, 1
add esi, 1
cmp eax, ebx
jle 0x53fa30
jmp 0x53dae7
mov eax, 1
cmp ebx, eax
jl 0x53dadf
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x78]
jmp 0x53fa70
cmp esi, ecx
jae 0x543ad2
movzx edx, byte [esi]
mov ebp, dword [edi + 0x40]
test byte [edx + ebp], 0x10
jne case.0x545600.14
add eax, 1
add esi, 1
cmp eax, ebx
jle 0x53fa70
jmp 0x53dae7
mov edi, dword [esp + 0x10]
mov eax, 1
cmp ebx, eax
jl 0x53dae7
mov ecx, dword [edi + 0x78]
jmp 0x53fab0
cmp esi, ecx
jae 0x543ad2
movzx edx, byte [esi]
mov ebp, dword [edi + 0x40]
test byte [edx + ebp], 0x10
je case.0x545600.14
add eax, 1
add esi, 1
cmp eax, ebx
jle 0x53fab0
jmp 0x53dae7
mov edi, dword [esp + 0x10]
jmp 0x53dae7
cmp ebx, ebp
mov edx, ebx
jge 0x5409d8
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
cmp esi, edi
mov ecx, 1
jae 0x5409ab
cmp dword [esp + 0x20], 0
movzx eax, byte [esi]
je 0x53fb3d
cmp eax, 0xc0
jb 0x53fb3d
test al, 0x20
jne 0x53fb1a
mov ecx, 2
jmp 0x53fb3d
test al, 0x10
jne 0x53fb25
mov ecx, 3
jmp 0x53fb3d
test al, 8
jne 0x53fb30
mov ecx, 4
jmp 0x53fb3d
and al, 4
neg al
sbb eax, eax
neg eax
add eax, 5
mov ecx, eax
cmp dword [esp + 0x44], 0
jne 0x5409d8
add edx, 1
add esi, ecx
cmp edx, dword [esp + 0x18]
jl 0x53faf1
jmp 0x5409d8
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x5409d8
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
lea ecx, [ecx]
cmp esi, ebx
mov edi, 1
jae 0x53fcd8
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
je 0x53fc6e
cmp ecx, 0xc0
jb 0x53fc6e
test cl, 0x20
jne 0x53fbb3
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x53fc6c
test cl, 0x10
jne 0x53fbdd
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 0x53fc6e
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x53fc03
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x53fc5e
and eax, 0x3f
test cl, 4
jne 0x53fc39
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 0x53fc6e
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x53fc90
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx eax, byte [eax*8 + 0x575351]
cmp eax, 9
je 0x53fcb5
cmp eax, 5
je 0x53fcb5
cmp eax, 8
je 0x53fcb5
xor eax, eax
jmp 0x53fcba
mov eax, 1
cmp eax, dword [esp + 0x44]
je 0x5409d8
add ebp, 1
add esi, edi
cmp ebp, dword [esp + 0x18]
jl 0x53fb70
jmp 0x5409d8
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x88], 0
je 0x5409d8
mov edx, ecx
cmp esi, dword [edx + 0x84]
jbe 0x5409d8
mov ecx, edi
jmp 0x5409c7
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x5409d8
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
mov edi, 1
jae 0x53fcd8
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
je 0x53fe0d
cmp ecx, 0xc0
jb 0x53fe0d
test cl, 0x20
jne 0x53fd52
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x53fe0b
test cl, 0x10
jne 0x53fd7c
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 0x53fe0d
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x53fda2
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x53fdfd
and eax, 0x3f
test cl, 4
jne 0x53fdd8
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 0x53fe0d
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x53fe2f
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx ecx, byte [eax*8 + 0x575351]
mov eax, dword [esp + 0x48]
xor edx, edx
cmp dword [ecx*4 + 0x574890], eax
sete dl
cmp edx, dword [esp + 0x44]
je 0x5409d8
add ebp, 1
add esi, edi
cmp ebp, dword [esp + 0x18]
jl 0x53fd13
jmp 0x5409d8
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x5409d8
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
jmp 0x53fe90
cmp esi, ebx
mov edi, 1
jae 0x53ffe9
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
je 0x53ff8e
cmp ecx, 0xc0
jb 0x53ff8e
test cl, 0x20
jne 0x53fed3
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x53ff8c
test cl, 0x10
jne 0x53fefd
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 0x53ff8e
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x53ff23
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x53ff7e
and eax, 0x3f
test cl, 4
jne 0x53ff59
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 0x53ff8e
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x53ffb0
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx ecx, byte [eax*8 + 0x575351]
xor edx, edx
cmp ecx, dword [esp + 0x48]
sete dl
cmp edx, dword [esp + 0x44]
je 0x5409d8
add ebp, 1
add esi, edi
cmp ebp, dword [esp + 0x18]
jl 0x53fe90
jmp 0x5409d8
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je 0x5409d8
mov ecx, eax
cmp esi, dword [ecx + 0x84]
jbe 0x5409d8
mov ecx, edi
jmp 0x5409c9
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x5409d8
mov edx, dword [esp + 0x10]
mov ebx, dword [edx + 0x78]
cmp esi, ebx
mov edi, 1
jae 0x53ffe9
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
je 0x540117
cmp ecx, 0xc0
jb 0x540117
test cl, 0x20
jne 0x540065
movzx eax, byte [esi + 1]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov edi, 2
jmp 0x540117
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 0x10
jne 0x540091
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 0x540117
test cl, 8
jne 0x5400ac
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x540107
and eax, 0x3f
test cl, 4
jne 0x5400e2
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 0x540117
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x540139
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx ecx, byte [eax*8 + 0x575350]
xor edx, edx
cmp ecx, dword [esp + 0x48]
sete dl
cmp edx, dword [esp + 0x44]
je 0x5409d8
add ebp, 1
add esi, edi
cmp ebp, dword [esp + 0x18]
jl 0x540024
jmp 0x5409d8
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x5409d8
mov edx, dword [esp + 0x10]
mov ebx, dword [edx + 0x78]
jmp 0x540190
cmp esi, ebx
mov edi, 1
jae 0x5402f3
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
je 0x540287
cmp ecx, 0xc0
jb 0x540287
test cl, 0x20
jne 0x5401d5
movzx eax, byte [esi + 1]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov edi, 2
jmp 0x540287
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 0x10
jne 0x540201
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 0x540287
test cl, 8
jne 0x54021c
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x540277
and eax, 0x3f
test cl, 4
jne 0x540252
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 0x540287
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x5402a9
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx ecx, byte [eax*8 + 0x575351]
mov eax, dword [ecx*4 + 0x574890]
cmp eax, 1
je 0x5402d0
cmp eax, 3
je 0x5402d0
xor eax, eax
jmp 0x5402d5
mov eax, 1
cmp eax, dword [esp + 0x44]
je 0x5409d8
add ebp, 1
add esi, edi
cmp ebp, dword [esp + 0x18]
jl 0x540190
jmp 0x5409d8
mov edx, dword [esp + 0x10]
cmp dword [edx + 0x88], 0
je 0x5409d8
mov eax, edx
cmp esi, dword [eax + 0x84]
jbe 0x5409d8
mov ecx, edi
jmp 0x5409c9
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x5409d8
mov ecx, dword [esp + 0x10]
mov ebx, dword [ecx + 0x78]
mov edi, edi
cmp esi, ebx
mov edi, 1
jae 0x53fcd8
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
je 0x54042e
cmp ecx, 0xc0
jb 0x54042e
test cl, 0x20
jne 0x540373
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x54042c
test cl, 0x10
jne 0x54039d
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 0x54042e
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x5403c3
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x54041e
and eax, 0x3f
test cl, 4
jne 0x5403f9
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 0x54042e
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 0x540471
je case.0x540491.8192
cmp ecx, 0x85
ja 0x54045d
je case.0x540491.8192
cmp ecx, 9
jb case.0x540491.8203
cmp ecx, 0xd
jbe case.0x540491.8192
cmp ecx, 0x20
jmp 0x5404aa
cmp ecx, 0xa0
je case.0x540491.8192
cmp ecx, 0x1680
jmp 0x5404aa
cmp ecx, 0x202f
ja 0x540498
je case.0x540491.8192
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x540491.8203
movzx edx, byte [eax + 0x545bdc]
jmp dword [edx*4 + 0x545bd4]
cmp ecx, 0x205f
je case.0x540491.8192
cmp ecx, 0x3000
je case.0x540491.8192
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x5769d0]
shl eax, 7
and ecx, 0x8000007f
jns 0x5404ce
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx ecx, word [eax*2 + 0x578bd0]
movzx edx, byte [ecx*8 + 0x575351]
xor eax, eax
cmp dword [edx*4 + 0x574890], 6
sete al
cmp eax, dword [esp + 0x44]
je 0x5409d8
jmp 0x540504
cmp dword [esp + 0x44], 0
jne 0x5409d8
add ebp, 1
add esi, edi
cmp ebp, dword [esp + 0x18]
jl 0x540330
jmp 0x5409d8
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x5409d8
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
lea ecx, [ecx]
cmp esi, ebx
mov edi, 1
jae 0x53fcd8
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
je 0x54062e
cmp ecx, 0xc0
jb 0x54062e
test cl, 0x20
jne 0x540573
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x54062c
test cl, 0x10
jne 0x54059d
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 0x54062e
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x5405c3
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x54061e
and eax, 0x3f
test cl, 4
jne 0x5405f9
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 0x54062e
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 + 0x5769d0]
mov eax, ecx
shl edx, 7
and eax, 0x8000007f
jns 0x540651
dec eax
or eax, 0xffffff80
inc eax
add edx, eax
movzx edx, word [edx*2 + 0x578bd0]
movzx eax, byte [edx*8 + 0x575351]
mov eax, dword [eax*4 + 0x574890]
cmp eax, 1
je 0x54067d
cmp eax, 3
je 0x54067d
cmp ecx, 0x5f
je 0x54067d
xor eax, eax
jmp 0x540682
mov eax, 1
cmp eax, dword [esp + 0x44]
je 0x5409d8
add ebp, 1
add esi, edi
cmp ebp, dword [esp + 0x18]
jl 0x540530
jmp 0x5409d8
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x5409d8
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x78]
jmp 0x5406c0
cmp esi, ebx
mov edx, 1
jae 0x54081b
cmp dword [esp + 0x20], 0
movzx eax, byte [esi]
je 0x5407cc
cmp eax, 0xc0
jb 0x5407cc
test al, 0x20
jne 0x540701
movzx ecx, byte [esi + 1]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
mov edx, 2
jmp 0x5407ca
test al, 0x10
jne 0x54072a
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 0x5407cc
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 8
jne 0x540757
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 0x5407c4
test al, 4
jne 0x540790
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 0x5407cc
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 + 0x575210]
cmp eax, ecx
lea edi, [edi*4 + 0x575210]
jb 0x5407ef
add edi, 4
cmp eax, ecx
je 0x5407fc
mov ecx, dword [edi]
cmp eax, ecx
jae 0x5407e2
cmp dword [esp + 0x44], 0
je 0x5409d8
jmp 0x540807
cmp dword [esp + 0x44], 0
jne 0x5409d8
add ebp, 1
add esi, edx
cmp ebp, dword [esp + 0x18]
jl 0x5406c0
jmp 0x5409d8
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je 0x5409d8
cmp esi, dword [eax + 0x84]
jbe 0x5409d8
mov dword [eax + 0x64], edx
cmp dword [eax + 0x88], edx
jmp 0x5409d2
cmp ebx, ebp
mov edx, ebx
jge 0x5409d8
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x78]
jmp 0x540860
cmp esi, edi
mov ecx, 1
jae 0x5409ab
cmp dword [esp + 0x20], 0
movzx eax, byte [esi]
je 0x540967
cmp eax, 0xc0
jb 0x540967
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x5408a3
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x540967
test al, 0x10
jne 0x5408c5
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 0x540967
test al, 8
jne 0x5408f3
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 0x540967
test al, 4
jne 0x54092a
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 0x540967
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 0x54098f
cmp eax, 0x40
je 0x54098f
cmp eax, 0x60
je 0x54098f
cmp eax, 0xa0
jb 0x540984
cmp eax, 0xd7ff
jbe 0x54098f
cmp eax, 0xe000
jae 0x54098f
xor eax, eax
jmp 0x540994
mov eax, 1
cmp eax, dword [esp + 0x44]
je 0x5409d8
add edx, 1
add esi, ecx
cmp edx, dword [esp + 0x18]
jl 0x540860
jmp 0x5409d8
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x88], 0
je 0x5409d8
mov edx, ecx
cmp esi, dword [edx + 0x84]
jbe 0x5409d8
mov ecx, 1
mov eax, edx
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jg 0x545757
cmp dword [esp + 0x3c], 0
jne 0x5388a0
cmp esi, dword [esp + 0x34]
jbe 0x541e43
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.005387a0
test eax, eax
jne 0x54576a
sub esi, 1
cmp dword [esp + 0x20], eax
je 0x540a4e
mov cl, byte [esi]
and cl, 0xc0
cmp cl, 0x80
jne 0x540a4e
lea esp, [esp]
mov dl, byte [esi - 1]
sub esi, 1
and dl, 0xc0
cmp dl, 0x80
je 0x540a40
cmp esi, dword [esp + 0x34]
ja 0x540a00
jmp 0x541e43
mov eax, dword [esp + 0x38]
cmp eax, 0x16
jne 0x540de8
cmp ebx, ebp
mov dword [esp + 0x30], ebx
jge 0x540d7d
lea edx, [eax - 0x15]
mov eax, dword [esp + 0x10]
lea esp, [esp]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x540d5d
movzx ecx, byte [esi]
add esi, edx
cmp dword [esp + 0x20], 0
je 0x540b91
cmp ecx, 0xc0
jb 0x540b91
test cl, 0x20
jne 0x540ac1
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, edx
jmp 0x540b91
test cl, 0x10
jne 0x540ae8
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 0x540b91
test cl, 8
jne 0x540b1b
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 0x540b91
movzx eax, byte [esi]
and eax, 0x3f
test cl, 4
jne 0x540b57
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 0x540b91
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x540bb3
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
cmp esi, ebx
movzx eax, word [edx*2 + 0x578bd0]
movzx ebp, byte [eax*8 + 0x575352]
jae 0x540d13
lea ecx, [ecx]
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
mov edi, 1
je 0x540cc3
cmp ecx, 0xc0
jb 0x540cc3
test cl, 0x20
jne 0x540c0b
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x540cc1
test cl, 0x10
jne 0x540c35
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 0x540cc3
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x540c58
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x540cb3
and eax, 0x3f
test cl, 4
jne 0x540c8e
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 0x540cc3
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x540ce5
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx ecx, byte [eax*8 + 0x575352]
mov edx, 1
shl edx, cl
test dword [ebp*4 + 0x57481c], edx
je 0x540d13
add esi, edi
cmp esi, ebx
mov ebp, ecx
jb 0x540bd0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je 0x540d42
cmp esi, ebx
jb 0x540d42
cmp esi, dword [eax + 0x84]
jbe 0x540d42
mov edx, 1
mov dword [eax + 0x64], edx
cmp dword [eax + 0x88], edx
jg 0x545757
jmp 0x540d47
mov edx, 1
mov ecx, dword [esp + 0x30]
add ecx, edx
cmp ecx, dword [esp + 0x18]
mov dword [esp + 0x30], ecx
jl 0x540a80
jmp 0x540d7d
cmp dword [eax + 0x88], 0
je 0x540d7d
cmp esi, dword [eax + 0x84]
jbe 0x540d7d
mov dword [eax + 0x64], edx
cmp dword [eax + 0x88], edx
jg 0x545757
cmp dword [esp + 0x3c], 0
jne 0x5388a0
cmp esi, dword [esp + 0x34]
jbe 0x541e43
mov ebp, dword [esp + 0x20]
jmp 0x540da0
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.005387a0
test eax, eax
jne 0x54576a
sub esi, 1
test ebp, ebp
jne 0x5423e3
movzx ecx, byte [esi]
jmp 0x5424cc
add eax, 0xfffffffa
cmp dword [esp + 0x20], 0
je 0x541c93
cmp eax, 0xf
ja case.default.0x53aeef
jmp dword [eax*4 + 0x545c08]
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x541bfe
mov ebx, dword [esp + 0x10]
mov ecx, 1
lea ecx, [ecx]
cmp esi, dword [ebx + 0x78]
jae 0x540ed1
mov eax, dword [ebx + 0x18]
test eax, eax
lea edi, [ebx + 0x1c]
je 0x540e51
mov ecx, dword [esp + 0x20]
mov edx, dword [ebx + 0x78]
push ecx
push edi
push edx
push eax
push esi
call fcn.00546fa0
test eax, eax
jne 0x541bfe
lea ecx, [eax + 1]
jmp 0x540e75
mov eax, dword [ebx + 0x78]
sub eax, dword [edi]
cmp esi, eax
ja 0x540e75
mov dl, byte [esi]
cmp dl, byte [ebx + 0x34]
jne 0x540e75
cmp dword [edi], ecx
je 0x541bfe
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je 0x541bfe
cmp dword [ebx + 0x88], 0
je 0x540ea7
lea edx, [esi + 1]
cmp edx, dword [ebx + 0x78]
jb 0x540ea7
cmp dword [ebx + 0x18], 0
jne 0x540ea7
cmp dword [edi], 2
jne 0x540ea7
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x540ea7
mov dword [ebx + 0x64], ecx
cmp dword [ebx + 0x88], ecx
jg 0x545757
mov eax, dword [ebx + 0x78]
add esi, ecx
cmp esi, eax
jae 0x540ec0
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x540ec0
add esi, ecx
cmp esi, eax
jb 0x540eb0
add ebp, ecx
cmp ebp, dword [esp + 0x18]
jl 0x540e20
jmp 0x541bfe
cmp dword [ebx + 0x88], 0
je 0x541bfe
cmp esi, dword [ebx + 0x84]
jbe 0x541bfe
mov dword [ebx + 0x64], ecx
cmp dword [ebx + 0x88], ecx
jmp 0x541bf8
cmp ebp, 0x7fffffff
jge 0x540f5d
cmp ebx, ebp
mov ecx, ebx
jge 0x541bfe
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 0x78]
mov edi, dword [esp + 0x18]
cmp esi, eax
jae 0x540f3d
add esi, 1
cmp esi, eax
jae 0x540f31
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x540f31
add esi, 1
cmp esi, eax
jb 0x540f20
add ecx, 1
cmp ecx, edi
jl 0x540f15
jmp 0x541bfe
cmp dword [ebp + 0x88], 0
je 0x541bfe
mov eax, ebp
cmp esi, dword [eax + 0x84]
jbe 0x541bfe
jmp 0x541bea
mov esi, dword [edi + 0x78]
cmp dword [edi + 0x88], 0
je 0x541bfe
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x84]
jbe 0x541bfe
mov eax, ecx
jmp 0x541bea
mov edx, dword [edi + 0x78]
sub ebp, ebx
mov eax, ebp
sub edx, esi
cmp eax, edx
jbe 0x540fb6
cmp dword [edi + 0x88], 0
mov esi, dword [edi + 0x78]
je 0x541bfe
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x84]
jbe 0x541bfe
jmp 0x541bea
add esi, eax
jmp 0x541bfe
cmp ebx, dword [esp + 0x18]
mov edi, ebx
jge 0x541bfe
mov ebp, dword [esp + 0x10]
mov edx, dword [ebp + 0x78]
jmp 0x540fd6
mov ebp, dword [esp + 0x10]
cmp esi, edx
mov ecx, 1
jae 0x541132
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x5410d2
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x54100e
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x5410d2
test al, 0x10
jne 0x541030
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 0x5410d2
test al, 8
jne 0x54105e
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 0x5410d2
test al, 4
jne 0x541095
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 0x5410d2
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 0x5410ec
add esi, 1
cmp esi, edx
jae 0x541bfe
cmp byte [esi], 0xa
jne 0x541120
add esi, 1
jmp 0x541120
cmp eax, 0xa
je 0x54111e
cmp dword [ebp + 0x68], 0
jne 0x541bfe
cmp eax, 0xb
je 0x54111e
cmp eax, 0xc
je 0x54111e
cmp eax, 0x85
je 0x54111e
cmp eax, 0x2028
je 0x54111e
cmp eax, 0x2029
jne 0x541bfe
add esi, ecx
add edi, 1
cmp edi, dword [esp + 0x18]
jl 0x540fd2
jmp 0x541bfe
cmp dword [ebp + 0x88], 0
jmp 0x540f67
cmp ebx, dword [esp + 0x18]
mov edi, ebx
jge 0x541bfe
mov edx, dword [esp + 0x10]
mov ebp, dword [edx + 0x78]
mov edx, dword [esp + 0x38]
jmp 0x541160
cmp esi, ebp
mov ecx, 1
jae 0x541bd1
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x54125c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x541198
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x54125c
test al, 0x10
jne 0x5411ba
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 0x54125c
test al, 8
jne 0x5411e8
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 0x54125c
test al, 4
jne 0x54121f
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 0x54125c
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 0x54127f
je 0x5412a8
cmp eax, 0xa0
ja 0x541278
je 0x5412a8
cmp eax, 9
je 0x5412a8
cmp eax, 0x20
jmp 0x5412a2
cmp eax, 0x1680
jmp 0x5412a2
cmp eax, 0x205f
ja 0x54129d
je 0x5412a8
cmp eax, 0x2000
jb 0x5412a4
cmp eax, 0x200a
jbe 0x5412a8
cmp eax, 0x202f
jmp 0x5412a2
cmp eax, 0x3000
je 0x5412a8
xor eax, eax
jmp 0x5412ad
mov eax, 1
xor ebx, ebx
cmp edx, 0x12
sete bl
cmp eax, ebx
je 0x541bfe
add edi, 1
add esi, ecx
cmp edi, dword [esp + 0x18]
jl 0x541160
jmp 0x541bfe
cmp ebx, dword [esp + 0x18]
mov edi, ebx
jge 0x541bfe
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x78]
mov edx, dword [esp + 0x18]
jmp 0x5412f0
cmp esi, ebp
mov ecx, 1
jae 0x54143a
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x5413ec
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x541328
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x5413ec
test al, 0x10
jne 0x54134a
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 0x5413ec
test al, 8
jne 0x541378
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 0x5413ec
test al, 4
jne 0x5413af
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 0x5413ec
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 0x541425
je 0x541433
cmp eax, 0xa
jb 0x5413ff
cmp eax, 0xd
jbe 0x541433
xor eax, eax
xor ebx, ebx
cmp dword [esp + 0x38], 0x14
sete bl
cmp eax, ebx
je 0x541bfe
add edi, 1
add esi, ecx
cmp edi, edx
jl 0x5412f0
jmp 0x541bfe
cmp eax, 0x2028
jb 0x5413ff
cmp eax, 0x2029
ja 0x5413ff
mov eax, 1
jmp 0x541401
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je 0x541bfe
cmp esi, dword [eax + 0x84]
jbe 0x541bfe
jmp 0x541bef
cmp ebx, ebp
mov edx, ebx
jge 0x541bfe
mov ebp, dword [esp + 0x10]
mov edi, dword [ebp + 0x78]
lea ecx, [ecx]
cmp esi, edi
mov ecx, 1
jae 0x541132
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x54156c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x5414a8
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x54156c
test al, 0x10
jne 0x5414ca
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 0x54156c
test al, 8
jne 0x5414f8
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 0x54156c
test al, 4
jne 0x54152f
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 0x54156c
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 0x541584
mov ebx, dword [ebp + 0x40]
test byte [eax + ebx], 4
jne 0x541bfe
mov ebp, dword [esp + 0x10]
add edx, 1
add esi, ecx
cmp edx, dword [esp + 0x18]
jl 0x541470
jmp 0x541bfe
cmp ebx, ebp
mov edx, ebx
jge 0x541bfe
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
lea esp, [esp]
cmp esi, edi
mov ecx, 1
jae 0x541bd1
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x5416ac
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x5415e8
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x5416ac
test al, 0x10
jne 0x54160a
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 0x5416ac
test al, 8
jne 0x541638
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 0x5416ac
test al, 4
jne 0x54166f
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 0x5416ac
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 0x541bfe
mov ebx, dword [esp + 0x10]
mov ebx, dword [ebx + 0x40]
test byte [eax + ebx], 4
je 0x541bfe
add edx, 1
add esi, ecx
cmp edx, dword [esp + 0x18]
jl 0x5415b0
jmp 0x541bfe
cmp ebx, ebp
mov edx, ebx
jge 0x541bfe
mov ebp, dword [esp + 0x10]
mov edi, dword [ebp + 0x78]
lea ecx, [ecx]
cmp esi, edi
mov ecx, 1
jae 0x541132
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x5417ec
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x541728
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x5417ec
test al, 0x10
jne 0x54174a
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 0x5417ec
test al, 8
jne 0x541778
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 0x5417ec
test al, 4
jne 0x5417af
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 0x5417ec
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 0x541804
mov ebx, dword [ebp + 0x40]
test byte [eax + ebx], 1
jne 0x541bfe
mov ebp, dword [esp + 0x10]
add edx, 1
add esi, ecx
cmp edx, dword [esp + 0x18]
jl 0x5416f0
jmp 0x541bfe
cmp ebx, ebp
mov edx, ebx
jge 0x541bfe
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
lea esp, [esp]
cmp esi, edi
mov ecx, 1
jae 0x541bd1
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x54192c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x541868
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x54192c
test al, 0x10
jne 0x54188a
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 0x54192c
test al, 8
jne 0x5418b8
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 0x54192c
test al, 4
jne 0x5418ef
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 0x54192c
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 0x541bfe
mov ebx, dword [esp + 0x10]
mov ebx, dword [ebx + 0x40]
test byte [eax + ebx], 1
je 0x541bfe
add edx, 1
add esi, ecx
cmp edx, dword [esp + 0x18]
jl 0x541830
jmp 0x541bfe
cmp ebx, ebp
mov edx, ebx
jge 0x541bfe
mov ebp, dword [esp + 0x10]
mov edi, dword [ebp + 0x78]
lea ecx, [ecx]
cmp esi, edi
mov ecx, 1
jae 0x541132
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x541a6c
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x5419a8
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x541a6c
test al, 0x10
jne 0x5419ca
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 0x541a6c
test al, 8
jne 0x5419f8
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 0x541a6c
test al, 4
jne 0x541a2f
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 0x541a6c
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 0x541a84
mov ebx, dword [ebp + 0x40]
test byte [eax + ebx], 0x10
jne 0x541bfe
mov ebp, dword [esp + 0x10]
add edx, 1
add esi, ecx
cmp edx, dword [esp + 0x18]
jl 0x541970
jmp 0x541bfe
cmp ebx, ebp
mov edx, ebx
jge 0x541bfe
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x78]
lea esp, [esp]
cmp esi, edi
mov ecx, 1
jae 0x541bd1
movzx eax, byte [esi]
cmp eax, 0xc0
jb 0x541bac
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test al, 0x20
jne 0x541ae8
and eax, 0x1f
shl eax, 6
or eax, ecx
mov ecx, 2
jmp 0x541bac
test al, 0x10
jne 0x541b0a
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 0x541bac
test al, 8
jne 0x541b38
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 0x541bac
test al, 4
jne 0x541b6f
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 0x541bac
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 0x541bfe
mov ebx, dword [esp + 0x10]
mov ebx, dword [ebx + 0x40]
test byte [eax + ebx], 0x10
je 0x541bfe
add edx, 1
add esi, ecx
cmp edx, dword [esp + 0x18]
jl 0x541ab0
jmp 0x541bfe
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x88], 0
je 0x541bfe
mov edx, ecx
cmp esi, dword [edx + 0x84]
jbe 0x541bfe
mov eax, edx
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jg 0x545757
cmp dword [esp + 0x3c], 0
jne 0x5388a0
cmp esi, dword [esp + 0x34]
jbe 0x541e43
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
jmp 0x541c20
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.005387a0
test eax, eax
jne 0x54576a
mov al, byte [esi - 1]
sub esi, 1
and al, 0xc0
cmp al, 0x80
jne 0x541c6f
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
je 0x541c61
cmp ebx, 0x11
jne 0x541c8a
cmp esi, edi
jbe 0x541e43
cmp byte [esi], 0xa
jne 0x541c8a
cmp byte [esi - 1], 0xd
jne 0x541c8a
add esi, 0xffffffff
cmp esi, edi
ja 0x541c20
jmp 0x541e43
cmp eax, 0xf
ja case.default.0x53aeef
jmp dword [eax*4 + 0x545c48]
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jge 0x541dcb
lea ebx, [esi + 1]
jmp 0x541cc0
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jae 0x541d69
mov eax, dword [ecx + 0x18]
test eax, eax
lea edi, [ecx + 0x1c]
je 0x541cf3
mov ecx, dword [ecx + 0x78]
push 0
push edi
push ecx
push eax
push esi
call fcn.00546fa0
test eax, eax
jne 0x541dcb
mov ecx, dword [esp + 0x10]
jmp 0x541d1d
mov edx, dword [ecx + 0x78]
sub edx, dword [edi]
cmp esi, edx
ja 0x541d1d
mov al, byte [esi]
cmp al, byte [ecx + 0x34]
jne 0x541d1d
cmp dword [edi], 1
je 0x541dcb
mov cl, byte [ebx]
mov edx, dword [esp + 0x10]
cmp cl, byte [edx + 0x35]
je 0x541dcb
mov ecx, edx
cmp dword [ecx + 0x88], 0
je 0x541d51
cmp ebx, dword [ecx + 0x78]
jb 0x541d51
cmp dword [ecx + 0x18], 0
jne 0x541d51
cmp dword [edi], 2
jne 0x541d51
mov al, byte [esi]
cmp al, byte [ecx + 0x34]
jne 0x541d51
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x88], eax
jg 0x545757
add ebp, 1
add esi, 1
add ebx, 1
cmp ebp, dword [esp + 0x18]
jl 0x541cc0
jmp 0x541dcb
cmp dword [ecx + 0x88], 0
je 0x541dcb
cmp esi, dword [ecx + 0x84]
jbe 0x541dcb
mov eax, dword [esp + 0x10]
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jmp 0x541dc5
mov edx, dword [edi + 0x78]
sub ebp, ebx
mov eax, ebp
sub edx, esi
cmp eax, edx
jbe 0x541e60
mov esi, dword [edi + 0x78]
cmp dword [edi + 0x88], 0
je 0x541dcb
cmp esi, dword [edi + 0x84]
jbe 0x541dcb
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x88], eax
jg 0x545757
cmp dword [esp + 0x3c], 0
jne 0x5388a0
cmp esi, dword [esp + 0x34]
je 0x541e43
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
jmp 0x541df0
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.005387a0
test eax, eax
jne 0x54576a
sub esi, 1
cmp ebx, 0x11
jne 0x541e3f
cmp esi, edi
jbe 0x541e41
cmp byte [esi], 0xa
jne 0x541e3f
cmp byte [esi - 1], 0xd
jne 0x541e3f
add esi, 0xffffffff
cmp esi, edi
jne 0x541df0
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 0x542668
xor edx, edx
jmp 0x538864
add esi, eax
jmp 0x541dcb
cmp ebx, ebp
mov ecx, ebx
jge 0x541dcb
mov edx, dword [edi + 0x78]
mov ebx, 1
lea esp, [esp]
cmp esi, edx
jae 0x541ece
movzx eax, byte [esi]
cmp eax, 0xd
jne 0x541e9d
add esi, ebx
cmp esi, edx
jae 0x541dcb
cmp byte [esi], 0xa
jne 0x541ec3
jmp 0x541ec1
cmp eax, 0xa
je 0x541ec1
cmp dword [edi + 0x68], 0
jne 0x541dcb
cmp eax, 0xb
je 0x541ec1
cmp eax, 0xc
je 0x541ec1
cmp eax, 0x85
jne 0x541dcb
add esi, ebx
add ecx, ebx
cmp ecx, ebp
jl 0x541e80
jmp 0x541dcb
cmp dword [edi + 0x88], 0
je 0x541dcb
cmp esi, dword [edi + 0x84]
jbe 0x541dcb
mov dword [edi + 0x64], ebx
cmp dword [edi + 0x88], ebx
jmp 0x541dc5
cmp ebx, ebp
mov ecx, ebx
jge 0x541dcb
mov edx, dword [edi + 0x78]
mov ebx, 1
cmp esi, edx
jae 0x541ece
mov al, byte [esi]
cmp al, 9
je 0x541dcb
cmp al, 0x20
je 0x541dcb
cmp al, 0xa0
je 0x541dcb
add ecx, ebx
add esi, ebx
cmp ecx, ebp
jl 0x541f07
jmp 0x541dcb
cmp ebx, ebp
mov ecx, ebx
jge 0x541dcb
mov edx, dword [edi + 0x78]
mov ebx, 1
cmp esi, edx
jae 0x541ece
mov al, byte [esi]
cmp al, 9
je 0x541f5a
cmp al, 0x20
je 0x541f5a
cmp al, 0xa0
jne 0x541dcb
add ecx, ebx
add esi, ebx
cmp ecx, ebp
jl 0x541f44
jmp 0x541dcb
cmp ebx, ebp
mov ecx, ebx
jge 0x541dcb
mov edx, dword [edi + 0x78]
mov ebx, 1
lea esp, [esp]
cmp esi, edx
jae 0x541ece
mov al, byte [esi]
cmp al, 0xa
jb 0x541f9e
cmp al, 0xd
jbe 0x541dcb
cmp al, 0x85
je 0x541dcb
add ecx, ebx
add esi, ebx
cmp ecx, ebp
jl 0x541f80
jmp 0x541dcb
cmp ebx, ebp
mov ecx, ebx
jge 0x541dcb
mov edx, dword [edi + 0x78]
mov ebx, 1
lea ecx, [ecx]
cmp esi, edx
jae 0x541ece
mov al, byte [esi]
cmp al, 0xa
jb 0x541dcb
cmp al, 0xd
jbe 0x541fde
cmp al, 0x85
jne 0x541dcb
add ecx, ebx
add esi, ebx
cmp ecx, ebp
jl 0x541fc0
jmp 0x541dcb
cmp ebx, ebp
mov eax, ebx
jge 0x541dcb
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x541da6
movzx edx, byte [esi]
mov ebx, dword [edi + 0x40]
test byte [edx + ebx], 4
jne 0x541dcb
add eax, 1
add esi, 1
cmp eax, ebp
jl 0x541ff8
jmp 0x541dcb
cmp ebx, ebp
mov eax, ebx
jge 0x541dcb
mov ecx, dword [edi + 0x78]
lea esp, [esp]
cmp esi, ecx
jae 0x541da6
movzx edx, byte [esi]
mov ebx, dword [edi + 0x40]
test byte [edx + ebx], 4
je 0x541dcb
add eax, 1
add esi, 1
cmp eax, ebp
jl 0x542030
jmp 0x541dcb
cmp ebx, ebp
mov eax, ebx
jge 0x541dcb
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x541da6
movzx edx, byte [esi]
mov ebx, dword [edi + 0x40]
test byte [edx + ebx], 1
jne 0x541dcb
add eax, 1
add esi, 1
cmp eax, ebp
jl 0x542064
jmp 0x541dcb
cmp ebx, ebp
mov eax, ebx
jge 0x541dcb
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x541da6
movzx edx, byte [esi]
mov ebx, dword [edi + 0x40]
test byte [edx + ebx], 1
je 0x541dcb
add eax, 1
add esi, 1
cmp eax, ebp
jl 0x542098
jmp 0x541dcb
cmp ebx, ebp
mov eax, ebx
jge 0x541dcb
mov ecx, dword [edi + 0x78]
lea esp, [esp]
cmp esi, ecx
jae 0x541da6
movzx edx, byte [esi]
mov ebx, dword [edi + 0x40]
test byte [edx + ebx], 0x10
jne 0x541dcb
add eax, 1
add esi, 1
cmp eax, ebp
jl 0x5420d0
jmp 0x541dcb
cmp ebx, ebp
mov eax, ebx
jge 0x541dcb
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x541da6
movzx edx, byte [esi]
mov ebx, dword [edi + 0x40]
test byte [edx + ebx], 0x10
je 0x541dcb
add eax, 1
add esi, 1
cmp eax, ebp
jl 0x542104
jmp 0x541dcb
mov ecx, dword [esp + 0x17c]
add ecx, 1
cmp byte [edx], 0x7a
push ecx
push ebx
push edi
push eax
push ebp
jne 0x542162
mov edx, dword [esp + 0x28]
add edx, 3
push edx
push esi
call fcn.005387a0
test eax, eax
jne 0x54576a
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], eax
jmp 0x541e43
mov edx, dword [esp + 0x54]
push edx
push esi
call fcn.005387a0
test eax, eax
jne 0x54576a
add dword [esp + 0x14], 3
jmp 0x541e43
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 0x54226b
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 0x5421e0
cmp dword [esp + 0x40], 0x88
jb 0x5421f4
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 + 0x5746b8]
push eax
add edx, ebx
push edx
push esi
call fcn.005387a0
cmp eax, 0xfffffc1b
je 0x5429dc
cmp eax, 0xfffffc20
jne 0x5429a9
xor ecx, ecx
mov ch, byte [ebx + 1]
mov cl, byte [ebx + 2]
add ecx, ebx
cmp dword [edi + 0x7c], ecx
jae 0x54576a
cmp byte [ebx], 0x77
je 0x542260
cmp byte [ecx], 0x77
jne 0x54576a
xor eax, eax
jmp 0x5429b1
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
cmp eax, 0x88
jae 0x5422a6
cmp eax, 0x81
je 0x5422a6
cmp dword [edi + 0x6c], 0
jne 0x5422b0
xor eax, eax
mov ah, byte [edx + 1]
mov al, byte [edx + 2]
cmp byte [eax + edx], 0x77
je 0x5422b0
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x5746b8]
add edx, ecx
mov dword [esp + 0x14], edx
jmp 0x541e43
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 + 0x5746b8]
add ecx, eax
push ecx
push esi
call fcn.005387a0
cmp eax, 0xfffffc20
jne 0x54231f
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 0x54576a
cmp byte [ecx], 0x77
je 0x542327
cmp byte [edx], 0x77
jne 0x54576a
jmp 0x542327
test eax, eax
jne 0x542a07
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.0x545600.14
mov dword [edi + 0x90], ebx
mov edx, eax
jmp 0x54226b
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 0x5423a6
mov ecx, dword [esp + 0x28]
add ecx, 3
push ecx
push esi
call fcn.005387a0
test eax, eax
jne 0x54576a
mov ecx, dword [esp + 0x40]
mov al, byte [ecx]
cmp al, 0x81
je 0x542b69
cmp al, 0x88
jae 0x542ba3
mov dword [esp + 0x14], ecx
jmp 0x541e43
mov ecx, dword [esp + 0x54]
push ecx
push esi
call fcn.005387a0
cmp eax, 0xfffffc1b
jne 0x5423c4
mov edx, dword [ebp + 0xb4]
cmp edx, dword [esp + 0x40]
jmp 0x5423c6
test eax, eax
jne 0x54576a
mov eax, dword [esp + 0x40]
cmp byte [eax], 0x81
je 0x542bc6
add dword [esp + 0x14], 3
jmp 0x541e43
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x5423fe
jmp 0x5423f0
mov cl, byte [esi - 1]
sub esi, 1
and cl, 0xc0
cmp cl, 0x80
je 0x5423f0
movzx ecx, byte [esi]
cmp ecx, 0xc0
jb 0x5424cc
test cl, 0x20
jne 0x542424
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
jmp 0x5424ca
test cl, 0x10
jne 0x542449
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 0x5424cc
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x54246a
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
jmp 0x5424bc
and eax, 0x3f
test cl, 4
jne 0x54249b
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 0x5424cc
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x5424ee
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx ebx, byte [eax*8 + 0x575352]
cmp esi, dword [esp + 0x34]
jbe 0x541e43
mov ebp, dword [esp + 0x20]
test ebp, ebp
lea edi, [esi - 1]
jne 0x54251d
movzx ecx, byte [edi]
jmp 0x5425fc
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x542535
mov dl, byte [edi - 1]
sub edi, 1
and dl, 0xc0
cmp dl, 0x80
je 0x542527
movzx ecx, byte [edi]
cmp ecx, 0xc0
jb 0x5425fc
test cl, 0x20
jne 0x54255d
movzx eax, byte [edi + 1]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or ecx, eax
jmp 0x5425fc
movzx edx, byte [edi + 1]
movzx eax, byte [edi + 2]
and edx, 0x3f
test cl, 0x10
jne 0x542584
and ecx, 0xf
shl ecx, 6
or edx, ecx
shl edx, 6
and eax, 0x3f
or edx, eax
mov ecx, edx
jmp 0x5425fc
test cl, 8
jne 0x54259a
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [edi + 3]
jmp 0x5425ec
and eax, 0x3f
test cl, 4
jne 0x5425cb
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 0x5425fc
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x54261e
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx eax, byte [eax*8 + 0x575352]
mov edx, 1
mov ecx, ebx
shl edx, cl
test dword [eax*4 + 0x57481c], edx
je 0x54264b
mov esi, edi
mov ebx, eax
jmp 0x542500
cmp esi, dword [esp + 0x34]
ja 0x540da0
jmp 0x541e43
sub ecx, 1
je case.0x545600.14
jmp 0x54576a
add dword [eax], 1
mov eax, 0xfffffff8
jmp 0x54576a
mov eax, 0xffffffeb
jmp 0x54576a
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 + 0x5746b8]
movzx ecx, byte [eax + 1]
add edx, eax
add ecx, edx
push ecx
push esi
call fcn.005387a0
cmp eax, 1
je 0x5426dd
cmp eax, 0xfffffc19
jne 0x5426f1
cmp dword [ebx + 0xac], 0
jne 0x5426f1
mov dword [ebx + 0xac], edi
jmp 0x54576a
cmp eax, 0xfffffc1f
jne 0x54576a
mov edx, edi
mov edi, dword [ebx + 0x7c]
mov cl, byte [edx]
cmp cl, byte [edi]
jne 0x542718
test cl, cl
je 0x542726
mov cl, byte [edx + 1]
add edx, 1
add edi, 1
cmp cl, byte [edi]
je 0x542707
movzx edi, byte [edi]
movzx ecx, byte [edx]
sub ecx, edi
jne 0x54576a
mov dword [ebx + 0x7c], esi
mov eax, 0xfffffc1e
jmp 0x54576a
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 + 0x5746b8]
add edx, eax
push edx
push esi
call fcn.005387a0
test eax, eax
jne 0x54576a
mov eax, 0xfffffc1c
jmp 0x54576a
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 + 0x5746b8]
add ecx, eax
push ecx
push esi
call fcn.005387a0
test eax, eax
jne 0x54576a
mov eax, 0xfffffc1d
jmp 0x54576a
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 + 0x5746b8]
movzx edx, byte [eax + 1]
add ecx, eax
add edx, ecx
push edx
push esi
call fcn.005387a0
cmp eax, 1
je 0x542827
cmp eax, 0xfffffc19
jne 0x542836
cmp dword [ebx + 0xac], 0
jne 0x542836
mov dword [ebx + 0xac], edi
test eax, eax
jne 0x54576a
mov eax, 0xfffffc1d
jmp 0x54576a
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 + 0x5746b8]
add edx, eax
push edx
push esi
call fcn.005387a0
test eax, eax
jne 0x54576a
mov dword [edi + 0x7c], esi
mov eax, 0xfffffc1e
jmp 0x54576a
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 + 0x5746b8]
push eax
movzx eax, byte [ebx + 1]
add edx, ebx
add eax, edx
push eax
push esi
call fcn.005387a0
test eax, eax
jne 0x54576a
add ebx, 2
mov dword [edi + 0x7c], ebx
mov eax, 0xfffffc1f
jmp 0x54576a
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 + 0x5746b8]
push ecx
add eax, edi
push eax
push esi
call fcn.005387a0
jmp 0x542994
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 + 0x5746b8]
push ecx
movzx ecx, byte [edi + 1]
add eax, edi
add ecx, eax
push ecx
push esi
call fcn.005387a0
cmp eax, 1
je 0x542985
cmp eax, 0xfffffc19
jne 0x542994
cmp dword [ebx + 0xac], 0
jne 0x542994
mov dword [ebx + 0xac], ebp
test eax, eax
jne 0x54576a
mov dword [ebx + 0x7c], edi
mov eax, 0xfffffc20
jmp 0x54576a
test eax, eax
jne 0x54576a
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 0x5421e0
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 0x54576a
cmp eax, 0xfffffc1b
jne 0x54576a
mov ecx, dword [esp + 0x14]
mov dl, byte [ecx]
cmp dl, 0x81
je 0x542a3b
cmp dl, 0x77
jne 0x542a31
xor edx, edx
mov dh, byte [ecx + 1]
mov dl, byte [ecx + 2]
add ecx, edx
cmp byte [ecx], 0x77
je 0x542a22
xor edx, edx
mov dh, byte [ecx + 1]
mov dl, byte [ecx + 2]
sub ecx, edx
cmp dword [edi + 0xb4], ecx
jne 0x54576a
xor eax, eax
jmp 0x54576a
mov ecx, dword [esp + 0x28]
cmp esi, ecx
jne 0x542a88
cmp ebx, 0x9f
je 0x542a88
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xa4], ebp
jne 0x542a8c
cmp dword [eax + 0x5c], ebp
jne 0x542a81
cmp dword [eax + 0x60], ebp
je 0x542a8c
mov edx, dword [eax + 0x94]
add edx, dword [eax + 0x74]
cmp ecx, edx
jne 0x542a8c
xor eax, eax
jmp 0x54576a
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 0x54576a
mov eax, 0xffffffe6
jmp 0x54576a
mov eax, 0xfffffffa
jmp 0x54576a
mov eax, dword [esp + 0x5c]
lea edx, [esp + 0xdc]
cmp eax, edx
je 0x542adf
push eax
call dword [0x597f10]
mov eax, edi
jmp 0x54576a
mov eax, dword [esp + 0x54]
mov dword [ebp + 0xa4], eax
mov eax, dword [esp + 0x5c]
lea ecx, [esp + 0xdc]
cmp eax, ecx
je 0x542b06
push eax
call dword [0x597f10]
xor eax, eax
jmp 0x54576a
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 0x54576a
mov edx, dword [esp + 0x28]
mov dword [ebp + 0x80], esi
mov dword [ebp + 0x7c], edx
mov eax, 1
jmp 0x54576a
mov eax, dword [esp + 0x28]
mov dword [ebp + 0x7c], eax
mov dword [ebp + 0x80], esi
mov dword [ebp + 0x8c], ebx
mov eax, 0xfffffc1a
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
mov ecx, dword [esp + 0x40]
mov dword [ebp + 0xb4], ecx
mov eax, 0xfffffc1b
jmp 0x54576a
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.005387a0
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
mov edx, dword [esp + 0x40]
mov dword [ebp + 0xb4], edx
mov eax, 0xfffffc1b
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
mov dword [ebp + 0xb4], edi
mov eax, 0xfffffc1b
jmp 0x54576a
xor ebp, ebp
cmp dword [edi + 0x88], ebp
je case.0x545600.14
lea ecx, [esi + 1]
cmp ecx, dword [edi + 0x78]
jb case.0x545600.14
cmp dword [edi + 0x18], ebp
jne case.0x545600.14
cmp dword [edi + 0x1c], 2
jne case.0x545600.14
mov dl, byte [esi]
cmp dl, byte [edi + 0x34]
jne case.0x545600.14
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x88], eax
jmp 0x545751
cmp dword [edi + 0x88], 0
je case.0x545600.14
lea eax, [esi + 1]
cmp eax, dword [edi + 0x78]
jb case.0x545600.14
cmp dword [edi + 0x18], 0
jne case.0x545600.14
cmp dword [edi + 0x1c], 2
jne case.0x545600.14
mov cl, byte [esi]
cmp cl, byte [edi + 0x34]
jne case.0x545600.14
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x88], eax
jmp 0x545751
cmp dword [ecx + 0x88], ebp
jmp 0x5435d0
cmp dword [eax + 0x88], ebp
jmp 0x543a5f
cmp eax, 0xfffffffe
mov eax, dword [esp + 0x10]
jne 0x543450
mov esi, dword [eax + 0x78]
jmp 0x543450
cmp ebp, eax
mov dword [esp + 0x34], esi
jge 0x542d63
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.00538460
test eax, eax
jl 0x542d2c
add ebp, 1
add esi, eax
cmp ebp, dword [esp + 0x18]
jl 0x542d06
jmp 0x542d5d
cmp eax, 0xfffffffe
jne 0x542d5d
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je 0x542d5d
mov edx, dword [eax + 0x78]
cmp edx, dword [eax + 0x84]
jbe 0x542d5d
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jg 0x545757
cmp esi, dword [esp + 0x34]
jb 0x542da5
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x28]
jmp 0x542d70
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.005387a0
test eax, eax
jne 0x54576a
sub esi, edi
cmp esi, dword [esp + 0x34]
jae 0x542d70
xor eax, eax
jmp 0x54576a
cmp eax, 0xfffffffe
jne 0x542db4
mov esi, dword [ebp + 0x78]
cmp dword [ebp + 0x88], 0
je case.0x545600.14
cmp esi, dword [ebp + 0x78]
jb case.0x545600.14
cmp esi, dword [ebp + 0x84]
jbe case.0x545600.14
mov eax, 1
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x88], eax
jmp 0x545751
cmp dword [esp + 0x20], 0
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
mov edi, edx
je 0x542f9a
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.005387a0
test eax, eax
jne 0x54576a
jmp 0x542e30
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x542f39
test al, 0x20
jne 0x542e72
movzx edx, byte [esi]
and eax, 0x1f
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 1
jmp 0x542f39
test al, 0x10
jne 0x542e98
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 0x542f39
test al, 8
jne 0x542eca
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 0x542f39
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
and edx, 0x3f
and ecx, 0x3f
test al, 4
jne 0x542f05
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 0x542f39
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 0x542f47
cmp dword [esp + 0x40], 0x6e
jmp 0x542f5f
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.0x545600.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.005387a0
test eax, eax
je 0x542e30
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
jmp 0x542fd0
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
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.0x545600.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.005387a0
test eax, eax
je 0x542fd0
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x543187
cmp eax, 0xc0
jb 0x543187
test al, 0x20
jne 0x5430c0
movzx ecx, byte [esi]
and eax, 0x1f
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 1
jmp 0x543187
test al, 0x10
jne 0x5430e6
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 0x543187
test al, 8
jne 0x543118
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 0x543187
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0x3f
and edx, 0x3f
test al, 4
jne 0x543153
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 0x543187
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.00547720
test eax, eax
je case.0x545600.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.005387a0
test eax, eax
je 0x543073
jmp 0x54576a
cmp dword [eax + 0x88], 0
je case.0x545600.14
cmp esi, dword [eax + 0x78]
jb case.0x545600.14
jmp 0x5431f8
cmp dword [eax + 0x88], ebp
je case.0x545600.14
cmp esi, dword [eax + 0x84]
jbe case.0x545600.14
mov dword [eax + 0x64], 1
cmp dword [eax + 0x88], 1
jmp 0x545751
cmp dword [edi + 0x88], ebp
jmp 0x543ad9
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x88], 0
je case.0x545600.14
cmp esi, dword [ecx + 0x78]
jb case.0x545600.14
cmp esi, dword [ecx + 0x84]
jbe case.0x545600.14
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x88], eax
jmp 0x545751
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.005387a0
test eax, eax
jne 0x54576a
jmp 0x5432a0
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x18]
jge case.0x545600.14
mov ecx, dword [esp + 0x10]
mov ebx, dword [ecx + 0x78]
mov edx, ebx
sub edx, ebp
cmp esi, edx
ja 0x54335e
cmp ebp, 4
mov ecx, dword [esp + 0x4c]
mov eax, ebp
mov edx, esi
jb 0x5432e4
mov edi, edi
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x5432ec
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x5432d0
test eax, eax
je 0x543351
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x54333b
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x54334d
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x54333b
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x54334d
movzx edi, byte [edx]
movzx ebp, byte [ecx]
sub edi, ebp
jne 0x54333b
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x54334d
movzx edi, byte [edx]
movzx eax, byte [ecx]
sub edi, eax
je 0x54334d
test edi, edi
mov ebp, dword [esp + 0x38]
mov eax, 1
jg 0x543353
or eax, 0xffffffff
jmp 0x543353
mov ebp, dword [esp + 0x38]
xor eax, eax
test eax, eax
jne 0x54335e
add esi, ebp
jmp 0x54340d
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x54344c
sub ebx, eax
cmp esi, ebx
ja 0x54344c
cmp eax, 4
lea ecx, [esp + 0x154]
mov edx, esi
jb 0x543396
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x54339e
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x543382
test eax, eax
je 0x543403
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x5433f5
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x543403
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x5433f5
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x543403
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x5433f5
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x543403
movzx edi, byte [edx]
movzx ecx, byte [ecx]
sub edi, ecx
je 0x543403
test edi, edi
mov eax, 1
jg 0x543405
or eax, 0xffffffff
jmp 0x543405
xor eax, eax
test eax, eax
jne 0x54344c
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.005387a0
test eax, eax
je 0x5432a0
jmp 0x54576a
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je case.0x545600.14
cmp esi, dword [eax + 0x78]
jb case.0x545600.14
cmp esi, dword [eax + 0x84]
jbe case.0x545600.14
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jmp 0x545751
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.005387a0
test eax, eax
jne 0x54576a
mov edi, edi
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx eax, byte [esi]
cmp ebx, eax
je 0x5434e8
cmp dword [esp + 0x38], eax
jne case.0x545600.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.005387a0
test eax, eax
je 0x5434c0
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
lea esp, [esp]
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx edx, byte [esi]
add esi, 1
cmp ebx, edx
jne case.0x545600.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.005387a0
test eax, eax
je 0x543560
jmp 0x54576a
cmp dword [edx + 0x88], ebp
jmp 0x545731
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x88], 0
je case.0x545600.14
cmp esi, dword [ecx + 0x84]
jbe case.0x545600.14
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x88], eax
jmp 0x545751
cmp dword [esp + 0x20], 0
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
je 0x543787
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.005387a0
test eax, eax
jne 0x54576a
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x54373e
test al, 0x20
jne 0x543677
movzx ecx, byte [esi]
and eax, 0x1f
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 1
jmp 0x54373e
test al, 0x10
jne 0x54369d
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 0x54373e
test al, 8
jne 0x5436cf
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 0x54373e
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0x3f
and edx, 0x3f
test al, 4
jne 0x54370a
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 0x54373e
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.0x545600.14
cmp dword [esp + 0x38], eax
je case.0x545600.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.005387a0
test eax, eax
je 0x543635
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx eax, byte [esi]
cmp dword [esp + 0x30], eax
je case.0x545600.14
cmp dword [esp + 0x38], eax
je case.0x545600.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.005387a0
test eax, eax
je 0x5437b4
jmp 0x54576a
cmp dword [ebx + 0x88], 0
je case.0x545600.14
cmp esi, dword [ebx + 0x84]
jbe case.0x545600.14
mov eax, 1
mov dword [ebx + 0x64], eax
cmp dword [ebx + 0x88], eax
jmp 0x545751
cmp dword [esp + 0x20], 0
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
je 0x5439ca
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.005387a0
test eax, eax
jne 0x54576a
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x54398b
test al, 0x20
jne 0x5438c4
movzx ecx, byte [esi]
and eax, 0x1f
shl eax, 6
and ecx, 0x3f
or eax, ecx
add esi, 1
jmp 0x54398b
test al, 0x10
jne 0x5438ea
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 0x54398b
test al, 8
jne 0x54391c
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 0x54398b
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
and ecx, 0x3f
and edx, 0x3f
test al, 4
jne 0x543957
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 0x54398b
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.0x545600.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.005387a0
test eax, eax
je 0x543882
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
jmp 0x543a00
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x30], ecx
je case.0x545600.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.005387a0
test eax, eax
je 0x543a00
jmp 0x54576a
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je case.0x545600.14
cmp esi, dword [eax + 0x84]
jbe case.0x545600.14
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jmp 0x545751
cmp dword [ebx + 0x88], 0
je case.0x545600.14
cmp esi, dword [ebx + 0x84]
jbe case.0x545600.14
mov dword [ebx + 0x64], ecx
cmp dword [ebx + 0x88], ecx
jmp 0x545751
cmp dword [ecx + 0x88], 0
je case.0x545600.14
cmp esi, dword [ecx + 0x84]
jbe case.0x545600.14
mov dword [ecx + 0x64], edx
cmp dword [ecx + 0x88], edx
jmp 0x545751
cmp dword [edi + 0x88], 0
je case.0x545600.14
cmp esi, dword [edi + 0x84]
jbe case.0x545600.14
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x88], eax
jmp 0x545751
test eax, eax
jl 0x544ce3
cmp eax, 0xa
ja case.default.0x53aeef
jmp dword [eax*4 + 0x545c88]
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.005387a0
test eax, eax
jne 0x54576a
nop
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x543ba2
cmp eax, 0xc0
jb 0x543ba2
test al, 0x20
jne 0x543b84
add esi, 1
jmp 0x543ba2
test al, 0x10
jne 0x543b8d
add esi, 2
jmp 0x543ba2
test al, 8
jne 0x543b96
add esi, 3
jmp 0x543ba2
test al, 4
jne 0x543b9f
add esi, 4
jmp 0x543ba2
add esi, 5
cmp dword [esp + 0x44], 0
jne case.0x545600.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.005387a0
test eax, eax
je 0x543b50
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
jmp 0x543c20
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x543d5b
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx eax, byte [eax*8 + 0x575351]
cmp eax, 9
je 0x543d80
cmp eax, 5
je 0x543d80
cmp eax, 8
je 0x543d80
xor eax, eax
jmp 0x543d85
mov eax, 1
cmp eax, dword [esp + 0x44]
je case.0x545600.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.005387a0
test eax, eax
je 0x543c20
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
lea ecx, [ecx]
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x543f19
cmp ecx, 0xc0
jb 0x543f19
test cl, 0x20
jne 0x543e4f
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 1
jmp 0x543f19
test cl, 0x10
jne 0x543e76
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 0x543f19
test cl, 8
jne 0x543ea9
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 0x543f19
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and eax, 0x3f
and edx, 0x3f
test cl, 4
jne 0x543ee5
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 0x543f19
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x543f3b
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx ecx, byte [eax*8 + 0x575351]
mov eax, dword [esp + 0x48]
xor edx, edx
cmp dword [ecx*4 + 0x574890], eax
sete dl
cmp edx, dword [esp + 0x44]
je case.0x545600.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.005387a0
test eax, eax
je 0x543e00
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x5440ee
cmp ecx, 0xc0
jb 0x5440ee
test cl, 0x20
jne 0x544024
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 1
jmp 0x5440ee
test cl, 0x10
jne 0x54404b
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 0x5440ee
test cl, 8
jne 0x54407e
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 0x5440ee
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and eax, 0x3f
and edx, 0x3f
test cl, 4
jne 0x5440ba
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 0x5440ee
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x544110
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx ecx, byte [eax*8 + 0x575351]
xor edx, edx
cmp ecx, dword [esp + 0x48]
sete dl
cmp edx, dword [esp + 0x44]
je case.0x545600.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.005387a0
test eax, eax
je 0x543fd5
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x5442bc
cmp ecx, 0xc0
jb 0x5442bc
test cl, 0x20
jne 0x5441f2
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x5442bc
test cl, 0x10
jne 0x544219
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 0x5442bc
test cl, 8
jne 0x54424c
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 0x5442bc
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x544288
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 0x5442bc
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 + 0x5769d0]
shl eax, 7
and ecx, 0x8000007f
jns 0x5442de
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx ecx, word [eax*2 + 0x578bd0]
movzx edx, byte [ecx*8 + 0x575350]
xor eax, eax
cmp edx, dword [esp + 0x48]
sete al
cmp eax, dword [esp + 0x44]
je case.0x545600.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.005387a0
test eax, eax
je 0x5441a3
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x54448a
cmp ecx, 0xc0
jb 0x54448a
test cl, 0x20
jne 0x5443c0
movzx eax, byte [esi]
and ecx, 0x1f
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 1
jmp 0x54448a
test cl, 0x10
jne 0x5443e7
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 0x54448a
test cl, 8
jne 0x54441a
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 0x54448a
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
and eax, 0x3f
and edx, 0x3f
test cl, 4
jne 0x544456
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 0x54448a
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x5444ac
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx ecx, byte [eax*8 + 0x575351]
mov eax, dword [ecx*4 + 0x574890]
cmp eax, 1
je 0x5444d3
cmp eax, 3
je 0x5444d3
xor eax, eax
jmp 0x5444d8
mov eax, 1
cmp eax, dword [esp + 0x44]
je case.0x545600.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.005387a0
test eax, eax
je 0x544371
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x544669
cmp ecx, 0xc0
jb 0x544669
test cl, 0x20
jne 0x54459f
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x544669
test cl, 0x10
jne 0x5445c6
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 0x544669
test cl, 8
jne 0x5445f9
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 0x544669
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x544635
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 0x544669
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 0x5446b3
je case.0x5446d3.8192
cmp ecx, 0x85
ja 0x54469f
je case.0x5446d3.8192
cmp ecx, 9
jb case.0x5446d3.8203
cmp ecx, 0xd
jbe case.0x5446d3.8192
cmp ecx, 0x20
jmp 0x5446ec
cmp ecx, 0xa0
je case.0x5446d3.8192
cmp ecx, 0x1680
jmp 0x5446ec
cmp ecx, 0x202f
ja 0x5446da
je case.0x5446d3.8192
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x5446d3.8203
movzx eax, byte [eax + 0x545cbc]
jmp dword [eax*4 + 0x545cb4]
cmp ecx, 0x205f
je case.0x5446d3.8192
cmp ecx, 0x3000
je case.0x5446d3.8192
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, byte [eax + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x544714
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx ecx, byte [eax*8 + 0x575351]
xor edx, edx
cmp dword [ecx*4 + 0x574890], 6
sete dl
cmp edx, dword [esp + 0x44]
je case.0x545600.14
jmp 0x54474a
cmp dword [esp + 0x44], 0
jne case.0x545600.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.005387a0
test eax, eax
je 0x544550
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
jmp 0x5447c0
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x5448d9
cmp ecx, 0xc0
jb 0x5448d9
test cl, 0x20
jne 0x54480f
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x5448d9
test cl, 0x10
jne 0x544836
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 0x5448d9
test cl, 8
jne 0x544869
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 0x5448d9
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x5448a5
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 0x5448d9
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 + 0x5769d0]
mov edx, ecx
shl eax, 7
and edx, 0x8000007f
jns 0x5448fd
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x578bd0]
movzx edx, byte [eax*8 + 0x575351]
mov eax, dword [edx*4 + 0x574890]
cmp eax, 1
je 0x544929
cmp eax, 3
je 0x544929
cmp ecx, 0x5f
je 0x544929
xor eax, eax
jmp 0x54492e
mov eax, 1
cmp eax, dword [esp + 0x44]
je case.0x545600.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.005387a0
test eax, eax
je 0x5447c0
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x544aba
cmp eax, 0xc0
jb 0x544aba
test al, 0x20
jne 0x5449f3
movzx edx, byte [esi]
and eax, 0x1f
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 1
jmp 0x544aba
test al, 0x10
jne 0x544a19
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 0x544aba
test al, 8
jne 0x544a4b
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 0x544aba
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
and edx, 0x3f
and ecx, 0x3f
test al, 4
jne 0x544a86
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 0x544aba
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 + 0x575210]
cmp eax, ecx
lea edx, [edx*4 + 0x575210]
jb 0x544add
add edx, 4
cmp eax, ecx
je 0x544aea
mov ecx, dword [edx]
cmp eax, ecx
jae 0x544ad0
cmp dword [esp + 0x44], 0
je case.0x545600.14
jmp 0x544af5
cmp dword [esp + 0x44], 0
jne case.0x545600.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.005387a0
test eax, eax
je 0x5449a6
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov eax, dword [esp + 0x10]
cmp esi, dword [eax + 0x78]
jae 0x543a58
movzx eax, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x544c77
cmp eax, 0xc0
jb 0x544c77
test al, 0x20
jne 0x544bb0
movzx edx, byte [esi]
and eax, 0x1f
shl eax, 6
and edx, 0x3f
or eax, edx
add esi, 1
jmp 0x544c77
test al, 0x10
jne 0x544bd6
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 0x544c77
test al, 8
jne 0x544c08
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 0x544c77
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
and edx, 0x3f
and ecx, 0x3f
test al, 4
jne 0x544c43
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 0x544c77
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 0x544c9f
cmp eax, 0x40
je 0x544c9f
cmp eax, 0x60
je 0x544c9f
cmp eax, 0xa0
jb 0x544c94
cmp eax, 0xd7ff
jbe 0x544c9f
cmp eax, 0xe000
jae 0x544c9f
xor eax, eax
jmp 0x544ca4
mov eax, 1
cmp eax, dword [esp + 0x44]
je case.0x545600.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.005387a0
test eax, eax
je 0x544b63
jmp 0x54576a
cmp dword [esp + 0x38], 0x16
jne 0x545037
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.005387a0
test eax, eax
jne 0x54576a
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
jge case.0x545600.14
mov ebp, dword [eax + 0x78]
cmp esi, ebp
jae 0x543a58
movzx ecx, byte [esi]
add esi, 1
cmp dword [esp + 0x20], 0
je 0x544e42
cmp ecx, 0xc0
jb 0x544e42
test cl, 0x20
jne 0x544d78
movzx edx, byte [esi]
and ecx, 0x1f
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 1
jmp 0x544e42
test cl, 0x10
jne 0x544d9f
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 0x544e42
test cl, 8
jne 0x544dd2
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 0x544e42
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 0x3f
and eax, 0x3f
test cl, 4
jne 0x544e0e
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 0x544e42
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 + 0x5769d0]
shl eax, 7
and ecx, 0x8000007f
jns 0x544e64
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
cmp esi, ebp
movzx ecx, word [eax*2 + 0x578bd0]
movzx ebx, byte [ecx*8 + 0x575352]
jae 0x544fc9
mov edi, edi
cmp dword [esp + 0x20], 0
movzx ecx, byte [esi]
mov edi, 1
je 0x544f79
cmp ecx, 0xc0
jb 0x544f79
test cl, 0x20
jne 0x544ebb
movzx edx, byte [esi + 1]
and ecx, 0x1f
and edx, 0x3f
shl ecx, 6
mov edi, 2
jmp 0x544f77
test cl, 0x10
jne 0x544ee5
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 0x544f79
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
and edx, 0x3f
test cl, 8
jne 0x544f0b
and ecx, 7
shl ecx, 6
or edx, ecx
movzx ecx, byte [esi + 3]
mov edi, 4
jmp 0x544f69
and eax, 0x3f
test cl, 4
jne 0x544f44
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 0x544f79
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 + 0x5769d0]
shl edx, 7
and ecx, 0x8000007f
jns 0x544f9b
dec ecx
or ecx, 0xffffff80
inc ecx
add edx, ecx
movzx eax, word [edx*2 + 0x578bd0]
movzx ecx, byte [eax*8 + 0x575352]
mov edx, 1
shl edx, cl
test dword [ebx*4 + 0x57481c], edx
je 0x544fc9
add esi, edi
cmp esi, ebp
mov ebx, ecx
jb 0x544e80
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x88], 0
je 0x544ff8
cmp esi, ebp
jb 0x544ff8
cmp esi, dword [eax + 0x84]
jbe 0x544ff8
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x88], ecx
jg 0x545757
jmp 0x544ffd
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.005387a0
test eax, eax
je 0x544d23
jmp 0x54576a
cmp dword [esp + 0x20], 0
mov ebp, dword [esp + 0x28]
je 0x5454d9
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.005387a0
test eax, eax
jne 0x54576a
nop
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x30], ecx
jge case.0x545600.14
mov edx, dword [esp + 0x10]
cmp esi, dword [edx + 0x78]
jae 0x54572a
cmp dword [esp + 0x38], 0xc
jne 0x5450fa
mov eax, dword [edx + 0x18]
test eax, eax
je 0x5450d3
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.00546fa0
test eax, eax
jne case.0x545600.14
mov edx, dword [esp + 0x10]
jmp 0x5450fa
mov eax, dword [edx + 0x78]
sub eax, dword [edx + 0x1c]
cmp esi, eax
ja 0x5450fa
mov cl, byte [esi]
cmp cl, byte [edx + 0x34]
jne 0x5450fa
cmp dword [edx + 0x1c], 1
je case.0x545600.14
mov al, byte [esi + 1]
cmp al, byte [edx + 0x35]
je case.0x545600.14
movzx eax, byte [esi]
add esi, 1
cmp eax, 0xc0
jb 0x5451e4
movzx ecx, byte [esi]
and ecx, 0x3f
test al, 0x20
jne 0x545125
and eax, 0x1f
shl eax, 6
or eax, ecx
add esi, 1
jmp 0x5451e4
test al, 0x10
jne 0x545145
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 0x5451e4
test al, 8
jne 0x545171
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 0x5451e4
test al, 4
jne 0x5451a9
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 0x5451e4
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.0x53aeef
jmp dword [ecx*4 + 0x545ce8]
cmp dword [edx + 0x88], 0
je case.0x5451f4.13
cmp esi, dword [edx + 0x78]
jb case.0x5451f4.13
cmp dword [edx + 0x18], 0
jne case.0x5451f4.13
cmp dword [edx + 0x1c], 2
jne case.0x5451f4.13
movzx ecx, byte [edx + 0x34]
cmp eax, ecx
jne case.0x5451f4.13
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x88], eax
jg 0x545757
jmp case.0x5451f4.13
cmp eax, 0xd
ja 0x54527f
je 0x545265
cmp eax, 0xa
je case.0x5451f4.13
jbe case.0x545600.14
cmp eax, 0xc
jmp 0x545296
cmp esi, dword [edx + 0x78]
jae case.0x5451f4.13
cmp byte [esi], 0xa
jne case.0x5451f4.13
add esi, 1
jmp case.0x5451f4.13
cmp eax, 0x85
je 0x54529c
cmp eax, 0x2027
jbe case.0x545600.14
cmp eax, 0x2029
ja case.0x545600.14
cmp dword [edx + 0x68], 0
jne case.0x545600.14
jmp case.0x5451f4.13
cmp eax, 0x180e
ja 0x5452e0
je case.0x545600.14
cmp eax, 0xa0
ja 0x5452d6
je case.0x545600.14
cmp eax, 9
je case.0x545600.14
cmp eax, 0x20
jmp 0x5454a3
cmp eax, 0x1680
jmp 0x5454a3
cmp eax, 0x205f
ja 0x54530d
je case.0x545600.14
cmp eax, 0x2000
jb case.0x5451f4.13
cmp eax, 0x200a
jbe case.0x545600.14
cmp eax, 0x202f
jmp 0x5454a3
cmp eax, 0x3000
jmp 0x5454a3
cmp eax, 0x180e
ja 0x545358
je case.0x5451f4.13
cmp eax, 0xa0
ja 0x545348
je case.0x5451f4.13
cmp eax, 9
je case.0x5451f4.13
cmp eax, 0x20
jne case.0x545600.14
jmp case.0x5451f4.13
cmp eax, 0x1680
jne case.0x545600.14
jmp case.0x5451f4.13
cmp eax, 0x205f
ja 0x54538b
je case.0x5451f4.13
cmp eax, 0x2000
jb case.0x545600.14
cmp eax, 0x200a
jbe case.0x5451f4.13
cmp eax, 0x202f
jne case.0x545600.14
jmp case.0x5451f4.13
cmp eax, 0x3000
jne case.0x545600.14
jmp case.0x5451f4.13
cmp eax, 0x85
ja 0x5453bf
je case.0x545600.14
cmp eax, 0xa
jb case.0x5451f4.13
cmp eax, 0xd
jbe case.0x545600.14
jmp case.0x5451f4.13
cmp eax, 0x2028
jb case.0x5451f4.13
cmp eax, 0x2029
jbe case.0x545600.14
jmp case.0x5451f4.13
cmp eax, 0x85
ja 0x5453fe
je case.0x5451f4.13
cmp eax, 0xa
jb case.0x545600.14
cmp eax, 0xd
ja case.0x545600.14
jmp case.0x5451f4.13
cmp eax, 0x2028
jb case.0x545600.14
cmp eax, 0x2029
ja case.0x545600.14
jmp case.0x5451f4.13
cmp eax, 0x100
jae case.0x5451f4.13
mov edx, dword [edx + 0x40]
test byte [eax + edx], 4
jne case.0x545600.14
jmp case.0x5451f4.13
cmp eax, 0x100
jae case.0x545600.14
mov ecx, dword [edx + 0x40]
test byte [eax + ecx], 4
jmp 0x5454a3
cmp eax, 0x100
jae case.0x5451f4.13
mov edx, dword [edx + 0x40]
test byte [eax + edx], 1
jne case.0x545600.14
jmp case.0x5451f4.13
cmp eax, 0x100
jae case.0x545600.14
mov ecx, dword [edx + 0x40]
test byte [eax + ecx], 1
jmp 0x5454a3
cmp eax, 0x100
jae case.0x5451f4.13
mov edx, dword [edx + 0x40]
test byte [eax + edx], 0x10
jne case.0x545600.14
jmp case.0x5451f4.13
cmp eax, 0x100
jae case.0x545600.14
mov ecx, dword [edx + 0x40]
test byte [eax + ecx], 0x10
je case.0x545600.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.005387a0
test eax, eax
je 0x545080
jmp 0x54576a
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.005387a0
test eax, eax
jne 0x54576a
mov edi, edi
cmp edi, dword [esp + 0x18]
jge case.0x545600.14
mov edx, dword [esp + 0x10]
cmp esi, dword [edx + 0x78]
jae 0x54572a
cmp dword [esp + 0x38], 0xc
jne 0x545581
mov eax, dword [edx + 0x18]
test eax, eax
je 0x54555a
push 0
mov ecx, edx
lea edx, [ecx + 0x1c]
mov ecx, dword [ecx + 0x78]
push edx
push ecx
push eax
push esi
call fcn.00546fa0
test eax, eax
jne case.0x545600.14
mov edx, dword [esp + 0x10]
jmp 0x545581
mov eax, dword [edx + 0x78]
sub eax, dword [edx + 0x1c]
cmp esi, eax
ja 0x545581
mov cl, byte [esi]
cmp cl, byte [edx + 0x34]
jne 0x545581
cmp dword [edx + 0x1c], 1
je case.0x545600.14
mov al, byte [esi + 1]
cmp al, byte [edx + 0x35]
je case.0x545600.14
mov ecx, dword [esp + 0x38]
movzx eax, byte [esi]
add ecx, 0xfffffffa
add esi, 1
cmp ecx, 0xf
ja case.default.0x53aeef
jmp dword [ecx*4 + 0x545d28]
cmp dword [edx + 0x88], 0
je case.0x545597.13
cmp esi, dword [edx + 0x78]
jb case.0x545597.13
cmp dword [edx + 0x18], 0
jne case.0x545597.13
cmp dword [edx + 0x1c], 2
jne case.0x545597.13
movzx ecx, byte [edx + 0x34]
cmp eax, ecx
jne case.0x545597.13
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x88], eax
jg 0x545757
jmp case.0x545597.13
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x545600.14
movzx eax, byte [eax + 0x545d78]
jmp dword [eax*4 + 0x545d68]
cmp esi, dword [edx + 0x78]
jae case.0x545597.13
cmp byte [esi], 0xa
jne case.0x545597.13
add esi, 1
jmp case.0x545597.13
cmp dword [edx + 0x68], 0
jne case.0x545600.14
jmp case.0x545597.13
cmp eax, 9
je case.0x545600.14
cmp eax, 0x20
je case.0x545600.14
cmp eax, 0xa0
jmp 0x5456f2
cmp eax, 9
je case.0x545597.13
cmp eax, 0x20
je case.0x545597.13
cmp eax, 0xa0
jne case.0x545600.14
jmp case.0x545597.13
cmp eax, 0xa
jb case.0x545597.13
cmp eax, 0xd
jbe case.0x545600.14
cmp eax, 0x85
jmp 0x5456f2
cmp eax, 0xa
jb case.0x545600.14
cmp eax, 0xd
jbe case.0x545597.13
cmp eax, 0x85
jne case.0x545600.14
jmp case.0x545597.13
mov ecx, dword [edx + 0x40]
test byte [eax + ecx], 4
jne case.0x545600.14
jmp case.0x545597.13
mov edx, dword [edx + 0x40]
test byte [eax + edx], 4
jmp 0x5456f2
mov ecx, dword [edx + 0x40]
test byte [eax + ecx], 1
jne case.0x545600.14
jmp case.0x545597.13
mov edx, dword [edx + 0x40]
test byte [eax + edx], 1
jmp 0x5456f2
mov ecx, dword [edx + 0x40]
test byte [eax + ecx], 0x10
jne case.0x545600.14
jmp case.0x545597.13
mov edx, dword [edx + 0x40]
test byte [eax + edx], 0x10
je case.0x545600.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.005387a0
test eax, eax
je 0x545510
jmp 0x54576a
cmp dword [edx + 0x88], 0
je case.0x545600.14
cmp esi, dword [edx + 0x84]
jbe case.0x545600.14
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x88], eax
jle case.0x545600.14
mov eax, 0xfffffff4
jmp 0x54576a
mov eax, 0xfffffff2
jmp 0x54576a
mov eax, 0xfffffffb
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x150]
pop esi
xor ecx, esp
call fcn.00549930
add esp, 0x150
ret 0x1c